当前位置:文档之家› TCP_IP路由技术(卷1)中文版(第二版)助读笔记版

TCP_IP路由技术(卷1)中文版(第二版)助读笔记版

TCP_IP路由技术(卷1)中文版(第二版)助读笔记版
TCP_IP路由技术(卷1)中文版(第二版)助读笔记版

CCIE break 第一季之

——《TCP/IP路由技术卷一中文版(第二版)》助读笔记近日经典书籍《TCP/IP路由技术卷一中文版》“第二版”已经在国内上市,此助读笔记的主要作用就是帮助那些首次阅读该书的读者顺利完成学习,那些已阅读过此书的朋友也可以通过该笔记进行快速的复习,同时也可以把该笔记当作日常工作中的速查资料。为方便大家,笔记里标明了书中对应的页码,请大家参照中文书阅读笔记,后续章节我将陆续推出。

分享是一种美德!Jeffzdl 联系方式:jeffzdl@https://www.doczj.com/doc/5d13692312.html,

P3(中文书第三页,依此类推)

本章的主要内容就是回顾TCP/IP的基本知识与TCP/IP路由选择

本章主要回顾了启用、控制或帮助TCP/IP路由选择的协议

早在20世纪70年代初期,TCP/IP及其分层协议框架已经出现,它的提出早于ISO的OSI 参考模型

如图(1-1)TCP/IP的网络接口层对应OSI的物理层和数据链路层

P4

物理层协议分为4类

电子/光学协议——描述了信号的各种特性,例如电压或光强度、位定时、编码和信号波形。机械协议——规定了连接器的尺寸或导线的金属成分

功能性协议——描述了做什么。例如连接器针脚的具体作用

程序性协议——描述了如何做。例如连接器针脚为1时代表此针脚上的电压为-3V

数据链路层包含了控制物理层的协议:包括如何访问以及共享介质、标识设备以及如何成帧典型的数据链路层协议有:IEEE802.3/以太网、帧中继、ATM以及SNOET

Internet层与OSI网络层相对应,主要负责定义数据包格式和地址格式以及路由选择

主机到主机层与OSI传输层相对应,主机到主机层和数据链路层都定义了流控和差错控制,数据链路层协议强调物理介质上的流量,而传输层强调逻辑链路上的流量,一个逻辑链路可以跨越多个物理链路

BGP、RIP工作在应用层,应用层可以向用户提供访问网络层的接口

BGP使用TCP传输消息,RIP使用UDP传输消息,OSPF直接在IP包中封装消息

各层之间通常进行多路复用(即上层的多个应用可同时共享下层)

P5

IP包中的大多字段对路由选择都很重要

如图1-2

版本:标识了IP包的版本号,0100代表IPv4,0110代表IPv6

P6

报头长度:用来表示32位字长的IP报头长度。IP报头最小长度为20个八位组,最大可以扩展为60个八位组

服务类型:被划分为两个子字段:优先权和ToS。优先权用来设置数据包的优先级

ToS允许按照吞吐量、时延、可靠性和费用方式选择传输服务

P7

近年来,ToS字段已经作为区分服务(Diffserv)构架的一部分被重新定义了。区分服务处理IP数据包比ToS更加灵活

PHB:每一个排序和转发的处理成为一个Per-Hop Behavior

这个排序机制可以称为服务类别(CoS)

图1-3显示了ToS如何被重新定义的,开始的6个位构成了区分代码点(DSCP),其最多可以定义64种服务类别,并可对应到PHB中

总长度:等于IP报头长度+有效负载长度,IP数据包最大长度65535

标识符:与标记字段和分段偏移字段一起用于数据包分段,路由器在被分段的每片数据包的标识字段打上相同的标记,以便标识属于同一个数据包的分段

标记字段:DF=1时,表示路由器不能对数据包分段,可以在扩展Ping中设置DF位

被分段的数据包不会在数据链路的另一端被重组,而是一直保持分段状态,直至到达最终目的地才会被重组

P8

MF=0表示此段为被划分的最后一个段,以便接收者直到收到MF位为0时分段为止,其余分段MF=1

分段偏移:用于指明分段起始点相对于报头起始点的偏移量,它可以帮助接收者按照正确的顺序重组数据包

如果某个分段丢失,需要发送方重传整个数据包

P9

生存时间:TTL实际上是表示跳数,建议缺省值为64

Traceroute的工作基于TTL字段

协议:给出了传输层协议的协议号,指定了数据包中信息的类型

P10

报头校验和:针对IP报头的纠错字段,UDP,TCP和ICMP都有各自的校验和,每台路由器都必须重新计算校验和。

可选项:长度可变,可选,多用于测试,选项包括,松散源路由选择、严格源路由选择、记录路由(数据包会纪录自己到过哪台设备)、时间戳(数据包会记录自己什么时间到达的)以上选项可以使用扩展Ping命令调试

P12

填充:添0补足32位,保证报头长度是32位的倍数

IPv4地址长度为32位,包括网络号和主机号两部分

P13

点分十进制表示只适用于IPv4,不适用于IPv6

点分十进制只是为了方便人们阅读和书写,路由器内部只能识别二进制

NetWare和AppleTalk协议网络位主机位是固定的,而IP地址则不同

P14

A类地址的首个八位组以“0”开头,取值范围是1~126

B类地址的首个八位组以“10”开头,取值范围是128~191

C类地址的首个八位组以“110”开头,取值范围是192~223

P15

负责管理和分配IP地址的高级管理机构是亚洲的APNIC、北美的ARIN、中美与南美洲的LACNIC,以及EMEA的RIPE

私有地址 10.0.0.0-10.255.255.255、172.16.0.0-172.31.255.255 192.168.0.0-192.168.255.255

地址所有者有权决定主机位的分配

P17

一个子网是一个主A类、B类或C类地址空间的一个子集

有类路由协议无法使用全0和全1子网

P18

可以使用点分十进制、位计数、十六进制(UNIX系统使用)三种方法表示子网掩码

