TCP/IP Volume I
第一部分 路由技术基础知识
第1章 基本概念:互联网络、路由器和地址
 
第2章 TCP/IP回顾
 
第3章 静态路由
 
第4章 动态路由选择协议
 
第二部分 内部路由选择协议
 
第5章 路由选择信息协议(RIP)
 
第6章 内部网关路由选择协议(IGRP)
 
第7章 路由选择信息协议—第2版(RIPv2)
 
第8章 增强型内部网关路由选择协议(EIGRP)
 
第9章 开放最短路径优先协议(OSPF)
Ospf是由Internet工程任务组IETF开发的路由选择协议;
链路状态协议
RFC1131          OSPFv1
RFC1247\RFC2328 OSPFv2
和距离矢量协议相比,一个主要的改善就在于它的快速收敛;
特性:
1.区域的概念可以减少路由协议对路由器的CPU、内存资源消耗
2.无类,排除有类别路由选择协议的问题;
3.支持VLSM和超网技术;
4.支持任意度量值;
5.支持多路径的等价负载均衡;
6.组播宣告;
7.支持更安全的路由选择认证;
8.使用可以跟踪外部路由的路由标记;
9.1 OSPF的操作
1.Hello报文---协商参数—形成邻居;
2.邻接关系的建立是由交换Hello报文信息的路由器类型和交换Hello报文信息的网络类型决定的;
3.链路状态通告LSA(Link State Advertisement)通告路由器的接口和链路状态信息;由于这些链路状态信息的多样性,OSPF协议定义了许多LSA类型;
4.路由器接受LSA通告记录在链路状态数据库当中,并发出一份拷贝给其他邻居;
5.LSA泛洪整个区域,所有路由器形成同样的链路状态数据库;
6.当这些路由器的数据库完全相同时,每台路由器以自身为根,使用SPF算法去计算一个无环路的拓扑图,来描述它所知道的最短路径。这个拓扑图就是SPF算法树;
7.最后,每台路由器都从SPF算法树中构建自己的路由选择表;
邻居之间交换的Hello报文称为keepalive报文,并且每隔30min重传一次LSA;
9.1.1邻居和邻接关系
Show ip ospf neighbor
路由器ID是在OSPF区域内唯一标识一台路由器的IP地址;
路由器ID的选择:
(1)       首先,loopback接口上数值最高的IP地址;
(2)    如没有配置loopback,则选取物理接口上数值最高的IP地址。用作路由器ID的接口不一定非要运行OSPF协议;
用loopback口的两个好处:比物理接口稳定;预先分配地址时有更多回旋余地;
    Loopback接口的一个主要好处在于它具有更好控制路由器ID的能力
         即使路由器的这个用作路由器ID的物理接口随后实效了或被删除了,OSPF协议也会继续使用原来的物理接口作为路由器ID;
 
1.Hello报文协议
Hello报文的目的:
  发现邻居路由器
          称为邻居前协商几个参数
      担当keepalive角色
      确保邻居路由器间的双向通信
      用来在一个广播网络或NBMA网络上选取DR、BDR
缺省Hello时间间隔(HelloInterval)是10s;可以通过命令ip ospf hello-interval更改
路由器无效时间间隔(RouterDeadInterval)是Hello时间间隔的4倍;可以通过ip ospf dead-interval更改;
每一个Hello报文包含的信息:
         RouterID
         AreaID
         接口地址掩码
         认证类型和认证信息;
         Hello时间间隔;
         无效时间间隔;
         路由器优先级;
         DR和BDR;
路由器收到一个Hello报文时,它将检验匹配参数,如果不匹配,将丢弃
 
2.网络类型
OSPF协议定义了以下5种网络的类型:
         1.点到点:总是可以形成邻接关系;OSPF报文目的地址总是224.0.0.5
         2.广播型: 选举DR、BDR;
