实验拓扑
实验要求
R1-R5都配置BGP协议,通过BGP联邦属性建立私有AS号打破IBGP协议只传一跳的规则,让R5收到R1所有环回口地址的BGP条目。再做团体属性要求R 2收到R1.上环回C地址的4条BGP条目,R3收到R1.上环回口地址的3条BGP条目,R4收到R1上
环回口地址的2条BGP目, R5收到R1上环回口地址的1条BGP条目。
IP地址表
路由器 | 接口 | IP地址 |
R1 | f0/0 | 10.1.1.1 |
R1 | f1/0 | 10.1.1.2 |
R2 | f0/0 | 10.1.1.1 |
R2 | f0/0 | 20.1.1.1 |
R3 | f1/0 | 30.1.1.2 |
R3 | f0/0 | 30.1.1.2 |
R4 | f1/0 | 30.1.1.2 |
R4 | f0/0 | 40.1.1.1 |
R5 | f1/0 | 40.1.1.2 |
R1 | Loopback0 | 1.1.1.1 |
R1 | Loopback1 | 192.168.1.1 |
R1 | Loopback2 | 192.168.2.1 |
R1 | Loopback3 | 192.168.3.1 |
R2 | Loopback0 | 2.2.2.2 |
R3 | Loopback0 | 3.3.3.3 |
R4 | Loopback0 | 4.4.4.4 |
R5 | Loopback0 | 5.5.5.5 |
实验配置
配置BGP联邦属性
R1的配置:
R1#configure terminal R1(config)#interface f0/0 R1(config-if)#ip address 10.1.1.1 255.255.255.0 R1(config-if)#no shutdown R1(config-if)#interface Loopback 0 R1(config-if)#ip address 1.1.1.1 255.255.255.0 R1(config-if)#interface loopback 1 R1(config-if)#ip address 192.168.1.1 255.255.255.0 R1(config-if)#interface loopback 2 R1(config-if)#ip address 192.168.2.1 255.255.255.0 R1(config)#interface loopback 3 R1(config-if)#ip address 192.168.3.1 255.255.255.0 R1(config-if)#exit R1(config)#ip route 2.2.2.2 255.255.255.255 10.1.1.2 R1(config)#router bgp 100 R1(config-router)#neighbor 2.2.2.2 remote-as 200 R1(config-router)#neighbor 2.2.2.2 update-source loopback 0 //更新源为Loopback0 R1(config-router)#neighbor 2.2.2.2 ebgp-multihop 5 //指定EBGP邻居关系可以传递5跳 R1(config-router)#network 1.1.1.0 mask 255.255.255.0 R1(config-router)#network 192.168.1.0 mask 255.255.255.0 R1(config-router)#network 192.168.2.0 mask 255.255.255.0 R1(config-router)#network 192.168.3.0 maks 255.255.255.0 //宣告需要传递的有条目并指出起子网掩码
R2的配置
R2#configure terminal R2(config)#interface f1/0 R2(config-if)#ip address 10.1.1.2 255.255.255.0 R2(config-if)#no shutdown R2(config-if)#exit R2(config)#interface f0/0 R2(config-if)#ip address 20.1.1.1 255.255.255.0 R2(config-if)#no shutdown R2(config-if)#interface loopback0 R2(config-if)#ip address 2.2.2.2 255.255.255.0 R2(config-if)#exit R2(config)#ip route 1.1.1.1 255.255.255.255 10.1.1.1 R2(config)#router rip R2(config-router)#ver 2 R2(config-router)#no auto-summary R2(config-router)#network 20.1.1.0 R2(config-router)#network 2.2.2.0 R2(config-router)#router bgp 65500 //建立一个虚拟的私有AS号 R2(config-router)#neighbor 1.1.1.1 remote-as 100 R2(config-router)#neighbor 1.1.1.1 update-source Loopback0 //更新源为 Loopback0 R2(config-router)#neighbor 1.1.1.1 ebgp-multihop 5 //指定EBGP邻居关系可以传递5跳 R2(config-router)#bgp confederation identifier 200 //联邦命令,把现有的AS65500标识成200,用此伪造的AS号和R1建立BGP关系 R2(config-router)#neighbor 3.3.3.3 remote-as 65500 R2(config-router)#neighbor 3.3.3.3 update-source loopback0 //更新源为Loopback0 R2(config-router)#neighbor 3.3.3.3 next-hop-self //通告邻居其下一跳路由为此路由器
R3的配置 R3#configure terminal R3(config)#interface f1/0 R3(config-if)#ip address 20.1.1.2 255.255.255.0 R3(config-if)#no shutdown R3(config-if)#exit R3(config)#interface f0/0 R3(config-if)#ip address 30.1.1.1 255.255.255.0 R3(config-if)#no shutdown R3(config-if)#interface loopback0 R3(config-if)#ip address 3.3.3.3 255.255.255.0 R3(config-if)#router rip R3(config-router)#ver 2 R3(config-router)#no auto-summary R3(config-router)#network 20.1.1.0 R3(config-router)#network 30.1.1.0 R3(config-router)#network 3.3.3.0 R3(config-router)#router bgp 65500 R3(config-router)#neighbor 2.2.2.2 remote-as 65500 R3(config-router)#neighbor 2.2.2.2 update-source loopback0 //更新源为Loopback0 R3(config-router)#bgp confederation identifier 200 //R3也需要此命令来伪造成AS-200 传递BGP信息 R3(config-router)#neighbor 4.4.4.4 remote-as 65501 R3(config-router)#neighbor 4.4.4.4 update-source loopback0 //更新源为loopback0 R3(config-router)#neighbor 4.4.4.4 ebgp-multihop 5 //指定EBGP邻居关系可以传递5跳 R3(config-router)#bgp confederation peers 65501 //和AS-200 中的另一个虚拟AS-65501 建立BGP对等体关系
R4的配置
R4#configure terminal R4(config)#interface f1/0 R4(config-if)#ip address 30.1.1.2 255.255.255.0 R4(config-if)#no shutdown R4(config-if)#interface f0/0 R4(config-if)#ip address 40.1.1.1 255.255.255.0 R4(config-if)#no shutdown R4(config-if)#exit R4(config)#interface loopback0 R4(config-if)#ip address 4.4.4.4 255.255.255.0 R4(config-if)#exit R4(config)#ip route 5.5.5.5 255.255.255.255 40.1.1.2 R4(config)#router rip R4(config-router)#version 2 R4(config-router)#no auto-summary R4(config-router)#network 4.4.4.0 R4(config-router)#network 30.1.1.0 R4(config-router)#router bgp 65501 R4(config-router)#neighbor 3.3.3.3 remote-as 65500 R4(config-router)#neighbor 3.3.3.3 update-source loopback0 //更新源威Loopback0 R4(config-router)#neighbor 3.3.3.3 ebgp-multihop 5 //指定EBGP邻居关系可以传递5跳 R4(config-router)#bgp confederation identifier 200 //R4也需要此命令来伪造成AS-200 传递BGP信息 R4(config-router)#bgp confederation peers 65500 //和AS-200 中的另一个虚拟AS-65500建立BGP对等体关系 R4(config-router)#neighbor 5.5.5.5 remote-as 300 R4(config-router)#neighbor 5.5.5.5 update-source loopback 0 //更新源为loopback0 R4(config-router)#neighbor 5.5.5.5 ebgp-multihop 5 //指定EBGP邻居关系可以传递5跳
R5的配置
R5#configure terminal R5(config)#interface f1/0 R5(config-if)#ip address 40.1.1.2 255.255.255.0 R5(config-if)#no shutdown R5(config)#interface loopback0 R5(config-if)#ip address 5.5.5.5 255.255.255.0 R5(config-if)#exit R5(config)#ip route 4.4.4.4 255.255.255.255 40.1.1.1 R5(config)#router bgp 300 R5(config-router)#neighbor 4.4.4.4 remote-as 200 R5(config-router)#neighbor 4.4.4.4 update-source loopback0 //更新源为loopback0 R5(config-router)#neighbor 4.4.4.4 ebgp-multihop 5 //指定EBGP邻居关系可以传递5跳
接下来验证配置
show ip route 路由表,R4会收到R1以B为前缀的所有环回口地址的路由条目.
show ip bgp 查看bgp信息,R4会收到4个BGP信息,且都是最优路由条目.此时建立私有AS号突破了IBGP只传一跳的规则.
配置BGP团体属性(Community)
R1#configure terminal R1(config)#access-list 10 permit 192.168.1.0 R1(config)#access-list 20 permit 192.168.2.0 R1(config)#access-list 30 permit 192.168.3.0 R1(config)#access-list 40 permit 192.168.4.0 //创建访问控制列表并抓去相应的路由条目进行设置 R1(config)#route-map ccie permit 10 //创建路由策略 ccie R1(config-route-map)#match ip address 10 //路由策略匹配访问控制列表10 R1(config-route-map)#set community no-advertise //设置团体属性让R1的路由条目传到R2不再往下传递,不再宣告通告 R1(config-route-map)#exit R1(config)#route-map ccie permit 20 R1(config-route-map)#match ip address 20 R1(config-route-map)#set community local-as R1(config-route-map)#exit R1(config)#route-map ccie permit 30 //路由策略匹配访问控制列表30 R1(config-route-map)#set community no-export //只在IGBP内部传递 R1(config-route-map)#exit R1(config)#route-map ccie permit 40 R1(config-route-map)#match ip address 40 //路由策略匹配访问控制列表40 R1(config-route-map)#set community none //不做任何属性 R1(config-route-map)#exit R1(config)#route-map ccie permit 50 R1(config-route-map)#exit R1(config)#router bgp 100 R1(config-router)#neighbor 2.2.2.2 route-map ccie out //把策略挂在接口上 R1(config-router)#neighbor 2.2.2.2 send-community //建立团体属性
R2(config)#router bgp 65500 R2(config-router)#neighbor 3.3.3.3 send-community
R3(config)#router bgp 65500 R3(config-router)#neighbor 4.4.4.4 send-community
接下来
show ip bgp R2-R5分别重看bgp信息,可以观察到R2的bgp表中有4条BGP信息R3的bgp表中有3条BGP信息;R4的bgp表中有2条BGP信息;R5的bgp表中有1条BGP信息.
实验总结
BGP联邦属性通过建立私有AS号来可以打破IBGP协议只能传递一跳的规则,BGP团体属性能够控制BGP路由条目的传递。