更改掩码显示方式命令:ip netmask-format[decimal | hexadecimal | bit-count]

P22

IPv4使用ARP发现邻居的数据链路表示(MAC),NetWare把设备的MAC地址作为网络层地址的主机部分

P24

Debug ARP命令可以显示ARP活动情况

如图1-14硬件类型:指定网络类型

P25

协议类型:指定发送者网络层使用的协议,IP协议对应0x0800

硬件地址长度:就是MAC地址长度,为6个字节

协议地址长度:网络层协议IP的长度,IPv4长度为4

操作:指明了ARP包类型(1)ARP请求(2)ARP相应(3)反向ARP请求(4)反向ARP 相应(8)反转ARP请求(9)反转ARP相应

Show arp命令可以察看Cisco路由器的ARP表

Cisco路由器ARP表每隔4小时(14400s)刷新一次,修改该时间可以使用命令:接口模式下,arp timeout 时间(s)

P26

手动静态映射ARP,采用snap封装,全局模式下:arp ip-address mac snap

清空ARP表中的动态条目:clear arp-cache

代理ARP有时也称为混杂ARP

P27

察看ARP映射表,如果发现多个IP地址映射到一个MAC地址的情况,说明使用了代理

ARP

Cisco IOS缺省情况下代理ARP功能是开启的,如果想要关闭,在接口模式下:no ip proxy-arp 当主机将自己的IP地址作为ARP请求的目的地址时,称为无故ARP

无故ARP的作用有(1)检查重复地址(2)通告一个新的MAC地址(3)使用HSRP时,当路由器从standby转换到active时,通告主机其自身新的MAC地址

IOS缺省情况下关闭无故ARP,如果想要开启:ip gratuitous-arps

反向ARP:已知mac地址,想要映射IP地址,可用于无盘工作站

RARP正在被DHCP和BOOTP所替代,后者可以提供除了IP地址外的更多信息,而且还可以跨网段

P28

ICMP消息可以分为:错误消息、请求消息、响应消息

P30

与路由选择相关的几种ICMP消息类型:

路由器通告和路由其选择:分别是类型9和类型10,它们用于ICMP路由器发现协议(IRDP),IRDP用于某些操作系统发现本地路由器,例如微软Windows操作系统的大多数版本

重定向:ICMP类型5,路由器用其通知主机去往特定网段的网关不是自己,而是网络上的另一台路由器

使用debug ip icmp可以调试ICMP

P31

在IOS中缺省情况下重定向是开启的,如果想要关闭,在接口上使用命令no ip redirects

主机到主机层负责两个在完全不同网络上的主机之间的全程逻辑路径,主机到主机层提供两个主要的服务:TCP和UDP

TCP提供了一个类似于点到点的连接,点到点连接有两个特点(1)仅存在一条到达目的地的路径(2)数据包到达的顺序与发送的顺序相同

但网络层仅能提供尽力而为的转发服务

TCP首先要建立连接,然后再传输数据,传输完后再拆除连接

TCP使用3种机制实现面相连接的服务(1)使用序列号对数据包进行标记(2)使用确认、校验和定时器系统提供可靠性(3)使用窗口机制调整数据包流量

重传数据包条件:(1)当接收者按照顺序识别出数据包未能到达或发生错误,接收者将通知发送者(2)接收者在特定时间内没有发送确认信息,那么发送者就认为在发送结束后数据包没有到达接收方

P33

端口号用于标识数据的源和目标应用程序

源端口和目的端口:端口号加上应用程序所在主机的IP地址通称为套接字(socket),网络上套接字唯一的标识了一个应用程序

序列号:确定了发送方发送的数据流中被封装的数据所在的位置

确认号:确定了源点下一次希望从目标接收的序列号

UDP的优点是不花时间建立连接,直接发送数据,还有UDP报头长度远远小于TCP报头长度

不同于TCP,UDP中校验和字段是可选的(全0填充)

P40

IPng也称为IPv6

NAT是一种解决IPv4地址不够用的短期方案

IPv6协议使用128位的地址代替32位的IPv4地址

P41

IPv6地址被分割为8个16位段来表示,每个16位段的取值范围是0x0000~0xFFFF,彼此用“:”隔开

IPv6地址的简化书写原则:(1)启始的0可以省略(2)任何由全0组成的1个或多个16位段的单个连续的字符串可以用一个双冒号“::”表示,双冒号在表示中能出现一次

P42

IPv6协议的前缀始终通过位计数的方式来表示“/”

一个由全“0”组成的IPv6地址的实例(缺省地址)能够被简单的写成一个双冒号“::/0”另一个由全“0”组成的IPv6地址的实例(未指定地址)能够被写成“::/128”,两者前缀不同

IPv6地址存在三种类型:单播、任意播、多播

IPv6协议中没有广播地址,但IPv6中提供了一个包含全部节点的多播地址,实现了IPv4中“广播”的功能

单播地址用来表示单台设备的地址

早期的格式将IPv6单播地址分为了顶级聚合、次级聚合和其他字段

P43

地址的主机部分被称作接口ID,单个接口能够拥有多个IPv6地址,还能拥有一个附加的IPv4地址

IPv6地址子网标识符的位置是地址网络域的一部分而不是主机域的一部分,这样所有IPv6地址的接口ID位数一致

出了极少数的例外,IPv6地址前缀48位,子网ID16位,接口ID64位

P44

目前所有全球单播地址的前3位是001,换算成16进制表示就是2或3开头

链路本地单播地址起始10位是1111111010(FE80::/10)

地区本地单播地址起始10位是1111111011(FEC0::/10),它仅在特定区域内可被路由,类似于IPv4的私有地址(目前存在争议)

P45

一个任播地址表示的是一种服务,它可能是多台设备

使用任播地址的好处就是路由器总是选择到达最近的或代价最低的服务器的路由,且当其中一台服务器变得不可用时,路由器能够把路由指向下一台最近的服务器

P46

多播地址标识的不是一台设备,而是一组设备