hello报文组播发送到224.0.0.5 AllSPFRouters (0100.5E00.0005);
其它所有路由器以组播发送链路状态更新报文和确认报文到224.0.0.6 AllDRouters (0100.5E00.0006)
3.非广播多址:NBMA网络,像X.25、帧中继和ATM;
没有广播数据包的能力;这些网络上的路由器有必要增加另外的配置来获得邻居;需要选举DR/BDR,并且所有的OSPF报文都是单播的
         4.点到多点:NBMA网络的一个特殊配置,可以被看作是一群点到点链路的集合;
不选举DR/BDR;OSPF报文是组播的;
         5.虚链路:没有编号的点到点网络;OSPF报文已单播发送
 
3.指定路由器和备份指定路由器
一台路由器可能是其中一个与它相连的多址网络的指定路由器,但可能不是其他与它相连的多址网络的指定路由器;
指定路由器是一个路由器接口的特性,而不是整个路由器的特性;
 
网络上所有的路由器将和指定路由器DR与BDR同时形成邻接关系。DR和BDR之间也将互相形成邻接关系;
DR/BDR的选取是通过一个接口状态机的方式触发;为了能够使选取的处理过程可以进行,需要满足以下一些前提条件:
         每台路由器的每一个多点访问的接口都有一个路由器的优先级(router priority);大小范围0~255;默认是1;可以通过ip ospf priority更改;0优先级的路由器将不能成为DR/BDR;
         Hello报文包含了优先级字段;
         当一个接口在多址网络上开始有效时,它将把它的DR和BDR的地址设置为0.0.0.0
 
DR/BDR的选举过程:
(1)       邻居路由器之间首先建立成功双向通信(2-way),列出所有具有DR和BDR选取资格的路由器的列表(优先级大于0,并且是2-way状态);接着所有路由器都将宣传自己是DR和BDR;
(2)       从具有选取资格的路由器的列表中,创建一个还没有宣告为DR路由器的所有路由器的子集(宣告自己为DR路由器的路由器不能被选取为BDR路由器)。
(3)       此子集中的一个或多个邻居路由器,它们在Hello报文的BDR字段包含了它们自己的接口地址,那么考虑最高优先级依次最高路由器ID;
(4)       如果没有路由器宣传自己是BDR路由器,那么考虑最高优先级依次最高路由器ID;
(5)       如果路由器在Hello报文的DR字段包含它们的接口地址,那么考虑最高优先级依次最高路由器ID;
(6)       如果没有路由器宣传自己是DR路由器,那么新选取的BDR路由器将成为DR路由器;
 
需要注意的是,路由器的优先级可以影响一个选取过程,但是它不能强制更换已经有效的DR或BDR路由器;
在一个多址网络上,最先初始化启动的两台具有DR选取资格的路由器将成为DR和BDR路由器;
所有路由器将继续以组播方式发送Hello报文到ALLSPFRouters(224.0.0.5);DRothers路由器以组播方式发送更新报文到ALLDRouters(224.0.0.6);DR路由器将使用组播地址224.0.0.5泛洪更新报文到DRothers;
 
注意,如果在一个多址网络上只有唯一的一台具有选取资格的路由器相连,那么这台将成为DR,并且网络上没有BDR;如果没有选取资格的路由器和一个多址网络相连,那么网络上将没有DR或BDR路由器,并且不建立任何连接关系,这样都停留在2-way状态;
 
4.OSPF接口
         (1)OSPF接口数据结构
Show ip ospf interface Serial1.738
 
路由器接口的数据结构的信息:
Ip address and mask
Area id :接口所在的区域;
Process id (进程ID): cisco特有属性;进程ID仅在所配置的路由器上有效;
Router ID
Network type (网络类型)
Cost :是指从该接口发送出去的数据包的出站接口代价;
108 /128kbit/s =781 ; 通过ip ospf cost改变
                   Cisco使用ospf auro-cost reference-bandwidth修正带宽高于100M的值
InfTransmit Delay:这个信息是指LSA通告从路由器的接口发送后经理的时间;cisco路由器上缺省为1s;通过ip ospf transmit-delay来改变
State(状态)
Router priority
Show ip ospf interface Ethernet0
Designated router
Backup designated router
Hellointerval
RouterDeadInterval
Wait timer
RxmtInterval:在没有得到确认的情况下,路由器重传OSPF报文将要等待的时间长度
Hello Timer:将在3秒后超时
Neighboring routers
Autype:描述在网络上使用的认证类型,这里使用了MD认证方式;
Authertication key
 
 
 
 
Show ip ospf interface Serial3
 
