BGP Confederation(BGP联邦)
为了解决由于从iBGP邻居收到的路由不能转发给其它iBGP邻居的限制问题,除了可以使用在iBGP邻居之间创建全互联的邻居关系和使用BGPReflector之外,还可以使用BGP Confederation(BGP联邦)。
因为只有从iBGP邻居收到的路由才不能转发给其它iBGP邻居,而从eBGP邻居收到的路由可以转发给任何邻居,包括iBGP邻居,所以在拥有多个路由器的大型AS中,BGPConfederation采用在AS内部建立多个子AS的方法,从而将一个大的AS分割成多个小型AS,让AS内部拥有足够数量的eBGP邻居关系来解决路由限制问题。如下图
在上图中,当R3从iBGP邻居R1收到路由后,不能再转发给iBGP邻居R4,而R2从eBGP邻居R5收到R1的路由后,因为拥有自己的AS号码,最后将路由丢弃而不转发给R4,最终造成R4拥有不完整的路由表,同样R3也像R4一样不能拥有完整的路由表。
对于上述问题,可以创建全互联的BGP邻居关系,或者在R3和R4上配置BGP Reflector的方法来解决。除此之外,还可以使用在AS内部创建BGPConfederation的方法来解决,如下:
在上图环境中,通过BGP Confederation的方式在R1与R3之间创建子AS 64512,而在R2与R4之间创建子AS64513,这样一来,在R1将全部路由发给R3,以及R2将全部路由发给R4之后,
因为R3与R4是eBGP邻居的关系,所以R3与R4之间可以任意转发BGP路由信息,从而使双方都拥有完整的全网路由表。
在使用BGP Confederation在AS内部创建子AS时,建议使用私有AS号码,范围是64512-65534,所有BGPConfederation内部的子AS,对于外界都是不可见的,如上图中,R1与R2在AS 1中分别为AS 64512和AS 64513,但是对于R5来说,R1和R2都为AS1的,而AS 64512和AS 64513对于R5来说是透明的,外界并不知道AS内部是否创建了BGP Confederation,对于子AS的号码只在AS内部传递路由时才会添加到AS_Path中去,在出AS时,这些子AS号码是不会写入AS_Path的。
注:
★在路径属性中,联邦内部的子AS是不被AS_Path计算在内的。
★在选路规则中,比较eBGP与iBGP邻居类型时,AS内部的子AS之间是不作eBGP与iBGP邻居类型比较的。
配置BGP Confederation
说明:
上图中所有路由器都配有Loopback地址,地址分别为:
R1 Loopback0 1.1.1.1/32 Loopback 11 11.1.1.1/24
R2 Loopback0 2.2.2.2/32 Loopback 22 22.2.2.2/24
R3 Loopback0 3.3.3.3/32 Loopback 33 33.3.3.3/24
R4 Loopback0 4.4.4.4/32 Loopback 44 44.4.4.4/24
R5 Loopback0 5.5.5.5/32 Loopback 55 55.5.5.5/24
所有路由器之间运行OSPF,并将Loopback 0的地址发布到OSPF中,保证全网Loopback 0之间是可以通信的。
1.IGP保证全网Loopback 0互通
(1)配置OSPF
说明:此步略,请参见之前配置。
(2)测试全网Loopback 0连通性
r5#ping 1.1.1.1 source loopback 0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is2 seconds:
Packet sent with a source address of 5.5.5.5
!!!!!
Success rate is 100 percent (5/5), round-tripmin/avg/max = 8/114/228 ms
r5#ping 2.2.2.2 source loopback 0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is2 seconds:
Packet sent with a source address of 5.5.5.5
!!!!!
Success rate is 100 percent (5/5), round-tripmin/avg/max = 56/84/128 ms
r5#
r5#
r5#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 is2 seconds:
Packet sent with a source address of 5.5.5.5
!!!!!
Success rate is 100 percent (5/5), round-tripmin/avg/max = 16/106/180 ms
r5#ping 4.4.4.4 source loopback 0
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 4.4.4.4, timeout is2 seconds:
Packet sent with a source address of 5.5.5.5
!!!!!
Success rate is 100 percent (5/5), round-tripmin/avg/max = 48/124/224 ms