一个多播数据包通常包括一个单播地址作为源地址,一个多播地址作为目的地址,多播地址

从来不会做为源地址

一个多播组的成员可以只有一台设备,也可以是网络上的所有设备

IPv6没有广播地址,但它有一个包含所有节点的多播组,以实现相同的功能

多播地址起始8位总是全1(0xFF)开头

标记位前3位未被使用(设为0),第4位指出这个地址是一个永久的、公认的地址(为0),还是一个管理分配使用的暂时性的地址(设为1)

最后的112位作为组ID,目前的用法是设置前面的80位为0,而只使用后面的32位

P47

IPv6中嵌入IPv4地址的技术

(1) 把IPv4地址放在IPv6地址的最后32位,并用点分十进制法表示

(2) 把IPv4地址转换成十六进制编码表示,例如6to4技术

流量类别:相当于IPv4协议的ToS字段

P48

流标签:IPv6协议独有的字段,作用是为特定的业务打上标签

打标签好处:(1)在使用Qos技术时可以提供更精细的服务类别区分的颗粒(2)使用负载均衡时确保属于同一个流的数据包能够总是转发到相同的路径上去,避免重新排序

流:源地址、目的地址加上源和目的的端口的组合来确定

不像IPv4,IPv6包的长度固定为40字节

下一个报头:也可能指明了下一个上层协议的报头或扩展的头部

P49

由于当前传输介质的可靠性,以及上层协议通常携带了自己的错误校验和恢复机制,IPv6报头去掉了校验和字段

IPv6报头更加简洁有效

扩展报头:当需要实现一些扩展功能时添加在报头之后

扩展报头好处:(1)数据包仅仅需要传送各自数据包所需要的信息,不需要传送用不到的字段(2)可以通过定义新的扩展报头添加到IPv6数据包中来增加新的可选功能

每个扩展报头都有一个下一个报头字段,告知是哪一个报头跟在它的后面

P50

分段:与IPv4不同,IPv6路由器不对数据包进行分段,而是使用PMD(Path MTU Discovery)得到目的路径的最小MTU值或使用最小长度大小选项(1280字节)

P51

扩展报头的排列应该遵照一定的顺序,比如如果使用逐跳可选项,它必须直接跟在IPv6报头的后面

P52

在IPv4中ICMP使用的协议号是1,而在IPv6中ICMPv6使用的下一报头的值为58

Echo请求和Echo答复消息用于Ping功能中

IPv6一个最显著的特征就是即插即用特性,它是通过邻居发现协议(NDP)实现的

NDP可以实现:路由器发现、前缀发现、参数发现、地址自动配置、地址解析、下一条确

定、邻居不可达检测、地址冲突检测、重定向

P53

重定向功能在IPv4中是ICMP基本功能的一部分,而在IPv6中是NDP的一部分

承载所有NDP消息的IPv6数据包的跳数被限制为255,不能小于255否则将被丢弃

NDP使用了5个新的ICMPv6消息:路由器通告、路由器请求、邻居通告、邻居请求、重定向

路由器通告:它的ICMPv6类型134,代码是0,源地址为始发数据包接口的IPv6链路本地地址,目的地址为所有节点的多播地址(FF02::1)或发出请求的设备的链路本地地址

P55

路由器请求:它的ICMPv6类型133,代码是0,源地址为始发该消息的接口IPv6地址或“::”,目的地址为所有路由器多播地址(FF02::2)

邻居请求:它的ICMPv6类型135,代码是0,源地址为始发该消息的接口IPv6地址或“::”,目的地址为被请求节点的多播地址,或者就是目标地址

邻居通告:它的ICMPv6类型136,代码是0,源地址为始发该消息的接口IPv6地址,目的地址为该消息所要答复的发出请求的源地址,或者是所有节点的多播地址(FF02::1)

重定向:它的ICMPv6类型137,代码是0,源地址为始发该消息的接口IPv6地址,目的地址为触发重定向的数据包的源地址

以上5种类型的消息中的可选项字段,都是由一个或多个类型/长度/数值(TLV)这3个参数组合构成的

P57

路由器通过在相连的链路上周期性地发送路由器通告消息,表明它的存在,并告知所配置的所有参数

P58

路由器通告消息发送的周期是4~1800s,缺省值为600s,通告最小周期缺省值为200s

使用命令ipv6 unicast-routing使IPv6有效,Cisco路由器可以在以太网和FDDI接口上自动地发送路由器通告消息,缺省的间隔值是200s,路由器通告消息的缺省生存时间1800s

P59

对于广播型接口,地址的自动配置使用MAC―to―EUI64转换法,其原理是(1)将MAC 地址表示成二进制形式(2)在中间插入固定数值“11111111 11111110(0xFFFE)”(3)把MAC地址第7位(U/L位)取反,这样形成了接口ID

接口ID再加上本地链路前缀(0xFE80::/64)就构成了链路本地的IPv6地址

如果一台主机仅仅需要和所在链路上的设备通信,那么自动配置的链路本地地址就已经足够了,如果需要和链路以外的设备进行通信,那么它需要一个全球IPv6地址,可以通过两种途径获得该地址:有状态或无状态的地址自动配置

有状态地址自动配置:主机会借助DCHPv6服务器来获取必要的地址信息。要么根据预先的配置去查找DHCPv6服务器,要么由收到的设置了M标记的路由器通告消息告诉它使用DHCPv6服务器

无状态地址的自动配置:从收到的路由器通告消息中获取一个或多个链路前缀,加上自己先前确定的接口ID形成全球唯一IPv6地址

P60

在每个地址使用之前都得进行冲突检测

如果一个接口ID通过了冲突检测,则使用这个接口ID得其它地址则不需再进行冲突检测已经获取一个新地址的节点会把这个新的地址归类为临时状态的地址,在地址冲突检测操作没有完成并确认链路上没有其它节点使用这个地址之前,该地址不能被使用

IPv4协议使用ARP获取MAC地址,而IPv6使用NDP获取这个地址

P61

