如图进行配置
需注意R2的左边接口,R4的右边接口不能宣告在OSPF里
要求使用32网段的环回接口作为BGP建邻的接口;
但由于R1和R2、R4和R5都互相没有到达对方环回的路由,所以在建邻中无法指定需要的环回用于BGP建邻;
需要在相关路由器上手写关于对方环回的静态路由;
此处列举R1、R2的配置
[r1]ip route-static 1.1.0.2 32 12.1.1.2
[r2]ip route-static 1.1.0.1 32 12.1.1.1
开始建邻,此处列举R2的配置
[r2]bgp 2
****启动BGP协议,启动时需要键入AS号;没有多进程概念
[r2-bgp]router-id 2.2.2.2
****建议配置RID;若不配置将自动生成—规则同OSPF相同
[r2-bgp]peer 1.1.0.1 as-number 1
****对端环回接口ip地址,及对端所在AS号
[r2-bgp]peer 1.1.0.1 connect-interface LoopBack 0
****一旦使用环回接口建立BGP的邻居关系;必须将源地址也修改为环回接口
此时配置完,R1和R2、R4和R5的BGP状态机应该是Idle,建邻未成功;
因为默认IBGP邻居间数据包的TTL值为255,EBGP邻居间TTL为1;
故一旦使用环回建立ebgp邻居关系,必须修改TTL值,否则无法建立;
还需要配置
[r2-bgp]peer 1.1.0.1 ebgp-max-hop 2
再查看BGP邻居表,状态机为Established,建邻成功
[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 : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
1.1.0.2 4 2 4 5 0 00:02:15 Established 0
此处列举R3的配置
[r3]bgp 2
[r3-bgp]router-id 3.3.3.3
[r3-bgp]peer 1.1.0.2 as-number 1
[r3-bgp]peer 1.1.0.2 connect-interface LoopBack 0
****与R2建邻
[r3-bgp]peer 1.1.0.4 as-number 1
[r3-bgp]peer 1.1.0.4 connect-interface LoopBack 0
****与R3建邻
查看BGP邻居表
[r3-bgp]dis bgp peer
BGP local router ID : 3.3.3.3
Local AS number : 2
Total number of peers : 2 Peers in established state : 2
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
1.1.0.2 4 2 60 58 0 00:55:07 Established 2
1.1.0.4 4 2 59 57 0 00:53:56 Established 2
在R1上将1.1.1.1/24 环回在BGP进行宣告
[r1-bgp]network 1.1.1.0 255.255.255.0
在EBGP中该路由会传递给R1的邻居R2;
在IBGP中该路由由R2传递给R3时,R3的BGP表中关于这条路由的条目并不优;
因为基于AS-BY-AS规则,条目在一个AS内部传递时将不修改条目属性;导致通过IBGP邻居学习到的BGP路由可能出现下一跳不可达,导致条目不优,不加进路由表;
该条目并不会传递给R4,因为IBGP中存在水平分割,本地从一个IBGP邻居处学习到的路由条目,不得传递给本地的其他IBGP邻居;
此时R3的BGP路由表如下
[r3-bgp]dis bgp routing-table
BGP Local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
i 1.1.1.0/24 1.1.0.2 0 100 0 1i
条目优秀的条件:1、同步问题(默认不关注) 2、下一跳可达
解决下一条不可达的问题,将传递的该条目的下一条改为学习该条目的路由器即可;
在R2上进行配置
[r2-bgp]peer 1.1.0.3 next-hop-local
再查看R3的BGP路由表,此刻该条目变为优秀,可加表
[r3-bgp]dis bgp routing-table
BGP Local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 1.1.1.0/24 1.1.0.2 0 100 0 1i
还需解决R4由于IBGP水平分割无法学习到该条目的问题,需要将R2与R4建邻;
再将R4学习到的路由条目下一跳指向R2;
[r2-bgp]peer 1.1.0.4 next-hop-local
此时查看R4的BGP路由表,学习到,并加表
[r4-bgp]dis bgp ro
BGP Local router ID is 4.4.4.4
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 1.1.1.0/24 1.1.0.2 0 100 0 1i
此时,R4会将该路由条目传递给R5并加表;
因为当路由条目传递给本地的EBGP邻居时,属性将自动发生变化,包括下一跳地址;
查看R5的BGP路由表
[r5-bgp]dis bgp routing-table
BGP Local router ID is 5.5.5.5
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 1.1.0.4 0 2 1i
同理在R5上宣告5.5.5.5/24时,需要修改R4关于R3、R2传递路由条目的下一跳
[r4-bgp]peer 1.1.0.2 next-hop-local
[r4-bgp]peer 1.1.0.3 next-hop-local
查看R1的BGP路由表
[r1-bgp]dis bgp ro
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 0.0.0.0 0 0 i
*> 5.5.5.0/24 1.1.0.2 0 2 3i
再依次宣告AS 1 内的各个路由器上的24网段环回,由于各个路由之间下一条的设置已配置合理,且他们相互都是邻居,所以整个网络环境中都能学习到24网段的环回
宣告配置
[r2-bgp]network 2.2.2.2 24
[r3-bgp]network 3.3.3.3 24
[r4-bgp]network 4.4.4.4 24
查看R3的BGP路由表,已学习完整
[r3-bgp]dis bgp ro
BGP Local router ID is 3.3.3.3
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 5
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 1.1.1.0/24 1.1.0.2 0 100 0 1i
*>i 2.2.2.0/24 1.1.0.2 0 100 0 i
*> 3.3.3.0/24 0.0.0.0 0 0 i
*>i 4.4.4.0/24 1.1.0.4 0 100 0 i
*>i 5.5.5.0/24 1.1.0.4 0 100 0 3i
1.1.1.1 ping 2.2.2.2
1.1.1.1 ping 3.3.3.3
1.1.1.1 ping 4.4.4.4
1.1.1.1 ping 5.5.5.5