常见的IGP内部网关协议:RIP(端口号UDP520)、OSPF(IP协议89)
常见的EGP外部网关协议:BGP(TCP179)
OSPF
3张表、5个包、6个状态
邻居表、LSDB、路由表
init、2-way、exchange-start、exchang、loading、full
1、分类
ospfv2是针对于ipv4的
ospfv3是针对于ipv6的
2、概念
Router-ID是路由器的标识,开启ospf的时候需要指定router-id,router-id格式是IP地址的格式,只是一个名字,并不代表就有这个IP地址
区域
OSPF Area用于标识OSPF的区域,区域是从逻辑上将设备划分为不同的组,每个组用区域号Area ID来标识。
开销
开销cost是路由的度量值,由接口带宽决定,cost=10^8/带宽,相当于1Gbps/带宽。cost越小越优。
3、OSPF工作原理
五个包
报文名称 | 报文功能 |
hello包 | 用于发现和维护邻居关系,定期发送 |
Database Description(DBD包) | 描述本地LSDB链路状态数据库的摘要信息,用于两台设备进行数据库同步 LSDB即所有LSA链路状态信息的集合 先发送LSDB摘要信息获取自己缺少的路由信息,再通过LSA去发送对方没有的路由信息 |
Link State Request (LSR) | 用于向对方请求所需要的LSA,设备只有在OSPF邻居双方交换DD报文之后才会向对方发出LSR报文 |
Link State Update (LSU) | 用于向对方发送其所需要的LSA |
Link State ACK | 用来对收到的LSA进行确认 |
先发送hello包建立邻居关系(形成邻居表);发送DBD包同步LSDB链路状态数据库信息;发送LSR链路状态请求包向对方请求自己没有的LAS;发送LSU链路状态更新信息向对方发送所需要的LAS(LSDB);最后发送LAS确认信息,确认已收到对方发送的LSA。(路由表)
邻居关系建立过程
R1、R2
首先R1发送hello包,R2收到之后把R1 加入到自己的邻居表中状态标记为init;R2发送hello包告诉R1 自己已经知道R1 是自己的邻居,此时R1 将R2 加入到邻居表中状态为2-way;R1 发送hello包告诉R2自己已经知道R2是自己的邻居,此时R2把状态改为2-way。
邻居关系建立完成之后,建立邻接关系
exchang-start状态选主从;exchange状态发送带有LSA摘要信息的DBD包;loading状态发送LSR、LSU、LSACK;数据库同步完毕之后达到full状态
七个状态
DR和BDR,只需要找DR进行LSDB进行同步
选举:优先级;优先级一样,就比较router-id ,越大越优先。
选举结束后:当网络中加入一个更高优先级的路由器,处于稳定性考虑,此时它 只能成为非指定路由器;当DR失效时,BDR立刻成为新的DR,非指定路由器竞争成为新的BDR。
4、邻居关系无法建立的原因
- router id一致:每台路由器的router id需要不一致
- area id不一致:同一网段的所有端口应当配置在同一区域
- 网络接口类型不一致:hello和hellodown的时间需要一致
- 路由器掩码不一致
- 同一区域的验证类型不一致、验证码不一致
5、单区域存在的问题
LSDB庞大,SPF计算开销大;
LSA洪泛范围大,拓扑变化影响范围大;
路由表庞大,不能汇总。
所以就有了OSPF多区域
OSPF多区域
优点:支持大规模的组网;多区域的划分减少了LAS洪泛的范围,优化网络;在边界路由器做了路由汇总,减小路由表规模。减轻路由器的计算压力。
1、基本结构
路由器类型
IR(Internet Router):区域内路由器
ABR(Area Border Router):区域边界路由器
BR(Backbone Router):骨干路由器Area0区域的边界路由器
ASBR(AS Boundary Router):自治系统边界路由器,与其他路由协议(RIP)相连的路由器成为ASBR。
注意:其他Area区域必须要和Area0直接相连
区域类型
骨干区域:area0,骨干区域有且只有一个
非骨干区域:非骨干区域之间不能直接相连,需要连接在骨干区域,通过骨干区域去通信
特殊区域:具有某些特殊性质的区域,比如stub末梢区域、NSSA非纯末梢区域
末梢区域:允许学习1、2、3类LSA,但是解决学习4、5、7外部路由,因为末梢区域不想知道AS外边的世界,只想通过缺省路由来让ABR去转发。
完全末梢区域:拒绝所有外部路由只允许1、2类LSA和3类默认路由,其他3、4、5、7都不允许。
非纯末梢区域:在NSSA区域内的ASBR路由器利用7类lsa来通告外部的目的网 络,7类在NSSA区域内泛洪,此时7类lsa会被ABR路由器转换成5类lsa泛洪到骨干区 域(5类不能转换成7类);1、2、3、7都能进入NSSA区域,4、5类不行
完全非纯末梢区域:拒绝所有外部协议和汇总,只允许1、2、7,其他都使用默认路由进行通信。
链路状态通告LSA类型
类型 | 描述 | 用途 |
type1 | 路由器LSA | 区域内LSA,用于描述区域内的链路状态信息 |
type2 | 网络LSA | 区域内的DR发出,用于描述区域内变更信息 |
type3 | 网络汇总LSA | 由ABR发出,用于描述其他区域的链路汇总信息,区域间传递 |
type4 | ASBR汇总LSA | 由ABR发出,用于通告ASBR信息,确定ASBR位置,不会出现在ASBR所属区域内 |
type5 | AS外部LSA | ASBR发出,用于通告外部路由,告诉AS自治系统的路由器通往外部AS的路径,在整个AS中进行洪泛 |
type7 | NSSA非纯末梢外部LSA | NSSA区域内的ASBR发出,用于通告本区域连接的外部路由,和type5相似,但是type7只在NSSA区域内洪泛,ABR传递到其他区域的时候会转换为LSA5 |
555到这了,终于搞懂了一些了-_- |
2、LSDB
每个区域都有自己的LSDB,SPF独立的去计算;
LSA洪泛也是在自己的区域内进行。
3、特殊区域——缺省路由发布总结
边界网关协议BGP
外部网关协议
自治系统之间的通信
1、在配置BGP的时候至少要选择一个路由器作为BGP发言人,一般为边界路由器;
2、不同自治系统的BGP发言人要交换路由信息,首先必须先建立TCP连接,端口号为179
在TCP连接上交换BGP报文建立BGP会话
利用BGP会话交换路由信息(增加路由、撤销路由、差错信息等)
两个BGP发言人互称为邻站或者对等站
3、BGP发言人除了运行BGP之外,还必须运行自己所在的自治系统的内部网关协议RIP或者OSPF
4、BGP发言人交换网络可达性信息
5、BGP发言人根据获取到的路由信息,选择一条较好的路由,构造出一个树形结构,不存在环路的自治系统联通圈。
6、适用于多级网络
7、4种报文
open打开报文:用来与相邻的另一个BGP发言人建立关系,是通信初始化
update更新报文:用来更新某条路由信息,以及列出要撤销的路由
keep alive保活报文:用来周期性的证实邻站的连通性
notification通知报文:用来发送检测到的差错
BGP不咋会-_-
RIP(router information protocol路由信息协议)
1、概念
RIP是一种距离矢量路由协议,使用基于跳数的度量值;
最大跳数为16,适用于小型网络;
封装在UDP,端口号为520;
RIP分为RIPv1和RIPv2:RIPv1支持定长子网划分网络,采用广播的形式发送报文,不支持认证;RIPv2传递路由和子网掩码,所以支持变长子网掩码划分网络,采用组播的形式(224.0.0.9),支持明文和MD5认证。
2、防环机制
1、无穷大计数:RIP最多为16跳,大于等于16跳都会视为无效
2、抑制计时器:当接口学到跳数更大的路由会启动抑制计时器,等待路由失效,才会更新此路由
3、水平分割:在这个接口学到的路由不会从这个接口再发送出去
4、路由毒化:链路断开或者路由失效的时候,会向外通告16跳无效路由给其他路由器
5、触发更新:链路断开时,直接触发更新,马上进行路由失效通告,链路恢复也会立即通告
6、毒性逆转:从该接口学到的路由以无效路由通告出去,和水平分割有点像,两者只能使用一种
(链路发生改变,从该接口学到16跳无效路由会以16跳无效路由从该接口发送出去。告诉其他路由器自己已经知道了链路发生变化,在抑制计时器时间内期待此路由更新。)
Cisico配置RIP
1、启动RIP路由协议
R4(config)#router rip
2、宣告指定的直连网络
R4(config-router)#network 1.1.1.0
配置network命令用于激活接口的rip进程,也就是这个接口会去广播rip信息;这个接口所在的网段会被放在更新消息内去宣告。
1.0.0.0/24 is subnetted, 1 subnets
C 1.1.1.0 is directly connected, FastEthernet0/0
R 2.0.0.0/8 [120/1] via 1.1.1.2, 00:00:06, FastEthernet0/0
120是AD管理距离值,1是跳数
小贴士:RIP只支持主类网络,比如network 192.168.1.0这个网络是一个c类地址,则掩码默认为24,而如果是network 172.6.1.0这个是个B类地址,所以我们在show ip router的时候看到的路由掩码其实默认会变成是16位的172.6.0.0。