Windows系统中察看IPv6 的IP与MAC对应表“ipv6 nc”

如果一个地址不在邻居缓存中,它也显示在表中但被标记成不完全的(incomplete),这表示正在进行该地址的地址解析处理

它会向邻居发送邻居请求消息,如果发送3个邻居请求消息后还没有得到邻居通告回复,则邻居地址解析失败

如果邻居地址解析成功,则把该条目从incomplete更改为可达(Reachable)状态

在Cisco路由器上使用show ipv6 neighbors察看邻居缓存

P62

无状态地址自动配置由于其相对固定的接口ID,设备容易被跟踪,因此有时会产生安全问题,我们可以通过使用IPv6私有地址解决这个问题

私有地址原理就是采用随机生成的接口ID经常变化地址

标准的无状态配置的IPv6仍然保留了你的“公有”地址,一共别人发数据包给你时使用,当你发送返回的数据包时使用的却是私有地址

Windows输出中将公有地址显示为public,私有地址显示为anonymous

P63

一个邻居缓存条目可以具有5种状态

Incomplete:正在进行邻居地址解析处理

Reachable:目的地址在Reachable time时间内可达,Reachable time缺省时间30s

Stale:自从收到可达性肯定的确认后,已经经历了Reachable time所指定的时间

Probe:没经过Reachable time时间或每1000ms(如果没指定Reachable time),节点会通过向目的节点发送邻居请求消息来搜索可达性的确认

Delay:当数据包发送到处于Stale状态的目的节点时,这个地址就进入Delay状态,保持Delay状态5s后进入Probe状态

邻居可达性确认有两种方法:

(1) 来自上层协议的提示(Hints),例如TCP消息的ACK等

(2) 通过请求一个路由器通告消息或邻居通告消息的到有关对目的地址搜索的响应

对于某些上层协议,例如UDP不对所传送的消息进行确认

邻居不可达性的检测应该是双向的,因此只有收到一个传输层消息的远程响应消息(例如TCP数据包的ACK),或者收到一个响应请求消息的路由器通告消息或邻居通告信息后,才能确认双向的可达性

P67

数据链路层/物理层提供跨物理路径的通信服务,而传输层/网络层则提供夸由一连串的数据链路组成的逻辑路径或虚拟路径的通信服务

路由表有叫做路由选择信息库(RIB)

P68

每个路由表项最少包括下面项目:(1)目标地址(2)指向目标地址的指针:下一跳路由器或本地出口

路由器将会尽量地进行最精确的匹配(最长匹配原则),缺省地址只有当所有匹配都失败时才能被使用

P69

为了正确的进行数据包交换,每台路由器都必须保持信息的一致性和准确性

Show ip route可以察看路由表,路由表中gateway of last resort is not set指的是缺省路由

P70

度量是通过优先权评价路由的一种手段,静态路由的度量值为0

路由表获取信息的方式:(1)基于路由器直连子网(2)手动输入(3)动态路由协议

在配置静态路由时,没有必要写出有关直连数据链路的路由描描述,因为在路由器接口上的配置的地址和掩码可以使这些直连网络被记录在路由表中

P71

RIP和IGRP对于含有不连续子网和可变长子网的网络不能进行正常的路由

P72

配置静态路由的命令 ip route用于IPv4,且配置静态路由时必须满足以下条件:(1)IP路由选择必须启动(2)接口必须配置地址

所有用静态路由指明的网络,如果静态路由配置的是出站接口,那么它们将被作为直连网络输入到路由表中

配置静态路由可以联合使用出站接口和下一条地址,这样可以把与下一条地址相关联的出站接口查询减到最小,同时使相应的路由表项不再是直连网络,而是距离为1的静态路由

P73

配置静态路由时,如果在一个广播型出站接口配置到达目的网段通过本地出口时,可能会导致过多的ARP流量,如果采用ip route 10.1.1.0 255.255.0.0 E0 192.168.1.1这种联合出站接口和下一条的配置,可以把广播网络上的流量减到最小

P74

IPv6静态路由的掩码使用目标网络的前缀长度,IPv6路由选择缺省情况下是关闭的,需要使用命令ipv6 unicast-routing开启

创建IPv6静态路由的命令是ipv6 route 目标网络前缀长度(比特)下一跳地址或本地出口

在为IPv6网络分配地址时,要想预先指定下一条地址,就必须手动指定接口ID,而不能使用自动构建的EUI-64格式的地址

如果已经指定了EUI-64的接口ID,那么就只能指定接口的前64位

想要查看接口的IPv6地址,可以使用show cdp neighbor detail命令或show ipv6 interface(显示接口的IPv6信息)命令

P75

配置IPv6的静态路由也可以使用出站接口,但当出站接口是广播接口时,例如以太网,应该使用下一条地址

使用show ipv6 route命令察看IPv6的路由表、

与IPv4一样,使用下一跳IPv6地址建立的静态路由的管理距离是1,路由度量值为0

配置IPv6静态路由也可以联合使用出站接口和下一跳地址

P76

与IPv4不同,静态路由如果配置的是出站出口,则它的管理距离仍然为1,在路由表中显示的目标网络也不是直连的

P77

除非同时指定出站接口和下一条地址,否则在输入出站接口时下一条地址是不确定的(::)对于点到点的串行接口上不会出现问题,但对于广播网络接口上,如果配置了出站接口,必须指定下一条地址

路由器向广播网络上的所有设备通告自己的存在以及本地链路地址,主机使用这些通告信息建立路由器列表,并使用这些列表确定如何向网络转发数据包

汇总路由是一个包含路由表中几个更加准确地址的地址

P78

用小于标准主类掩码长度的掩码表示一组汇总路由叫做超网

P79

可用命令debug ip packet观察数据包走的路径

静态路由的两个特性(1)如果网络拓扑结构发生变化,那么需要知道这些变化的路由器必须被重新配置(2)可以用静态路由建立非常精确的路由选择行为

路由表中的其他路由总是优选于浮动静态路由,仅在一条首选路由发生失败的时候,浮动路由才会出现在路由表中

