动态路由;两端设备必须使用相同的动态路由协议(形成路由域)
设备1运行RIP——设备2运行RIP、OSPF——设备3运行OSPF,两个协议之间进行路由学习(路由引入技术)
动态路由更新方式:1.周期更新——LSA;2.触发更新(减少/增加路由条目触发)
LSA:计划老化时间30min(1800S),周期更新(多条LSA)
动态路由协议种类:1.距离矢量(DD算法、矢量叠加);2.链路状态(LS算法,拓扑计算出路由)
距离矢量算法的特点(传递路由信息):1.路由器之间周期性的交换路由表;2.交换的是整张路由表的内容;3.水平分割技术:从一个接口发出去的路由,不允许从这个接口在学习接收。
距离矢量路由协议的缺陷:1.metric的可信度;2.交换路由信息的方式
链路状态路由协议:层次式、分区域、生成拓扑结构、计算路由、传递链路状态信息。
IEIF组织提出SPF算法(RFC2328)
RIP特性:逐跳收敛、传闻路由更新机制,最多有效跳数15跳,以跳数为度量,都存在相对应的缺陷。
LSA——链路状态通告信息:1.将LSA放入数据库;2.发LSA给对应的邻居;3.再计算数据库中的LSA;
RIP的缺陷:
1)收敛慢、故障回复时间长(优化或解决方式:1.收到更新>计算路由>发送更新,改为收到更新>发送更新>计算路由)
2)缺少对全网拓扑的了解(优化或解决方式:路由器基于拓扑信息,独立计算路由)
3)最多有效跳数为15跳(优化或解决方式:不限定跳数)
4)存在选择次优路径的风险(优化或解决方式:将链路带宽作为选路参考值)
OSPF的工作过程:
step1:邻居建立——>step2:同步链路状态数据库——>step3:计算最优路由
Router-ID:自治系统中唯一标识一台运行OSPF的路由器(每台路由器有一个router-id(同区域不可重复),点分十进制类似于IP地址的表现形式)
A.官方来讲:
1)建议手动配置OSPF的router-id;
2)如果没有手动配置,使用路由器环回接口IP地址最大的作为router-id。
3)如果没配环回接口,会使用物理接口IP地址最大的作为router-id。
B.实际来讲:
1)建议手动配置OSPF的router-id;
2)没有手动配置,使用路由器全局router-id作为OSPF的router-id;
3)全局router-id为设备第一个配置了IP并且UP的接口地址。
OSPF的报文:1.hello、2.DD、3.LSR、4.LSU、5.LSACK;
1.Hello报文:用于发现、建立、维系邻居关系;
1)OSPF Header通用头部:
version 2:代表OSPF版本号,版本2用于IPv4,版本3用于IPv6;
message Type:代表当前的OSPF类型:1,2;
packet length:报文长度(包含了通用头部+具体报文)
source ospf router:代表发出该ospf报文的路由器router-id;
area ID:区域ID(区域0为骨干区域、非0为非骨干区域);
checksum:校验报文是否完整;
auth Type:认证类型;
auth Data:认证数据(密码)
2)OSPF hello packet(hello报文):
network mask:网络掩码,发出该报文的接口的网络掩码;
hello interval:hello时间,默认为10S;
options字段:标识发出hello报文的这个接口属于什么区域(E=1,代表普通区域;E=0、N=0,代表为stub区域;E=1、N=1,代表NSSA区域)
router priority:接口的DR优先级;
router dead interval:邻居失效时间(默认4倍hello时间40s)
designated router:DR的接口IP;
Backup designated router:BDR的接口IP;
active neighbor:活跃的邻居router-id。
2.DD报文——链路状态信息摘要报:1.选举主从、2.发摘要信息、3.帮助master设备置位为loading。
1)OSPF Header;
2)OSPF DB Description:
interface MTU:0,发出该报文的接口MTU值(华为默认不检查MTU值,根据需求需要手工开启)
options字段:用于描述该接口是否属于特殊区域;
DB Description:i——如果置位1,代表这个DD报文为初始DD报文,用于选举主从,主从的选举原则为RID大的为主;M——标识后续是否还有其他DD报文;MS——用于判断主从关系(1.master、0)
DD Sequence(DD Seq):DD序列号,用于隐式确认;
3.LSR报文:用于向邻居请求自身缺少的LSA
当路由器收到LSR报文时,会根据报文中LSA三要素,在自身LSDB中查找相关的LSA,并将其封装在LSU报文中回复。
4.LSU报文:用于发送完整的LSA信息
5.LSACK报文:用于确认收到的LSA,使用LSA头部信息,做确认回复。