资源描述
BGP默认不进行负载均衡,通过设置,可实现负载。通常有一下几种方法。
1、通过IGP下一跳进行负载,不赘述。
2、eBGP负载
拓扑:
R6环回口6.6.6.6/32通告进bgp,令as123内路由器学到。
正常配置做完后,查看R2:
R2已选择R4作为下一跳。
并将其装入路由表。
此时,为了让6.6.6.6/32负载,在R2执行命令:
开启eBGP的负载,再查看:
bgp中仍是选择了一个best,别着急,我们看一下详细信息:
可见eBGP的负载开启成功,再看路由表:
已经装入两个下一跳形成负载。
我们进一步考虑,因为从eBGP对等体收到的路由,传给iBGP对等体时,默认并不改变下一跳,那R1上是否也会形成负载呢?
实际情况是,没有形成负载,因为下一跳变成了2.2.2.2,抓包进一步验证:
可见,R2给R1的更新中,已经自动做了next-hop-self的动作。这也是eBGP负载的特性。
3、iBGP负载
拓扑:
R6环回口6.6.6.6/32通告进bgp,令as123内路由器学到。与eBGP类似,简要说明。
正常配置做完后,查看R1路由表:
可见,默认没有开启iBGP负载,我们来开启它:
再查看路由表:
iBGP负载已经实现。
3、利用虚拟下一跳
我们继续上面的实验:
可见,形成负载的两个条目的as-path是完全相同的,如果不同,还能负载吗?我们对拓扑进行改动如下:
配置好后查看:
两个条目都已学到,且as-path不同,再看路由表:
并没有形成负载。在这样的情况下,如果我们希望实现IBGP的负载,可以通过虚拟下一跳的方法来实现。都在R2和R3上操作,步骤如下:
1.应用route-map将传给R1的需要负载的条目下一跳改为一个虚拟地址。
2.配置虚拟地址的静态路由,并重发布进igp(ospf),以使R1学到的路由下一跳可达。
配置在R2和R3上操作完全相同:
route-map VNH
set ip next-hop 8.8.8.8
router bgp 123
neighbor 1.1.1.1 route-map VNH out
ip route 8.8.8.8 255.255.255.255 null 0
router ospf 10
redistribute static subnets
上面2步完成后,查看R1:
其实虚拟下一跳的方法还是利用下一跳的igp来进行负载。
最后,感谢启明攻击讨论的ppt,让我有章可循,有图可考。
展开阅读全文