P80

度量指明了路径的优先权,但管理距离指明了发现路由方式的优先权

指向下一跳的静态路由管理距离为1,指向出口的静态路由管理距离为0

P83

不管是使用出站接口还是下一条地址,IPv6静态路由管理距离的缺省值都是1,使用者两种方式指定的静态路由是等价的,并且会均分负载

均分负载可以是等价的或非等价的,静态路由仅支持等价负载均衡

P84

负载均衡有两种方式:基于目标网络和基于数据包

基于目标网络的负载均衡是根据目标地址分配负载,例如发往第一个目标的数据包走第一条路径,发往第二个目标的数据包走第二条路径,发往第三个目标的数据包走第一条路径等等这就是Cisco急速转发(CEF)使用的缺省负载均衡方式

在大部分平台上,IPv4的缺省交换模式是CEF,但是IPv6却不是

CEF在缺省情况下是基于目标进行负载均衡,这实际上是按照源目的对进行负载均衡

IPv4同时支持基于目标网络和基于数据包的负载均衡,对于IPv6,CEF仅支持基于目标网络的负载均衡

基于数据包的负载均衡方式意味着在不同的链路上发送数据包,它可以更加均匀的分布流量,但数据包选择不同的路径去往目标网络会引起非顺序到达,对于某些应用如V oIP这是不能接受的

P85

缺省情况下CEF没有打开,开启IPv4 CEF使用ip cef,对于IPv6来说必须先打开IPv4的CEF,然后使用ipv6 cef开启

可以使用命令show ip cef和sh ipv6 cef察看开启情况

在IPv4下,命令ip load-sharing per-packet可以打开基于数据包的负载均衡功能

在IPv4下,命令ip load-sharing per-destination可以打开基于目标地址的负载均衡功能

可以使用命令show cef interface来检查使用了哪一种负载均衡模式

路由器传送数据包可以使用CEF交换、快速交换(IPv4)、过程交换process switching(IPv6)可以使用命令show cef interface和show pv6 cef interface detail来验证接口CEF功能是否打开

在一些路由器上,IOS的缺省交换模式是快速交换

基于目标网络的负载均衡和快速交换:(1)路由器交换第一个去往某个目的地的数据包时先查询路由表选择出站接口(2)获取相关接口的数据链路信息,比如通过ARP协议获取MAC 地址等,并封装成帧(3)以上信息被存入快速交换的高速缓存中(4)去往相同目的地的后续数据包再次到达时,不必再查找路由表和ARP表,就可以立即交换数据包

基于数据包的负载均衡和过程交换:对于每个数据包,路由器都要进行路由表查询和接口的选择,然后再查询数据链路信息

在IPv4下使用命令no ip route-cache打开过程交换,对于IPv6缺省情况下就是过程交换

P86

Debug ip packet 仅显示过程交换的数据包

基于数据包的均衡负载虽然流量的分布比前一种方式更均匀,但是交换时间和处理其占用率都变高了

如果入站接口CEF功能被打开,IOS将只使用CEF交换数据包,否则出站接口的配置会确定交换方法

如果在出站接口打开了CEF,在入站接口配置了过程交换或快速交换,那么快速交换将被使用,对于IPv4,尽管在出站接口上打开了CEF功能,但是起作用的还是快速交换

P87

所有路由表项不一定指向下一跳路由器,路由器会执行递归查询

快速交换仅对去往每个目标网络的第1个进行递归查询,从而有效的提高了交换速度

P94

手动在ARP表中添加不能被动态ARP条目覆盖的静态ARP命令:全局模式下arp ip-address mac-address arpa

P99

如果数据包从一个接口出站后又从相同的接口入站,标明存在环路将会出现错误

P107

动态路由选择协议不仅执行路径决策和路由表更新功能,而且还要在最优秀的路径不可用时决策下一条最优路径

所有路由选择协议都是围绕着一种算法而构建的,一种路由算法至少应指明以下内容(1

)向其他路由器传送网络信息的过程(2)从其他路由器接收网络信息的过程(3)基于现有信息决策最优路由的过程,以及在路由表中记录这些信息的过程(4)响应、修正和通告网络中拓扑变化的过程

P108

可以不给路由器点到点链路的接口分配地址,但这时需要使用环路地址作为代理地址

每台路由器从分配给它的接口地址和掩码可以知道它的直连网络

P109

度量(metric)是衡量目的网络远近的值

P111

使所有路由表都达到一致状态的过程叫做收敛,当网络处于未收敛时,路由器容易受到错误路由选择信息的影响

在两个或多个目标网络之间流量的持续循环为路由选择环路

P112

距离矢量名称的由来是因为路由是以矢量(距离、方向)的方式被通告出去的,其中距离是根据度量定义的,方向是根据下一条路由器定义的

距离矢量路由协议有时又被称为“依照传闻进行的路由选择”

距离矢量路由协议有:RIP、XNS RIP、IPX RIP、IGRP、EIGRP、DNA阶段4、RTMP

距离矢量路由协议会定期向所有邻居发送路由更新信息

P113

定期更新:RTMP是10秒,RIP是30秒,IGRP是90秒

邻居:距离矢量路由选择被说成使用逐跳更新的方式

广播更新:广播地址是255.255.255.255

全路由选择表更新:通过广播自己的整个路由表进行更新

P115

路由失效计时器:路由器不断的向某个不可达的网络转发数据包的情况叫做路由黑洞,解决这个问题的办法是为路由器中每个表项设置路由失效计时器

路由超时的典型周期范围是3~6个更新周期

水平分隔:路由的指向与数据包流动方式相反的路由被称为逆向路由(reverse route),水平分隔技术可以解决这个问题

P116

执行水平分隔可以阻止路由环路的发生,有两类水平分隔方法:简单水平分隔和毒性逆转水平分隔法

简单水平分隔:从某个接口发送的更新消息不能包含从该接口收到的更新所包含的网络,简单水平分隔采用抑制更新的方式