注意,在这里HelloInterval的值是NBMA网络类型缺省值30s
 
(2)OSPF接口状态机
一个启用OSPF协议的接口在它变成完全有效之前,将会在几种接口状态中间发生转换。
失效(down)
点到点
等待
DR
备份(Backup)-在这种接口状态下,该路由器就是BDR;
DRother
Loopback
 
 
5.OSPF邻居
要成功建立一个邻接关系,通常需要下面4个阶段:
         发现阶段
         双向通信阶段
         数据库同步阶段
         完全邻接阶段
         (1)邻居数据结构
     Show ip ospf neighbor 192.168.30.105
Neighbor ID
Neighbor IP Address
Area ID
Interface
Neighbor priority
State
PollIntervlan:这个值只用于NBMA网络上相关的邻居路由器;缺省值60s;
Neighbor Options
Inactivity Timer
 
 
 
 
       (2)邻居状态机
       实效状态Down :在RouterDeadInterval时间内未收到来自邻居的Hello报文;
       尝试状态Attempt:仅适用于NBMA网络上的邻居;
初始状态Init:在RouterDeadInterval时间内收到了来自邻居的Hello报文;
         双向通信状态2-Way: 在来自邻居路由器的Hello报文中看到了它自己的路由器ID
         信息交换初始状态ExStart: 本地路由器和它的邻居将建立起主/从关系;
         信息交换状态Exchange: 向邻居发送数据库描述报文;
         信息加载状态Loading:向邻居发送链路状态请求报文,来请求最新的LSA通告;
         完全邻接状态Full:
(3)建立一个邻接关系
除非Hello报文的参数不匹配,一般情况下都可以建立邻居关系;
数据库描述报文里面有3个标记位用来管理邻接关系的建立过程:
I位:初始位,指明发送的是第一个数据库描述报文;
M位:后继位,指明发送的还不是最后一个数据库描述报文;
MS位:主/从位,始发于一个“主”路由器是,该位设置为1;
如果主路由器发送完描述它自己的链路状态数据库所必要的所有数据库描述报文,并且收到“从路由器”一个M位置为0的数据库描述报文,这时主路由器就认为数据库的同步过程完成了;
从路由器总是最先得知同步过程完成了;
Debug ip ospf adj
 
6.泛洪
每个节点都必须拥有一个关于这个拓扑结构的相同的拓扑图,这个拓扑图就是拓扑数据库;也叫链路状态数据库。这个数据库由路由器可以接收到的所有LSA组成;
泛洪过程将会使用到两种OSPF报文:更新、确认类型4、类型5;
(1)       可靠的泛洪:确认
(2)       可靠的泛洪:序列号、校验和、老化时间
Show ip ospf database
 
 
9.1.2 区域
对于和区域相关的通信量定义了下面3种通信量的类型:
         域内通信量(Intra-Area Traffic)
         域间通信量(Inter-Area Traffic)
         外部通信量(External Traffic)--同另一个自主系统内
1.路由器的类型
内部路由器
ABR:区域边界路由器
BR:骨干路由器
ASBR:自主系统边界路由器
2.分段区域
 
3.虚链路
是指一条通过一个非骨干区域连接到骨干区域的链路。
9.1.3 链路状态数据库
Show ip ospf database:所显示的仅仅是这些LSA的头部信息;
链路状态的重刷新机制Link State Refresh是用来确保每条LSA通告的活动状态的,还有个额外的好处是替换可能已经被破坏的LSA通告;
每隔30min,每台路由器将重刷新它始发的所有LSA通告,而不管这些LSA通告实际的老化时间,如果一个链路状态数据库很大,那么每隔30min,网络上就会产生一个区域通信量和CPU利用率的高峰;
Show ip ospf database database-summary
LSA组步调:
1.LSA的类型:
Router LSA:
1.Show ip ospf database router 192.168.30.10
2.Show ip ospf database network 192.168.17.18
3.Show ip ospf database summary 172.16.121.0
4.Show ip ospf database asbr-summary
5.Show ip ospf database external 10.83.10.0
6.组成员LSA是使用在OSPF协议的一个增强版本—组播OSPF协议(MOSPF协议)中的
7.非纯末梢区域(not-so-stubby area),始发于ASBR
         Show ip ospf database nssa-external
