BGP边界网关路由协议
实验要求如图所示
拓扑设计如上
首先配置ip
[R1]int l0
[R1-LoopBack0]ip add 1.1.1.1 24
[R1-LoopBack0]q
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 12.0.0.1 24
【R2】
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 23.0.0.1/24 up up
GigabitEthernet0/0/1 12.0.0.2/24 up up
GigabitEthernet0/0/2 unassigned down down
LoopBack0 2.2.2.2/24 up up(s)
NULL0 unassigned up up(s)
【R3】
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 34.0.0.1/24 up up
GigabitEthernet0/0/1 23.0.0.2/24 up up
GigabitEthernet0/0/2 unassigned down down
LoopBack0 3.3.3.3/24 up up(s)
NULL0 unassigned up up(s)
【R4】
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 45.0.0.1/24 up up
GigabitEthernet0/0/1 34.0.0.2/24 up up
GigabitEthernet0/0/2 54.0.0.1/24 up up
LoopBack0 4.4.4.4/24 up up(s)
NULL0 unassigned up up(s)
【R5】
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 unassigned down down
GigabitEthernet0/0/1 45.0.0.2/24 up up
GigabitEthernet0/0/2 54.0.0.2/24 up up
LoopBack0 5.5.5.5/24 up up(s)
LoopBack1 99.9.9.9/24 up up(s)
NULL0 unassigned up up(s)
然后配置igp 内部路由 我们的as2采用ospf协议
[R2-GigabitEthernet0/0/1]ospf
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network
[R2-ospf-1-area-0.0.0.0]network 2.2.2.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 3.3.3.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 34.0.0.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 4.4.4.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 34.0.0.0 0.0.0.255
as2内部成功互通
开始配置bgp
R1与R2之间建邻
[R1]bgp 1
[R1]bgp 2
Error: BGP is already running. The AS is 1.
#注:bgp后跟的是as号不光具有本地意义
[R1-bgp]router-id 1.1.1.1
建立邻居
as1与as2之间是一条链路 使用接口ip建立邻居即可
[R1-bgp]peer 12.0.0.2 as-number 2
[R1-bgp]dis bgp peer
BGP local router ID : 1.1.1.1
Local AS number : 1
Total number of peers : 1 Peers in established state : 0
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
12.0.0.2 4 2 0 0 0 00:00:26 Idle 0
[R2-ospf-1]bgp 2
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 12.0.0.1 as-number 1
BGP local router ID : 2.2.2.2
Local AS number : 2
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
12.0.0.1 4 1 2 2 0 00:00:32 Established 0
可以看到在两边都宣告后 邻居关系成功建立
R2与R3
R2与R3之间建议采用环回地址进行建邻 理由是 在ibgp内部一个路由器到另一个路由器往往有多条路径 为了不浪费 采用环回地址建邻
但由于报文从路由器哪个口发出 ip地址就是哪个地址 我们需要让源地址变成环回地址
[R2-bgp]peer 3.3.3.3 as-number 2
[R2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[R3-ospf-1]bgp 2
[R3-bgp]peer 2.2.2.2 as-number 2
[R3-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[R3-bgp]dis bgp peer
BGP local router ID : 3.3.3.3
Local AS number : 2
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
2.2.2.2 4 2 2 2 0 00:00:01 Established 0
建邻成功
R3与R4
[R3-bgp]peer 4.4.4.4 as-number 2
[R3-bgp]peer 4.4.4.4 connect-interface LoopBack 0
[R4-ospf-1-area-0.0.0.0]bgp 2
[R4-bgp]peer 3.3.3.3 as-number 2
[R4-bgp]peer 3.3.3.3 connect-interface LoopBack 0
R4-bgp]dis bgp peer
BGP local router ID : 4.4.4.4
Local AS number : 2
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
3.3.3.3 4 2 2 2 0 00:00:01 Established 0
建邻成功
R4与R5
四与五之间存在多条路径 采用环回地址建邻 但是由于 4环回没有到5环回的路由 我们需要手写静态路由
[R5]ip route-static 4.4.4.0 24 54.0.0.1
[R5]ip route-static 4.4.4.0 24 45.0.0.1
[R4]ip route-static 5.5.5.0 24 45.0.0.2
[R4]ip route-static 5.5.5.0 24 54.0.0.2
现在可以开始建邻了
[R4-bgp]peer 5.5.5.5 as-number 3
[R4-bgp]peer 5.5.5.5 connect-interface LoopBack 0
[R5-bgp]peer 4.4.4.4 as-number 2
[R5-bgp]peer 4.4.4.4 connect-interface LoopBack 0
并且由于ebgp之间的ttl被设为1 导致报文无法到达目的地 需要手动修改
[R4-bgp]peer 5.5.5.5 ebgp-max-hop 2
[R5-bgp]peer 4.4.4.4 ebgp-max-hop 2
[R4-bgp]dis bgp peer
BGP local router ID : 4.4.4.4
Local AS number : 2
Total number of peers : 2 Peers in established state : 2
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
3.3.3.3 4 2 19 19 0 00:17:52 Established 0
5.5.5.5 4 3 2 3 0 00:00:17 Established 0
建邻成功
最后我们开始宣告 只需要宣告 用户网段即可
由于5.5.5.5网段用于建邻 且有静态路由指向5.5.5.5 去5.5.5.5是为了建立bgp 如果需要用bgp传递5.5.5.5 这样会出现悖论 导致5.5.5.5 24这一网段无法传输
在一上查看 发现路由器的路径都为优选但是没有到4.4.4.4的路由 这是由于2号路由器上没有R4的路由 原因是由于在ibgp内部 存在水平分割机制 导致
一个ibgp内部学到的路由不能传给本地其他ibgp
Total Number of Routes: 3
Network NextHop MED LocPrf PrefVal Path/Ogn*> 1.1.1.0/24 0.0.0.0 0 0 i
*> 2.2.2.0/24 12.0.0.2 0 0 2i
*> 3.3.3.0/24 12.0.0.2 0 2i
为了解决这一问题 我们需要让2和4建立邻居关系[R4-bgp]peer 2.2.2.2 as-number 2
[R4-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[R2-bgp]peer 4.4.4.4 as-number 2
[R2-bgp]peer 4.4.4.4 connect-interface LoopBack 0ibgp间ttl为255 不需要修改最大跳数
[R2-bgp]dis bgp peer
BGP local router ID : 2.2.2.2
Local AS number : 2
Total number of peers : 3 Peers in established state : 3Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
3.3.3.3 4 2 35 39 0 00:32:39 Established 1
4.4.4.4 4 2 4 4 0 00:00:20 Established 2
12.0.0.1 4 1 45 47 0 00:42:32 Established 1
建立邻居成功 再次查看一的路由表
发现99.9.9.9的路由并没有传进来 这是由于 3将该路由学到后 其属性不发生变化
下一跳地址是5.5.5.5 需要让4把这一条传给3的时候 把下一跳改成自己 同理 R2也是
[R4-bgp]peer 3.3.3.3 next-hop-local
[R4-bgp]peer 2.2.2.2 next-hop-local
![]()
可以看到顺利解决 同理 R5上没有1.1.1.1的路由也是因为 R4认为1.1.1.1的路由不佳
理由是当2号路由或者三号路由把这一路由传递过来的时候没有把下一跳改成自己所导致的
[R2-bgp]peer 4.4.4.4 next-hop-local
这样之后 R4上的路由将会变成最优 可以进行传递
[R2-bgp]peer 3.3.3.3 next-hop-local
三同理
至此 已经配置完成 测试是否主机路由可以互通:
满足题目要求