BGP协议的原理及应用
一、BGP特征
① 传输协议:TCP,端口号179
② BGP是外部路由协议,用来在AS之间传递路由信息
③ 是一种增强的路径矢量路由协议
④ 拥有可靠的路由更新机制
⑤ 具备丰富的Metric度量方法
⑥ 无环路协议设计
⑦ 为路由条目附带多种属性信息
⑧ 支持CIDR(无类别域间选路)
⑨ 丰富的路由过滤和路由策略
⑩ 无需周期性更新
⑪ 路由更新时只发增量路由
⑫ 周期性发送KeepAlive报文以保持TCP连通性
二、BGP报文
Open报文
Update报文
Notification报文
Router-refresh
KeepAlive
三、BGP状态机
Idle状态
Connect状态
Active状态
OpenSent状态
OpenConfirm状态
Established状态
四、BGP数据库
IP路由表(IP-RIB) IBGP
BGP路由表(Loc-RIB) EBGP
五、BGP对等体配置:对等体交互原则
①从IBGP对等体获得的BGP路由,BGP设备只传递给它的EBGP对等体
②从EBGP对等体获得的BGP路由,BGP设备只传递给它所有EBGP和IBGP对等体(对等体是IBGP只能传一跳,对等体是EBGP则不限制)
③当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体
④路由更新时,BGP设备只发送更新的BGP路由
⑤所有对等体发送的路由,BGP设备都会接收
⑥所有EBGP对等体在传递过程中下一跳改变
⑦所有IBGP对等体在传递过程中下一跳不变
⑧默认EBGP传递时,TTL值为1
⑨默认IBGP传递时,TTL值为255
六、更新源建立邻居关系
1、BGP直连网段建立邻居
2、BGP环回口建立邻居
①EBGP区域命令
Peer 3.3.3.3 as-number 100 指向对端BGP
Peer 3.3.3.3 connect-interface loop back 0 建立邻居接口
Peer 3.3.3.3 ebgp-max-hop 255 修改多跳,默认1跳
设置静态路由下一跳
②IBGP区域命令
Peer 1.1.1.1 as-number 100 指向对端BGP
Peer 1.1.1.1 connect-interface loop back 0 建立邻居接口
Peer 1.1.1.1 next-hop-local 下一跳指向自己,此命令只在AS边缘路由器设置
BGP实现全网互通实验,如下图
实验目的:实现BGP全网互通
实验步骤:
Step1:必打命令
R10:
<Huawei>undo terminal monitor
<Huawei>system-view
[Huawei]sysname R1
[R1]user-interface console 0
[R1-ui-console0]idle-timeout 0 0
[R1-ui-console0]quit
R11、R12、R13、R14同理
Step2:配置BGP,以及接口下IP
R10:
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 45.1.1.1 24
[R1-GigabitEthernet0/0/1]undo shut
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[R1-GigabitEthernet0/0/1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 14.1.1.1 24
[R1-GigabitEthernet0/0/0]undo shut
[R1-GigabitEthernet0/0/0]int loop 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]quit
R11:
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 14.1.1.2 24
[R2-GigabitEthernet0/0/0]undo shut
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 12.1.1.2 24
[R2-GigabitEthernet0/0/1]undo shut
[R2-GigabitEthernet0/0/1]int loop 0
[R2-LoopBack0]ip add 2.2.2.2 32
[R2-LoopBack0]quit
R12:
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 12.1.1.3 24
[R3-GigabitEthernet0/0/0]undo shut
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 23.1.1.3 24
[R3-GigabitEthernet0/0/1]undo shut
[R3-GigabitEthernet0/0/1]int loop 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3-LoopBack0]quit
R13:
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip add 23.1.1.4 24
[R4-GigabitEthernet0/0/0]undo shut
[R4-GigabitEthernet0/0/0]int loop 0
[R4-LoopBack0]ip add 4.4.4.4 32
[R4-LoopBack0]quit
R14:
[R5]int g0/0/0
[R5-GigabitEthernet0/0/0]ip add 45.1.1.5 24
[R5-GigabitEthernet0/0/0]undo shut
[R5-GigabitEthernet0/0/0]int loop 0
[R5-LoopBack0]ip add 5.5.5.5 32
[R5-LoopBack0]quit
进入接口设置好IP后,ping 检查是否互通
Step3:设置R10、R11、R12的ospf协议
R10:
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 14.1.1.0 0.0.0.255
R11:
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 14.1.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
R12:
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
输入命令:display ospf peer 检查ospf邻居
Step4:设置BGP邻居
R14:
[R5]bgp 300
[R5-bgp]router-id 5.5.5.5
[R5-bgp]peer 1.1.1.1 as-number 100——设置对等体AS号
[R5-bgp]peer 1.1.1.1 connect-interface loop 0——对等体对等体更新源设为loop 0
[R5-bgp]peer 1.1.1.1 ebgp-max-hop 255——对等体跳数设为255
[R5-bgp]quit
[R5]ip route-static 1.1.1.1 32 45.1.1.1——设置静态路由确保R14与R10互通
R10:
[R1]ip route-static 5.5.5.5 32 45.1.1.5——设置静态路由确保R14与R10互通
[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 5.5.5.5 as-number 300——设置对等体AS号
[R1-bgp]peer 5.5.5.5 connect-interface LoopBack 0——对等体对等体更新源设为loop 0
[R1-bgp]peer 5.5.5.5 ebgp-max-hop 255——对等体跳数设为255
[R1-bgp]peer 2.2.2.2 as-number 100—— 设置对等体AS号
[R1-bgp]peer 2.2.2.2 connect-interface LoopBack 0——对等体对等体更新源设为loop 0
[R1-bgp]peer 2.2.2.2 next-hop-local ——设置对等体可达
[R1-bgp]peer 3.3.3.3 as-number 100——设置对等体AS号
[R1-bgp]peer 3.3.3.3 connect-interface LoopBack 0——对等体对等体更新源设为loop 0
[R1-bgp]peer 3.3.3.3 next-hop-local ——设置对等体可达
R11:
[R2]bgp 100
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 1.1.1.1 as-number 100 ——设置对等体AS号
[R2-bgp]peer 1.1.1.1 connect-interface LoopBack 0——对等体对等体更新源设为loop 0
[R2-bgp]peer 3.3.3.3 as-number 100——设置对等体AS号
[R2-bgp]peer 3.3.3.3 connect-interface LoopBack 0——对等体对等体更新源设为loop 0
R12:
[R3]bgp 100
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 1.1.1.1 as-number 100 ——设置对等体AS号
[R3-bgp]peer 1.1.1.1 connect-interface LoopBack 0——对等体对等体更新源设为loop 0
[R3-bgp]peer 1.1.1.1 next-hop-local ——设置对等体可达
[R3-bgp]peer 2.2.2.2 as-number 100——设置对等体AS号
[R3-bgp]peer 2.2.2.2 connect-interface LoopBack 0——对等体对等体更新源设为loop 0
[R3-bgp]peer 2.2.2.2 next-hop-local ——设置对等体可达
[R3-bgp]peer 4.4.4.4 as-number 200——设置对等体AS号
[R3-bgp]peer 4.4.4.4 connect-interface LoopBack 0——对等体对等体更新源设为loop 0
[R3-bgp]peer 4.4.4.4 ebgp-max-hop 255——对等体跳数设为255
[R3-bgp]quit
[R3]ip route-static 4.4.4.4 32 23.1.1.4——设置静态路由确保R12与R13互通
R13:
[R4]ip route-static 3.3.3.3 32 23.1.1.3设置静态路由确保R12与R13互通
[R4]bgp 200
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 3.3.3.3 as-number 100 ——设置对等体AS号
[R4-bgp]peer 3.3.3.3 connect-interface LoopBack 0—对等体对等体更新源设为loop 0
[R4-bgp]peer 3.3.3.3 ebgp-max-hop 255——对等体跳数设为255
输入命令:display bgp peer 检查bgp邻居
Step5:宣告回路和网段
R14:
[R5]bgp 300
[R5-bgp]network 5.5.5.5 32
[R5-bgp]network 45.1.1.0 24
R10:
[R1]bgp 100
[R1-bgp]network 45.1.1.0 24
[R1-bgp]network 5.5.5.5 32
[R1-bgp]network 14.1.1.0 24
[R1-bgp]network 1.1.1.1 32
R11:
[R2]bgp 100
[R2-bgp]network 12.1.1.0 24
[R2-bgp]network 14.1.1.0 24
[R2-bgp]network 2.2.2.2 32
R12:
[R3]bgp 100
[R3-bgp]network 3.3.3.3 32
[R3-bgp]network 12.1.1.0 24
R13:
[R4]bgp 200
[R4-bgp]network 3.3.3.3 32
每个路由器输入:display bgp routing-table 查看BGP 路由表,如优先级低的重新宣告