8.9.10.11.本书编写时还未实现;
 
2.末梢(stub)区域
末梢区域是一个不允许AS外部LSA通告(类型5)在其内部进行泛洪的区域;
在末梢区域中也有4个限制条件:
所有末梢区域内的路由器都会在它们的Hello报文中设置一个标志—就是E-bit位,并将它设置为0;
(1)       完全末梢区域(totally stubby area)
  使用缺省路由到达OSPF自主系统外部的目的地址;阻塞所有汇总LSA(除了缺省的那条类型3)
(2)       非纯末梢区域(not-so-stubby area)
带有一些末梢网络的某台RIP路由器必须通过区域2的其中一台路由器和OSPF的网络相连;
如果一台NSSA ABR路由器收到一条P-bit设置为1的类型7的LSA报文,那么它将把这条类型7的LSA转换成为类型5的LSA,并泛洪
 
9.1.4 路由选择表
1.目的类型
Show ip ospf border-routers
 
2.路径类型
         区域内路径
         区域间路径 IA
         类型1的外部路径 E1 :指目的地在OSPF自主系统外部的路径;对于类型1的外部路径来说,这个代价值是这条路由的外部代价加上到达ASBR路由器的路径代价之和;
         类型2的外部路径 E2 : 也指目的地在OSPF自主系统外部的路径;在计算外部路由度量是不再计入到达ASBR路由器的路径代价;
 
 
3.路由选择表的查找
         OSPF路由器检查一个数据包目的地址是的步骤:
         (1)掩码最长匹配
         (2)通过排除次优的路径类型来剪除可选择条目的集合;
                   区域内路径—区域间路径—E1---E2
 
9.1.5认证
Ospf协议在邻居路由器之间的所有报文的交换都具有认证的能力;
9.1.6 按需电路上的OSPF
 
9.1.7 OSPF的报文格式
 
1.报文头部
 
2.Hello报文
 
3.数据库描述报文
数据库描述报文的一个主要目的是描述始发路由器数据库中的一些或者全部LSA信息;
 
4.链路状态请求报文
 
5.链路状态更新报文
 
6.链路状态确认报文
 
9.1.8 OSPF的LSA格式
1.LSA的头部
 
2.路由器LSA(始发于每一台路由器)
 
3.网络LSA(始发于DR)
 
4.网络汇总LSA和ASBR汇总LSA
 
5.自主系统外部LSA(始发于ASBR路由器)
 
6.NSSA外部LSA(始发于NSSA区域内的ASBR路由器)
 
9.1.9 可选项字段
可选项字段是出现在每一个Hello报文、数据库描述报文和每一个LSA中的。可选字段允许路由器和其他路由器进行一些可选性能的通信。
 
9.2配置OSPF
9.2.1 案例1:一个基本的OSPF配置
9.2.2 案例2:使用loopback接口设置路由器的ID
9.2.3 案例3:域名服务查询
9.2.4 案例4:OSPF和辅助地址
9.2.5 案例5:末梢区域
9.2.6 案例6:完全末梢区域
9.2.7 案例7:NSSA区域
9.2.8 案例8:地址汇总
9.2.9 案例9:认证
9.2.10 案例10:虚链路
9.2.11 案例11:运行在NBMA网络上的OSPF
9.2.12 案例12:运行在按需电路上的OSPF
 
 
9.3 OSPF故障排除
9.3.1 案例13:孤立的区域
9.3.2 案例14:路由汇总配置错误
 
9.4展望
 
9.5总结表:第9章命令总结
 
 
 
 
 