毒性逆转水平分隔:毒性逆转水平分隔是一种改进的方法,它的原理是当更新信息被发送出某接口时,信息中将指定从该接口收到的更新信息中获取的网络是不可达的

P117

水平分隔法切断了邻居路由器之间的环路,但是它不能切断网络中的环路,解决这个问题的办法是定义无穷大的数值(16跳)

定义无穷大数值的方法收敛速度慢,触发更新可以用于减少收敛时间

P118

触发更新又叫快速更新,如果一个度量变好或变坏,那么路由器将立即发送更新信息,而不等更新计时器超时

触发更新时仅包括实际触发该事件的网络,而不是包括整个路由表

抑制计时器:如果到一个目标的距离增加,那么路由器将为该路由设置抑制计时器,直到计时器超时,路由器才可以接受有关此路由的更新信息

异步更新:如果更新计时器同步,就可能发生碰撞

维持异步更新的两种方法:(1)每台路由器的更新计时器独立于路由选择进程(2)在每个更新周期中加入一个小的随机时间或定时抖动作为偏移

P119

网络中运行链路状态路由协议的路由器都拥有相同的拓扑数据库,而且每台路由器可以独立地计算各自的最优路径

链路状态路由协议:OSPF、IS-IS、DNA阶段5、NLSP

OSPF中的LSA对于IS-IS则是LSP(链路状态PDU)

P121

当路由器收到数据库中已存在的LSA且序列号相同时,路由器将丢弃这些信息,如果信息相同但序列号更大,那么接收的信息和新序列号被保存到数据库中

IS-IS使用32位线性序列号空间

线性序列号的问题:(1)有最大数限制(2)路由重启后序列号会发生重计

P122

循环序列号空间:认为a更新的两个公式

(1)a>b且(a-b)<=n/2

(2)an/2

P123

棒棒糖形序列号空间:它是线性序列号空间和循环序列号空间的综合

当且仅当

a<0且a

a>0 a

a>0 b>0 且(a-b)>n/2或

认为b比a更新

P124

老化年龄OSPF是递增的,IS-IS是递减的

老化为网络定义了一个最大年龄差距(MaxAgeDiff)

当路由器收到的一个LSA的多个拷贝时它会比较年龄差距是否小于MaxAgeDiff,如果小于则忽略,如果大于MaxAgeDiff,则认为网络发生异常,它将较新的LSA纪录下来,并扩散出去

典型的MaxAgeDiff值为15min(OSPF)

P125

拓扑数据库中的LSA的年龄也会不断增大,如果达到最大值(MaxAge),它将被从拓扑数据库中删除,并将一个带有MaxAge值的LSA扩散到所有邻居

LSRefesTime用于定期刷新LSA使其MaxAge计数器不断复位

一旦LSRefesTime计时器超时,路由器将扩散新的LSA,收到的邻居会把由关路由器记录的年龄设置为新接收到的年龄

OSPF定义的MaxAge为1小时,LSRefesTime为30min

LSA包括两类通用信息(1)路由器链路信息:通告邻居路由器以及到达邻居路由器的代价(2)末梢网络信息:通过路由器直接连接的末梢网络

P126

链路代价是按照出站接口的方向计算的,因此同一条路径的不同方向代价可能不同

P129

一个区域是构成一个网络的路由器的一个子集,将网络划分为区域是针对链路状态协议的3个不利影响所采取的措施(1)对内存的较多占用(2)对CPU资源的较多占用(3)对不稳定网络的带宽影响

P130

区域边界路由器是连接两个区域的路由器,它同时属于所连接的两个区域,而且必须为每个区域维护各自的拓扑数据库

一个自主系统被定义为在共同管理域下的一组的路由器

P131

EGP包括:BGP、EGP、IDRP、NLSP

自主系统有两种含义:(1)定义了一个管理域(2)是一个路由协议的进程域

P137

RIPv1是有类路由协议,RIPv2是无类路由协议,RIPng是RIPv2协议为了支持IPv6协议而设计的修订版本

P138

RIP协议的处理是通过UDP 520端口来操作的,所有的RIP消息都被封装在UDP包里

RIP协议定义了两种消息类型:请求消息、响应消息

运行RIP路由协议的Cisco路由器更新时间在25.5~30s之间变化,更新的目的地址是所有主机的广播地址255.255.255.255

P139

RIP称无效计时器(invalidation timer)为限时计时器(expiration timer)或超时计时器(timeout timer),而在Cisco IOS中称为无效计时器(invalid timer),它是用来限制停留在路由表中的路由未被更新的时间,初始值为180s,当它到期后该条目被标识为16跳(不可达)

另一种计时器,称为垃圾收集(garbage collection)或刷新计时器(flush timer),初始值为240秒,当它到期后,该条目不但被标识为不可达,同时将其从路由表中删除

抑制计时器(holddown timer):如果一条路由更新的条数大于路由表已记录的该路由的跳数,那么会引起该路由进入180s的抑制状态阶段

更改以上计时器的命令是:timers basic update invalid holddown flush

一些主机可以在“静”模式下使用RIP(只接收RIP更新不发送RIP信息),例如在一台UNIX 主机上可以使用“-q”选项的“routed”启动静模式下的RIP

RIP数据报的大小(不含IP包的头部)最大可达512个八位组字节

命令:1表示是请求消息,2表示是响应消息

地址族标识:对于IP设置为2

P142

RIP请求消息可以请求整个路由表信息,也可以仅请求某些具体路由的信息

RIP支持等价路径的负载均衡

P143

RIP等有类路由协议假定对于同一个主网络地址使用了相同的掩码

P144

如果一个网络和路由器直连的,那么路由器将在路由表中作为一个标题条目列出该网络和该网络所连接的接口的子网掩码,如果不是直连的,路由表仅仅列出主网络而不列出与它相关联的掩码

有类别路由选择:在边界路由器上的路由汇总

P148

被动接口:组织一个接口向外以广播的方式发送路由更新,但是可以接收路由更新

