Ospf和Bgp协议
OSPF 开放式最短路径优先
概述
OSPF 适用于大规模的网络
-公有标准
-分层设计 : 骨干区域 和非骨干区域
进程号范围:1-65535
区域号范围:0-4294967295
-网络层 , 协议号 89
-内部路由优先级 10 外部路由优先级 150
-224.0.0.5 组播地址 ,代表的是所有运行OSPF的路由器
-224.0.0.6 代表的是 DR、BDR 路由器
-ospf 版本2 (IPV4 ) ; OSPF 版本3 (IPv6)
动态路由协议的类型
内部网关协议:在同一公司内部运行的路由协议,如 RIP、ISIS、OSPF
外部网关协议:在不同公司之间运行的路由协议,如 BGP
OSPF工作原理
建立OSPF邻居表、同步OSPF数据库、计算OSPF路由表
-建立邻居表: hello 报文 ;
状态机制: down init 2-way
-同步数据库: dd lsr LSU LSACK 报文
状态机制: exstart exchange loading full
DOWN: 邻居之间彼此不认识
init: 收到 的邻居信息里 ,没有自己的信息
2-way: 邻居之间彼此都知道对方的名字了 , 可以通信了
exstart: 确定 主从关系:通过对比第一个DD报文里的OSPF路由器的标识,标识大作为主动路由器
exchange: 通过 DD 报文 ,传递 数据库的摘要信息
loading: 加载 、更新状态
full: 完美状态 : 数据库完全同步状态
-计算路由表:以自己为中心,通过SPF 算法 计算到达目标网段的最优路由-放到IP路由表
其他通过OSPF 学习的路由放在 OSPF 路由表
Ospf报文类型
OSPF 单区域配置 :
1、启动OSPF 进程
2、进入区域 0
3、宣告参与OSPF 计算的接口网段
配置命令
设备上配置OSPF协议:[R1]display ospf brief //查看OSPF信息
查看邻居的信息:[R1]display ospf peer //查看邻居的RID、状态full
查看邻居的简要信息 :[R1]dis ospf peer brief
查看与对端邻居相连的接口信息:[R1]dis ospf interface g0/0/1
OSPF影响建立邻居关系的因素
1, IP地址不在一网段,不能互通
2, 使用策略进行访问控制
抓包分析:影响邻居关系建立的因素
1、从OSPF 头部分析 :
1) rid 路由器标识 : 两端RID 不相同
2) 区域 必须相同
3) 认证类型、密码登 必须相同
hello报文—影响邻居关系建立的因素(默认在以太网广播网络环境下)
4) 网络掩码 要相同
5) hello 时间 要相同
6) dead 时间 要相同
7) 特殊标记位 要相同
8) 路由优先级 不能同时为0
2、两端网络类型不同也会影响
四种网络类型:
广播型网络 : BMA
点到点网络 : P2P
非广播多路访问网络 : NBMA
点到多点网络: P2MP
OSPF 多区域配置
本质和单区域配置差不多
骨干路由器
非骨干路由器
ABR 区域边界路由器
ASBR 自治系统边界路由器
特殊区域
LSA链路状态通告信息
1类:所有ospf路由器,用来单区域用来通告路由器接口信息
2类:DR产生,用来选出DR和BDR
3类:ABR产生,用来跨区域传播网段ospf信息
4类:ABR(ASBR所在网段的ABR产生),用来让其他网段知道ASBR的位置
5.类:ASBR产生,用来引入外部路由
7类:由5类变成的,用来通过特殊区域
末梢区域STUB :
从路由角度 ,存在其他区域的路由,但是不存在外部的路由 , 减少了外部路由的影响,但是ABR 上会产生一条默认路由,实现可以访问外网
从数据库角度,不接受 5类LSA ,同时不接受4类LSA ,只接受 1/2/3 LSA
完全STUB 区域:
不接收外部路由 ,同时也不接收其他区域的路由 , 但是ABR 上会产生一条去往其他区域的默认路由
不接收 4/5类 LSA , 同时也不接收其他区域的3类LSA ,但是会接受 1/2 类 以及 ABR 产生的一条默认的3类LSA
NSSA 区域
不接受 其他区域ASBR 产生的外部路由 ,接收自己区域ASBR产生的外部路由
不接收其他区域ASBR 产生的 5类LSA 和ABR 产生的4类LSA ,接收 1/2/3 和 自己区域ASBR产生的7类LSA。 ASBR 产生一条去往外部的网段的7类LSA 同时 ABR 上会生成一条去往其他区域的默认7类LSA ,实现7转5 的 操作 .
完全NSSA 区域
不接受 其他区域ASBR 产生的外部路由 和 ABR 产生的其他区域的路由,接收自己区域ASBR产生的外部路由
不接收其他区域ASBR 产生的 5类LSA 和ABR 产生的4类LSA 、ABR产生3类LSA ,接收 1/2和 自己区域ASBR产生的7类LSA。ASBR 产生一条去往外部的网段的7类LSA 同时 ABR 上会生成一条去往其他区域的默认7类LSA ,实现7转5 的 操作 . ABR 上会产生一条3类默认LSA 。
公司之间动态路由协议——BGP
BGP工作原理:
建立邻居关系
同步数据库
计算路由表 (不自己计算,负责传输)
BGP 邻居发现:先启动的BGP 的设备,向邻居发起TCP链接,本端使用随机端口向目标端口号 179 建立连接
BGP 邻居关系类型:-使用 AS 区分
不同AS之间建立的 邻居关系 -外部的BGP 邻居关系 ,即 EBGP
相同AS 内部建立的邻居关系 -内部的 BGP 邻居关系 ,即 IBGP
BGP 状态机制 :
idle active connect opensent opencomfirm established
BGP邻居关系建立涉及到的报文
open 报文 建立邻居关系
keep alive 报文 保持邻居关系 (60秒)(三倍结束)
update 报文 更新报文
notification 发送错误报告信息
route-refresh 路由重更新报文
BGP 通告路由 原则 :
BGP通告原则之一 : 仅将自己最优的路由发布给邻居
BGP通告原则之二 : 通过EBGP获得的最优路由发布给所有BGP邻居
BGP通告原则之三 : 通过IBGP获得的最优路由不会发布给其他IBGP邻居(AS内部防环—水平分割)
因为BGP 路由通告要遵循通告原则三导致AS内部无法互通,所以全互联解决无法互通的限制—水平分割
BGP通告原则之四: BGP与IGP同步
按照 BGP 邻居关系 传递路由 到 目标邻居设备,当 传递BGP路由给邻居时 ,发现 IGP 和BGP 路由不同步,就不会继续向邻居传递路由,但是由于华为把同步功能关闭了 ,所以即使 IGP和BGP 路由不同步 ,也会传递BGP 路由 ,但是回程数据不能传递。
在同步功能关闭情况下
第一种解决数据传递方案:将IGP和BGP互相引入,但由于BGP路由量比较大 , AS 内部设备性能又低下,容易被BGP路由灌死, 即使能用策略控制,也不建议使用这种方法。
第二种解决方案 : 使BGP 路由完全由 BGP 协议传递 ,也就是AS 内部设备通过 IGP 协议建立TCP 连接, 每个设备都配置BGP ,并且建立BGP 邻居关系 但是 在AS 内部 部署BGP 要遵循通告原则 三 (水平分割 —IBGP )
全互联:邻居数量多,减少邻居关系数量—解决方案
1.联盟
联盟:将大的AS,变成多个小的子AS(私有AS号),这样子AS之间相连的邻居关系就变少了,减少了邻居关系
具体配置
R1
[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 192.168.12.2 as-number 200
[R1-bgp]network 10.10.1.1 32
R2
[R2]bgp 64512 //进入子AS —相当于部落
[R2-bgp]router-id 2.2.2.2 // 配置RID
[R2-bgp]confederation id 200 //声明子AS 所属的 联盟 即 公有AS
[R2-bgp]peer 192.168.12.1 as-number 100 //建立EBGP 邻居关系
[R2-bgp]peer 10.10.3.3 as-number 64512 //在子AS内部建立 IBGP邻居关系
[R2-bgp]peer 10.10.3.3 connect-interface LoopBack 0 //指定与对端建立邻居的本地更新源为逻辑接口
[R2-bgp]peer 10.10.3.3 next-hop-local // 与对端建立邻居的下一跳更改为本地出接口地址
[R2-bgp]peer 10.10.4.4 as-number 64512
[R2-bgp]peer 10.10.4.4 connect-interface LoopBack 0
[R2-bgp]peer 10.10.4.4 next-hop-local
R3
[R3]bgp 64512
[R3-bgp]router-id 3.3.3.3
[R3-bgp]confederation id 200
[R3-bgp]peer 10.10.2.2 as-number 64512
[R3-bgp]peer 10.10.2.2 connect-interface LoopBack 0
[R3-bgp]peer 10.10.4.4 as-number 64512
[R3-bgp]peer 10.10.4.4 connect-interface LoopBack 0
R4
[R4]bgp 64512 //进入子AS —相当于部落
[R4-bgp]router-id 4.4.4.4 // 配置RID
[R4-bgp]confederation id 200 //声明子AS 所属的 联盟 即 公有AS
[R4-bgp]confederation peer-as 64513 // 声明 子AS 之间的 邻居关系
[R4-bgp]peer 192.168.45.5 as-number 64513 // 子AS 之间 使用物理接口建立 内部 的 EBGP 邻居关
[R4-bgp]peer 10.10.2.2 as-number 64512
[R4-bgp]peer 10.10.2.2 connect-interface LoopBack 0
[R4-bgp]peer 10.10.3.3 as-number 64512
[R4-bgp]peer 10.10.3.3 connect-interface LoopBack 0
R5
[R5]bgp 64513 //进入子AS —相当于部落
[R5-bgp]router-id 5.5.5.5 // 配置RID
[R5-bgp]confederation id 200 //声明子AS 所属的 联盟 即 公有AS
[R5-bgp]confederation peer-as 64512 // 声明 子AS 之间的 邻居关系
[R5-bgp]peer 192.168.45.4 as-number 64512 // 子AS 之间 使用物理接口建立 内部 的 EBGP 邻居关
[R5-bgp]peer 10.10.6.6 as-number 64513
[R5-bgp]peer 10.10.6.6 connect-interface LoopBack 0
R6
[R6]bgp 64513
[R6-bgp]router-id 6.6.6.6
[R6-bgp]confederation id 200
[R6-bgp]peer 10.10.5.5 as-number 64513
[R6-bgp]peer 10.10.5.5 connect-interface LoopBack 0
[R6-bgp]peer 10.10.5.5 next-hop-local
[R6-bgp]peer 192.168.67.7 as-number 700
R7
[R7]bgp 700
[R7-bgp]router-id 7.7.7.7
[R7-bgp]peer 192.168.67.6 as-number 200
[R7-bgp]import-route direct // 将 直连路由注入 BGP 路由表
- 路由反射器:
RR路由反射器 客户端 非客户端
路由反射器通俗来说就是不需要配置全互联,选出一个RR在其bgp中指定出客户端就可以实现反射路由
只有非非不反射
具体配置举例
[R2-bgp]undo peer 10.10.4.4 //删除全互联
[R4-bgp]undo peer 10.10.2.2
[R3]bgp 64512
[R3-bgp]peer 10.10.2.2 reflect-client //指定对端设备是自己的反射器的客户端
[R3-bgp]peer 10.10.4.4 reflect-client
BGP 丰富的 属性
BGP 选路规则
BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况:
该路由是到达目的地的唯一路由,直接优选。
对到达同一目的地的多条路由,优选优先级最高的。
对到达同一目的地且具有相同优先级的多条路由,必须用更细的原则去选择一条最优的。
具体:
丢弃下一跳不可达的路由。
优选Preference_Value值最高的路由(私有属性,仅本地有效)。
优选本地优先级(Local_Preference)最高的路由。
优选手动聚合>自动聚合>network>import>从对等体学到的。
优选AS_Path短的路由。
起源类型IGP>EGP>Incomplete。
对于来自同一AS的路由,优选MED值小的。
优选从EBGP学来的路由(EBGP>IBGP)。
优选AS内部IGP的Metric最小的路由。
优选Cluster_List最短的路由。
优选Orginator_ID最小的路由。
优选Router_ID最小的路由器发布的路由。
优选具有较小IP地址的邻居学来的路由。