思科CCIE认证考试技术文档-DMVPN第一阶段BGP路由
乾颐堂网络实验室定期为大家更新思科CCIE认证考试技术文档
这次,我们来看看BGP。这是我们将使用的拓扑:
组态
隧道接口
这是一个基本的DMVPN第1阶段配置:
Hub(config)#interface Tunnel0
Hub(config-if)#ip address 172.16.123.1 255.255.255.0
Hub(config-if)#ip nhrp authentication DMVPN
Hub(config-if)#ip nhrp map multicast dynamic
Hub(config-if)#ip nhrp network-id 1
Hub(config-if)#tunnel source GigabitEthernet0/1
Hub(config-if)#tunnel mode gre multipoint
Spoke1(config)#interface Tunnel0
Spoke1(config-if)#ip address 172.16.123.2 255.255.255.0
Spoke1(config-if)#ip nhrp authentication DMVPN
Spoke1(config-if)#ip nhrp map 172.16.123.1 192.168.123.1
Spoke1(config-if)#ip nhrp map multicast 192.168.123.1
Spoke1(config-if)#ip nhrp network-id 1
Spoke1(config-if)#ip nhrp nhs 172.16.123.1
Spoke1(config-if)#tunnel source GigabitEthernet0/1
Spoke1(config-if)#tunnel destination 192.168.123.1
Spoke2(config)#interface Tunnel0
Spoke2(config-if)#ip address 172.16.123.3 255.255.255.0
Spoke2(config-if)#ip nhrp authentication DMVPN
Spoke2(config-if)#ip nhrp map 172.16.123.1 192.168.123.1
Spoke2(config-if)#ip nhrp map multicast 192.168.123.1
Spoke2(config-if)#ip nhrp network-id 1
Spoke2(config-if)#ip nhrp nhs 172.16.123.1
Spoke2(config-if)#tunnel source GigabitEthernet0/1
Spoke2(config-if)#tunnel destination 192.168.123.1
让我们验证隧道是否正常工作:
Hub#show dmvpn | begin 192.168.123.
1 192.168.123.2 172.16.123.2 UP 00:22:37 D
1 192.168.123.3 172.16.123.3 UP 00:00:32 D
并做一个快速ping:
Hub#ping 172.16.123.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.123.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 6/6/8 ms
Hub#ping 172.16.123.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.123.3, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 5/6/9 ms
一切似乎都在工作,是时候配置BGP了。
辐条上有不同AS的eBGP
我们可以选择多种变体:
· 每个辐条上具有不同AS编号的eBGP。
· 每个辐条上具有相同AS编号的eBGP。
· IBGP对
我们将看看所有不同的选项,我们将从eBGP开始,在所有辐条上使用不同的AS编号:
Hub(config)#router bgp 65001
Hub(config-router)#neighbor 172.16.123.2 remote-as 65002
Hub(config-router)#neighbor 172.16.123.3 remote-as 65003
Hub(config-router)#network 1.1.1.1 mask 255.255.255.255
Spoke1(config)#router bgp 65002
Spoke1(config-router)#neighbor 172.16.123.1 remote-as 65001
Spoke1(config-router)#network 2.2.2.2 mask 255.255.255.255
Spoke2(config)#router bgp 65003
Spoke2(config-router)#neighbor 172.16.123.1 remote-as 65001
Spoke2(config-router)#network 3.3.3.3 mask 255.255.255.255
上面我们为每个路由器提供了不同的AS号,我们也在BGP中公布了Loopback接口。让我们看看我们的中心路由器是否有两个邻居:
Hub#show ip bgp summary | begin Neighbor
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
172.16.123.2 4 65002 47 48 4 0 0 00:38:49 1
172.16.123.3 4 65003 46 47 4 0 0 00:38:05 1
这看起来不错,我们有两个邻居。我们来看看路由表:
Hub#show ip route bgp
2.0.0.0/32 is subnetted, 1 subnets
B 2.2.2.2 [20/0] via 172.16.123.2, 00:37:59
3.0.0.0/32 is subnetted, 1 subnets
B 3.3.3.3 [20/0] via 172.16.123.3, 00:37:59
Spoke1#show ip route bgp
1.0.0.0/32 is subnetted, 1 subnets
B 1.1.1.1 [20/0] via 172.16.123.1, 00:38:16
3.0.0.0/32 is subnetted, 1 subnets
B 3.3.3.3 [20/0] via 172.16.123.3, 00:37:46
Spoke2#show ip route bgp
1.0.0.0/32 is subnetted, 1 subnets
B 1.1.1.1 [20/0] via 172.16.123.1, 00:38:34
2.0.0.0/32 is subnetted, 1 subnets
B 2.2.2.2 [20/0] via 172.16.123.2, 00:38:34
所有路由器都学会了不同的网络。让我们看看spoke1是否可以达到spoke2:
Spoke1#ping 3.3.3.3 source loopback 0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 2.2.2.2
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 7/8/10 ms
太好了,那里没有问题。所有流量都通过集线器,因此我们的分支路由器无需查看特定网络。
让我们配置集线器,以便它只向我们的辐条通告默认路由。我会为此使用路线图:
Hub(config)#ip route 0.0.0.0 0.0.0.0 null0
Hub(config)#ip prefix-list DEFAULT_ROUTE permit 0.0.0.0/0
Hub(config)#route-map SPOKE_ROUTERS permit 10
Hub(config-route-map)#match ip address prefix-list DEFAULT_ROUTE
Hub(config)#router bgp 65001
Hub(config-router)#network 0.0.0.0 mask 0.0.0.0
Hub(config-router)#neighbor 172.16.123.2 route-map SPOKE_ROUTERS out
Hub(config-router)#neighbor 172.16.123.3 route-map SPOKE_ROUTERS out
Hub#clear ip bgp *
我们的中心路由器应该仍然拥有所有网络,分支路由器应该只有一个默认路由。让我们来看看:
Hub#show ip route bgp
2.0.0.0/32 is subnetted, 1 subnets
B 2.2.2.2 [20/0] via 172.16.123.2, 00:00:52
3.0.0.0/32 is subnetted, 1 subnets
B 3.3.3.3 [20/0] via 172.16.123.3, 00:00:52
Spoke1#show ip route bgp
B* 0.0.0.0/0 [20/0] via 172.16.123.1, 00:00:44
Spoke2#show ip route bgp
B* 0.0.0.0/0 [20/0] via 172.16.123.1, 00:00:48
那看起来不错。让我们验证连接:
Spoke1#ping 3.3.3.3 source loopback 0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 2.2.2.2
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 8/8/9 ms
它还在工作,非常好!
辐条上具有相同AS的eBGP
我们可以尝试使用eBGP的另一件事是在所有分支路由器上使用相同的AS号。此解决方案的优点是我们不必过滤任何网络,分支路由器将不接受任何在AS路径中看到自己的AS号的网络。我们先清理一下:
Hub(config)#router bgp 65001
Hub(config-router)#no neighbor 172.16.123.2
Hub(config-router)#no neighbor 172.16.123.3
Spoke1(config)#no router bgp 65002
Spoke2(config)#no router bgp 65003
现在我们将配置分支路由器以使用AS 65023:
Hub(config)#router bgp 65001
Hub(config-router)#neighbor 172.16.123.2 remote-as 65023
Hub(config-router)#neighbor 172.16.123.3 remote-as 65023
Spoke1(config)#router bgp 65023
Spoke1(config-router)#neighbor 172.16.123.1 remote-as 65001
Spoke1(config-router)#network 2.2.2.2 mask 255.255.255.255
Spoke2(config)#router bgp 65023
Spoke2(config-router)#neighbor 172.16.123.1 remote-as 65001
Spoke2(config-router)#network 3.3.3.3 mask 255.255.255.255
我们的中心路由器仍在宣传默认路由,但我们不再需要路由映射。让我们仔细看看:
Hub#show ip route bgp
2.0.0.0/32 is subnetted, 1 subnets
B 2.2.2.2 [20/0] via 172.16.123.2, 00:00:56
3.0.0.0/32 is subnetted, 1 subnets
B 3.3.3.3 [20/0] via 172.16.123.3, 00:00:20
集线器仍然在其路由表中具有来自分支路由器的网络。让我们看看它对分支路由器的广告:
Hub#show ip bgp neighbors 172.16.123.2 advertised-routes
BGP table version is 9, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 0.0.0.0 0.0.0.0 0 32768 i
*> 1.1.1.1/32 0.0.0.0 0 32768 i
*> 2.2.2.2/32 172.16.123.2 0 0 65023 i
*> 3.3.3.3/32 172.16.123.3 0 0 65023 i
Hub#show ip bgp neighbors 172.16.123.3 advertised-routes
BGP table version is 9, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 0.0.0.0 0.0.0.0 0 32768 i
*> 1.1.1.1/32 0.0.0.0 0 32768 i
*> 2.2.2.2/32 172.16.123.2 0 0 65023 i
*> 3.3.3.3/32 172.16.123.3 0 0 65023 i
上面你可以看到集线器将3.3.3.3/32通告给spoke1,将2.2.2.2/32通告给spoke2。他们安装了什么?
Spoke1#show ip route bgp
B* 0.0.0.0/0 [20/0] via 172.16.123.1, 00:04:05
1.0.0.0/32 is subnetted, 1 subnets
B 1.1.1.1 [20/0] via 172.16.123.1, 00:04:05
Spoke2#show ip route bgp
B* 0.0.0.0/0 [20/0] via 172.16.123.1, 00:02:19
1.0.0.0/32 is subnetted, 1 subnets
B 1.1.1.1 [20/0] via 172.16.123.1, 00:02:19
Spoke1不接受3.3.3.3/32,因为它在AS路径中有AS 65023。同样的事情适用于spoke2,它不喜欢2.2.2.2/32,因为AS 65023在AS路径中。安装了默认路由,我们可以看到1.1.1.1/32。最好摆脱 network 1.1.1.1 mask 255.255.255.255集线器上的命令,我们不需要这个条目。
让我们看看辐条是否仍能相互接触:
Spoke1#ping 3.3.3.3 source loopback 0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 3.3.3.3, timeout is 2 seconds:
Packet sent with a source address of 2.2.2.2
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 7/8/9 ms
Spoke1仍然可以到达spoke2。这里没问题!
iBGP与动态对等体
前面两个使用eBGP的例子非常有效。这两个例子都有一个“问题”,我们 手动配置了我们的邻居。它可以工作,但它失败了拥有动态DMVPN分支路由器的目的。
BGP支持称为“动态对等体”的东西,这意味着我们将接受来自给定范围内的任何路由器的BGP邻居邻接。你可以将它用于eBGP和iBGP,但有一个问题......远程路由器必须在同一个AS中。
我将告诉你如何用iBGP做到这一点:
Hub(config)#router bgp 65001
Hub(config-router)#bgp listen range 172.16.123.0/24 peer-group DMVPN_SPOKES
Hub(config-router)#neighbor DMVPN_SPOKES peer-group
Hub(config-router)#neighbor DMVPN_SPOKES remote-as 65001
Hub(config-router)#network 0.0.0.0 mask 0.0.0.0
上面我们使用listen range命令接受来自172.16.123.0/24范围内任何设备的BGP邻居邻接。我们还使用指定AS 65001中的iBGP邻居的对等组,并通告默认路由。让我们配置分支路由器:
Spoke1(config)#router bgp 65001
Spoke1(config-router)#neighbor 172.16.123.1 remote-as 65001
Spoke1(config-router)#network 2.2.2.2 mask 255.255.255.255
Spoke2(config)#router bgp 65001
Spoke2(config-router)#neighbor 172.16.123.1 remote-as 65001
Spoke2(config-router)#network 3.3.3.3 mask 255.255.255.255
我们来检查路由表:
Hub#show ip route bgp
2.0.0.0/32 is subnetted, 1 subnets
B 2.2.2.2 [200/0] via 172.16.123.2, 00:02:23
3.0.0.0/32 is subnetted, 1 subnets
B 3.3.3.3 [200/0] via 172.16.123.3, 00:02:23
Spoke1#show ip route bgp
B* 0.0.0.0/0 [200/0] via 172.16.123.1, 00:01:26
Spoke2#show ip route bgp
B* 0.0.0.0/0 [200/0] via 172.16.123.1, 00:01:08
中心路由器看到两个网络,每个辐条只能看到默认路由。
iBGP与DMVPN第1阶段相结合的优势在于您无需在集线器路由器上过滤任何内容。由于iBGP水平分割,集线器不会将任何网络从spoke1通告到spoke2(反之亦然)。
结论
您现在已经了解了如何为DMVPN阶段1配置eBGP和iBGP。对于DMVPN,BGP是一个不错的选择,这个示例非常简单,因为分支路由器只需要一个默认路由。在大型DMVPN设置中,使用BGP非常有用,因为它易于广告,汇总和过滤网络。
思科CCIE认证考试培训咨询可联系乾颐堂官网客服. 点击咨询
咨询QQ及电话:4006188070
乾颐堂官网:www.qytang.com
乾颐堂网络实验室 我们为您想的更多
姓名:
Q Q:
电话:
|