第10章 集成IS-IS协议
IS-IS的意思是表示中间系统到中间系统,并且是为ISO无连接网络协议CLNP(Connectionless Network Protocol)设计的路由选择协议。
由ISO10589定义个解释的;由DEC公司发展而来;
 
 
10.1 集成IS-IS协议的操作
子网连接点(Subnetwork Point of Attachment,SNPA)
协议数据单元(Protocol Data Unit,PDU)
执行与OSPF协议中的LSA等价功能的数据单元称为链路状态PDU(LSP)
10.1.1 IS-IS区域
OSPF协议的区域边界是通过路由器来划分的;
ISIS的区域边界是在链路上;
由L2路由器(包括L1/L2路由器)和它们之间的互连链路一起构成IS-IS的骨干;
 
10.1.2网络实体标题
即使在一个纯IP环境中,一台IS-IS路由器也必须有一个ISO地址。这个ISO地址是一个网络地址,称为网络实体标题(NET);
 
10.1.3 IS-IS的功能结构
1.依赖于子网的功能
2.独立于子网的功能
10.1.4 IS-IS 的PDU格式
9种PDU类型:
1.CLV字段
2.IS-IS Hello PDU报文
3.IS-IS协议链路状态PDU报文格式
4.IS-IS协议序列号PDU报文
10.2 配置集成IS-IS协议
10.2.1案例1:一个基本的集成IS-IS配置
 
10.2.2案例2:更改路由器的类型
 
10.2.3案例3:区域的迁移
 
10.2.4案例4:路由汇总
 
10.2.5案例5:认证
 
 
 
 
 
10.3 集成IS-IS协议的故障排除
10.3.1 IS-IS邻接关系的故障排除
 
10.3.2 IS-IS链路状态数据库的故障排除
 
10.3.3 案例6:运行于NBMA网络上的集成IS-IS
 
 
第三部分 路由控制和互操作性
第11章 路由重新分配
 
第12章 缺省路由和按需路由选择
 
第13章 路由过滤
 
第14章 路由图
 
第四部分 附录
 
第8章 OSPFv2
开放最短路径优先(open shortest path first,OSPF)
Rfc2328 V2
特性:区域  无类别  超网  任意度量值 多路径等价负载均衡  组播  认证  路由标记
8.1 基本原理
1.hello
2.邻接关系
3.邻居之间发送链路状态通告(link state advertisement ,LSA)
4.LSA泛洪到整个区域,所有路由器会形成同样的链路状态数据库;
5.每路由器以自身为根,用SPF算法来计算一个无环路的拓扑图;
6.每路由器从SPF算法树(无环路的拓扑图)中构造出自己的路由表;
7.网络稳定,每隔30min重传一次LSA,邻居之间交换的hello数据包称为keepalive;
 
 
 
8.1.1 邻居和邻接关系
Show ip ospf neighbor
Router-id 手工配置 router ID
Ip ospf hello-interval
Ip ospf dead-interval
Ip ospf priority
Show ip ospf interface Ethernet0
Show ip ospf neighbor 10.7.0.1
Debug ip ospf adj
Show ip ospf database
Show ip ospf database
Show ip ospf database database-summary
Show ip ospf database router 192.168.30.10
Show ip ospf database network 192.168.17.18
Show ip ospf database summary 172.16.121.0
Show ip ospf database asbr-summary
Show ip ospf database external 10.83.10.0
Show ip ospf database nssa-external
8.1.8路由表
Show ip route
Show ip ospf border-routers
8.2 配置OSPF
Show ip ospf 40(process-id)
Show arp
Show ip route
Show ip ospf database database-summary
 
8.2.5 末梢区域
Router ospf 10
Area 1 stub 把区域1配置为末梢区域
   Area 1 default-cost 20 配置一条代价为20的缺省路由
 
8.2.6 完全末梢区域
Router ospf 10
Area 1 stub no-summary 把区域1配置为完全末梢区域
 