配置命令:路由配置模式:passive-interface 接口

P149

配置单播更新命令:neighbor 邻居接口的IP地址

P151

辅助地址可以解决不连续子网问题

P153

偏移列表offset-list可以用来改变路由的度量值,它需要参照一个访问列表,其语法如下:

Offset-list {access-list-number | name}{in | out} offset [type number]

配置触发扩展特性可以消除周期性的RIP更新,将更新信息减少到最小

命令是接口模式下ip rip triggered,这条命令仅仅在串行链路上有效,而且必须在链路的两端同时配置才会产生效果

P158

当一个高速路由器向一台低速路由器发送大量RIP消息时,可以使用命令output-delay设置一个8~50ms的发包之间的延迟间隙来解决

P165

RIPng是一个无类路由协议

P166

RIPv2使用组播更新,地址是224.0.0.9

路由标记:标记外部路由或重新分配到RIPv2协议中的路由

P167

下一跳:它标识一个比通告路由器的地址更好的下一跳地址

P168

通过设置“兼容性开关”来允许版本1和版本2之间的互相操作(1)RIP-1:只有RIPv1消息被传送(2)RIP-1兼容性:RIPv2广播更新(3)RIP-2:RIPv2组播更新(4)不发送更新(passive-interface)

P169

有类别路由查找:首先将目的地址与路由选择表中的主网地址匹配,然后匹配主网的子网无类别路由查找:它不注意目的地址的类别,而是在目的地址和所有已知的路由之间逐位(bit-by-bit)执行最佳匹配(对于RIPv1和IGRP这样的有类路由协议,也可以使用全局命令ip classless开启无类别路由查找)

无类路由协议在更新的条目中携带子网掩码,每条路由拥有子网掩码的一个好处是,全0和全1的子网现在可以使用了

缺省情况下即使运行的是无类路由协议,Cisco IOS也将拒绝试图把一个全0子网配置为有效的地址/掩码的组合,因此需要使用全局命令ip subnet-zero进行更改

P172

在含有认证的单个更新消息中,最大的可以携带的路由条目被减少到了24个

认证是通过设置地址标识字段为全1(0xFFFF)标识的

对于简单口令认证,认证类型字段的之是2(0x0002),口令以明文传送

174

MD5算法是通过一个随意长度的明文消息(例如一个RIPv2的更新消息)和口令计算出一个128位的hash值。这个“指纹”随同消息一起传送。拥有相同口令的接收者会计算它自己的hash值,如果消息的内容有没被更改,接收者的hash值应该和消息中发送者的hash 值相匹配

MD5认证类型字段的值是3

P175

RIPng协议不支持IPv4,因此如果相同时运行IPv4和IPv6,那就需要同时运行RIPv1或v2以及RIPng

RIPng使用的IPv6多播地址是FF02::9

RIPng本身没有认证机制,但是承担认证功能的特性已经集成到IPv6中了

RIPng发送和接收消息都是运行在UDP端口521上的,与RIPv1和v2的另一个不同之处是它没有设定消息的大小,消息的大小紧紧依赖于发送它的链路MTU值

P176

版本号:设置为1,RIPng当前的版本是RIPng1

IPv6前缀:是指路由条目的128位的目的IPv6前缀

路由标记:用于标记经过RIP路由域传送的外部路由属性

前缀长度:缺省路由(0:0:0:0:0:0:0:0)的前缀长度是0

RIPng只在一个专门的路由条目里指定下一条地址,并把所有使用这个下一条地址的路由条目编成组,跟在这个专门的路由条目后面

P177

缺省时配置了RIP的Cisco路由器只发送RIPv1的消息,但是同时接收RIPv1和RIPv2的消息

如果使用version命令,则只发送和接收对应的RIP版本消息,可以使用no version恢复到原来的缺省配置

Cisco IOS刻意在基于接口的模式下提供“兼容性开关”命令是:ip rip send version和ip rip receive version来实现

P179

关闭接口下的水平分隔:no ip split-horizon

P183

设置RIPv2认证的步骤:(1)定义钥匙链(2)定义钥匙(3)在接口上启用认证并加载钥匙链(4)指定接口的认证类型(5)配置钥匙管理(可选)

P184

即使只有一个钥匙,也必须配置钥匙链,钥匙链的名字只具有本地意义,但口令必须一致接口缺省使用明文认证

从其他路由器接受的口令和发送消息所使用的口令在管理上是分离的,钥匙的号码按照从最低到最高的顺序检查,使用第一个有效的钥匙

在对钥匙的管理时,建议使用像网络时钟协议(NTP)这样的时钟同步协议

P185

在IPv6下启动RIPng进程:接口模式下ipv6 rip process-name enable,进程名只具有本地意义,可以在一个接口上同时启动多个进程(但同一台路由器上的不通进程不能进行信息交换)该命令需要在每一个运行RIPng协议的接口上启动

P187

如果在同一个接口上同时运行两个进程,那么这两个RIPng进程不能使用相同的UDP端口号,需要使用命令ipv6 router rip process-name port number multicast address修改

P188

所有运行更改UDP端口号的RIPng进程的路由器和主机都必须使用相同的UDP端口号Show ipv6 rip可以显示出每一个进程的信息

P192

RIPng缺省管理距离120,负载均衡缺省路径数为16,最大为64

ipv6 router rip process-name

timers

maximum-paths

distance

P193

所有运行同一个RIPng进程的路由器都必须使用同样的计时器值

RIPng是通过在路由器相对应的接口上配置希望增加的跳数值来增加通过这个接口所通告的每一个前缀的度量值

命令是接口模式下:ipv6 rip process-name metric-offset number

P195

RIPng路由汇总:接口模式下ipv6 rip process-name summary-address ipv6address

配置汇总路由后,具体的路由前缀将被自动抑制

使用debgu ip rip events可以调试RIPv2的版本不匹配以及验证错误问题

P210