8.2.7 NSSA区域
Router ospf 10
Area 192.168.10.0 nssa 把区域192.168.10.0配置为NSSA
Area 192.168.10.0 nssa no-summary 把区域192.168.10.0配置为完全非纯末梢区域
 
Show ip ospf data external
Area 15 nssa translate type 7 suppress-fa 抑制了包括在转换类型5LSA中的转发地址
 
 
 
 
TCP/IP Volume II
第一部分 外部网关协议(EGP)
第1章 外部网关协议
EGP   RFC827(1982)
EGP2 RFC888
            RFC904 EGPv2正式
 
 
 
第2章 BGP4简介
BGP-4出现在1995年的RFC1771中;最重要的区别就是无类的,而早期的版本都是有类的;
无类域间路由(CIDR0(最早在1993年的RFC 15175中提出),BGP-4的出现是为了支持CIDR;
 
2.1 无类域间路由
2.2 谁需要BGP
2.2.1 一个单宿主自治系统
2.2.2 多宿主到一个单一的AS
2.2.3 多宿主到多个自治系统
2.2.4 “负载均衡”中应当注意的一个问题
2.2.5 BGP的危险
2.3 BGP基础知识
2.3.1 BGP消息类型
BGP有四种消息类型:
         Open
         Keepalive
         Update
         Notification
 
2.3.2 BGP有限状态机
6个状态
1.空闲状态
2.连接状态
3.激活状态
4.发送Open消息状态
5.Open消息确认状态
6.已建立状态
 
2.3.3 路径属性
四种:公认必选、公认自选、任选可透明传送、任选非可透明传送
1.ORIGIN属性
2.AS_PATH属性
3.NEXT_HOP属性
4.LOCAL_PREF属性
5.MULTI_EXIT_DISC属性
6.ATOMIC_AGGREGATE和AGGREGATOR属性
7.COMMUNITY属性
8.ORIGINATOR_ID和CLUSTER_LIST属性
 
2.3.4 管理权值
0~65535
权值越高,该路由的优先选择权就越高;
缺省情况下,从对等学习到的所有路由的权值都是0,由本地路由器产生的所有路由的权值都是32768
 
2.3.5 AS_SET
2.3.6 BGP决策过程
2.3.7 路由抑制
2.4 IBGP和IGP的同步
2.5 管理大型BGP对等关系
2.5.1 对等组
2.5.2 团体
2.5.3 路由反射器
2.5.4 联盟
2.6 BGP信息格式
2.6.1 Open消息
2.6.2 Update消息
2.6.3 Keepalive消息
2.6.4 Notification消息
第3章 BGP4的配置以及故障排除
3.1 基本的BGP配置
3.1.1 案例:建立BGP路由器之间的对等
3.1.2 案例:向BGP中注入IGP路由
3.1.3 案例:向IGP注入BGP路由
3.1.4 案例:没有IGP的IBGP
3.1.5 案例:IGP上的IBGP
3.1.6 案例:EBGP多跳
3.1.7 案例:聚合路由
3.1.8 管理BGP连接
3.2 路由策略
3.2.1 重置BGP连接
3.2.2 案例研究:通过NLRI过滤路由
3.2.3 案例研究:通过AS_PATH过滤路由
3.2.4 案例研究:通过路由图过滤路由
3.2.5 案例研究:管理权值
3.2.6 案例研究:管理距离以及后门路由
3.2.7 案例研究:使用LOCAL_PREF属性
3.2.8 案例研究:使用MULTI_EXIT_DISC属性
3.2.9 案例分析:附加AS_PATH
3.2.10 案例分析:路由标记
3.2.11 案例分析:路由抑制
3.3 大型BGP
3.3.1 案例分析:BGP对等组
3.3.2 案例分析:BGP团体
3.3.3 案例分析:专用AS号
3.3.4 案例分析:BGP联盟
3.3.5 案例分析:路由反射器
 
 
第二部分 高级IP路由问题
第4章 网络地址翻译
 
第5章 IP多播路由介绍
 
第6章 IP多播路由的配置和故障排除
 
第7章 大范围IP多播路由
 
第8章 IPv6
 
第9章 路由器管理
 
第三部分 附录