Eigrp不仅可以运行在IP协议之上,也可以运行在ISO无连接网络协议(CLNP)之上,也可以用于IPX和AppleTalk网络的路由

IGRP直接通过IP层的协议号9来进行数据包访问

IGRP把路由条目分成3类:(1)内部路由(2)系统路由(3)外部路由

P201

内部路由:是指到达属于某个主网络的子网地址的路径,这里的主网络是指正在广播这条路由更新的数据链路的主网络地址

系统路由:是指到达在网络边界路由器上被汇总的网络地址的路径

外部路由:是指到达被标记成缺省网络的路径

P212

IGRP协议的更新周期是90s为了防止更新计时器的同步,实际的更新周期将在72~90s之间变化

IGRP无效计时器270s,刷新计时器是630s,抑制时间是280s,禁止抑制特性的命令no metric holddown

更改以上计时器的命令timers basic update invalid holdown flush〔sleeptime〕

P213

命令show interface可以察看接口的带宽、延迟、负载、可靠性、MTU

P214

串行链路的带宽缺省为1.544kbit/s,可以通过bandwidth命令更改,此带宽没有必要反映出链路的真实带宽

而IGRP的带宽使用107/链路带宽,串行链路的BWigrp=107/1.544=6476或0x00194C

时延可以通过show interface命令显示的DLY参数来表示,单位是us(微秒),也可以通过命令delay尽心更改,并以10us作为命令配置的最小计量单位

而DLYigrp=DLY/10,一条路由端-端最大时延是167s

P215

可靠性:255表示100%的可靠链路,1表示最低可靠的链路,在show interface的输出中,可靠性被表示成255的分数

P216

1表示最小的负载链路,255表示100%的负载链路

可靠性和负载是基于5min时间常数的指数加权平均计算的,它们每5s被更新一次

更改K值的命令metric weights tos k1 k2 k3 k4 k5(tos总是为0)

IGRP管理距离是100

P217

缺省条件下,IGRP的度量是由时延的总和加上最小的带宽计算得来的

缺省条件下,最大跳数是100,可以使用metric maximum-hops配制成1~255之间的数值

度量是基于沿着路由方向的路由器出站接口计算的

P218

EIGRP的更新是非周期的、部分的和有边界的

缺省情况下,EIGRP协议使用带宽不超过链路总带宽的50%,可以使用命令ip bandwidth-percent eigrp来更改这个百分比

P219

EIGRP使用了一个256的倍数因子扩展了度量参数

EIGRP协议包含以下4个部件(1)依赖于协议的模块(2)可靠传输协议RTP(3)邻居发现和恢复(4)扩散更新算法DUAL

每个单独的模块的通信量被封装在它们各自的网络层协议中,EIGRP在很多情况下和其他路由选择协议自动进行路由重新分配

IPX EIGRP自动和IPX RIP协议、NLSP协议重分配

AppleTalk EIGRP自动和AppleTalk RTMP协议重分配

如果IGRP进程和EIGRP进程在同一个自主系统,那么IP EIGRP也将自动低和IGRP进行路由重新分配

P220

可靠传输协议(Reliable Transport Protocol RTP)用来管理EIGRP数据包的发送和接收。EIGRP数据包的发送地址为224.0.0.10

EIGRP协议使用多种类型的数据包,所有这些数据包都是通过IP头部的协议号88来标识查询消息可以使用组播方式或者单播方式发送,而回复消息总是单播方式发送的

如果任何数据包通过可靠的方式组播出去,而没有从邻居那里收到一个ACK数据包,那么这个数据包就会以单播方式被重新发送给那个没有响应的邻居,如果经过16次这样的单播重传还没有收到一个ACK数据包的话,那么这个邻居就会被宣告为无效

从组播方式切换到单播方式之前等待一个ACK时间可以由组播流计时器(multicast flow timer)指定,后续的单播之间的时间可以由重传超时(Retransmission Timeout RTO)指定,对于每一个邻居,组播流计时器和重传超时都可以通过平均回程时间(SmoothRound-Trip Time,SRTT)来计算

SRTT是一个用来衡量路由器发送EIGRP数据包到邻居和从邻居那里接收到该数据包的确认所花费的平均时间,单位ms毫秒

P221

大多数情况下EIGRP的Hello数据包以组播方式每5s发送一次,在T1或更低的链路上每60s发送一次,在ATM SVC和ISDN PRI也是60s发送一次

Hello包不进行确认,其发送间隔可以使用命令ip hello-interval eigrp进行更改

缺省情况下Hello包的抑制时间是Hello间隔的3倍,分别是15s和180s,可以通过命令ip hold-time eigrp来更改

P232

Cisco的EIGRP协议使用邻居发现/恢复和可靠传输协议(RTP)来确保DUAL算法能够正确的操作

邻接:是指两个相互交换路由信息的邻居之间形成的一条逻辑的关联关系

可行距离:到达每一个目的地的最小度量将作为该目的网络的可行距离

P223

可行性条件:本地路由器的一个邻居路由器所通告的到达一个目的网络的距离是否小于本地路由器到达相同目的网络的可行距离

可行后继路由器:如果本地路由器的邻居路由器所通告的到达目的网络的距离满足了可行性条件,那么这个邻居就会成为该目的网络的一个可行后继路由器

可行后继路由器和可行性条件的概念是避免环路的一项核心技术

后继路由器:对于在拓扑结构表中列出的每一个目的网络,将选用拥有最小度量值的路由并放置到路由表中,通告这条路由的邻居就成为一个后继路由器,或者是到达目的网络的数据包的下一条路由器

P228

DUAL有限状态机:说明路由器是何时以及怎么样查找可行后继路由器的

当一个EIGRP的路由器不执行扩散计算时,每一条路由都处于被动状态(passive state)

当路由器执行一个本地计算时,路由依然保持被动状态,如果在拓扑结构表中没有发现任何一台可行后继路由器的话,它将开始进行扩散计算,路由状态变成活动状态(active state)路由器是通过向它所有的邻居发送查询来开始一个扩散计算的

相关主题
文本预览