该文档主要整理一下联盟的相关知识.(现在真实的生产网很少用联盟的,因为有RR--路由反射器的产生,这里只是作为了解就可以了.有这样一个东西来解决路由黑洞的问题,可以打破bgp水平分割所带来的黑洞问题)
首先要了解一下BGP联盟到底解决了一个什么问题,因为每一个技术后面都有他产生的背景:
路由黑洞解决方案:
BGP水平分割带来的黑洞
(1)原因:IBGP的水平分割(从一个IBGP邻居学来的路由不会再传递另外一个IBGP邻居.)
(2)解决方法:
■IBGP全互联(FULL mesh结构,经过这些年的发展,做成全互联的模式基本是不可能的,对于运营商来说,成本太大了)
■路由反射器(这个是现在每一个运营商都必须用的,实际意义是最大的)
■BGP联盟(在没有路由反射器的情况解决水平分割的问题,我猜想这个技术应该是在RR之前的概念,RR出来以后就被RR所取代了,所以今天这里只做了解.)
BGP联盟的概念:
它将一个自治系统划分为若干个子AS,每个子AS系统内部的IBGP同伴全连接,并同联盟中其他的子AS建立连接。联盟能很容易的检测到自治系统内部的路由环路。子AS之间及联盟本身与外部AS之间使用的是EBGP.下一跳,MED和LP等重要的信息在穿越子AS的时候都不会丢失。
1、含义:大AS含小AS
2、联盟AS号:通常为私有AS号
3、角色:联盟IBGP、联盟EBGP
4、做法:将IBGP域用私有AS号划成几个小AS,对外以大AS宣告
5、问题:
(1)一台路由器上只能起一个BGP进程,私有AS号又不能在公网上识别,如何与外部AS建立EBGP邻居?
(2)联盟EBGP之间邻居关系的建立:须用到EBGP多跳属性
(3)联盟EBGP路由器都宣称自己是大AS,但是又不是属于同一个AS,怎么建立邻居?
(4)下一跳的问题
6、解决:
(1)向外宣告大AS(注意:大AS内所有路由器都得打这条命令);
R3(config-router)#bgp confederation identifier 123
(2)在联盟EBGP对等体上修改更新源和TTL值;
(3)不向联盟AS宣告自己的大AS号
R3(config-router)#bgp confederation peers 65100 65200
(4)修改下一跳,联盟BGP之间也得这样做
7、变与不变:
(1)变:AS path
路由条目标识
(2)不变:从联盟EBGP学来的路由条目的管理距离仍为200
8、应用:打破BGP水平分割传递路由
在这个图谱中,左边的R1/R2/R3/R4/R5都在一个大AS中,AS=1.
在AS1中分了三个子区域:65530/65531/65532.
AS1形成了一个联盟.
首先看看配置篇:
R1配置:
router bgp 65530
no synchronization
bgp log-neighbor-changes
bgp confederation identifier 1
bgp confederation peers 65531
network 150.150.150.0 mask 255.255.255.0
neighbor 193.16.0.1 remote-as 65531
no auto-summary
R2配置:
router bgp 65531
no synchronization
bgp log-neighbor-changes
bgp confederation identifier 1
bgp confederation peers 65530 65532
neighbor 172.16.0.2 remote-as 65531
neighbor 172.16.0.2 next-hop-self
neighbor 172.16.0.18 remote-as 65532
neighbor 172.16.0.18 next-hop-self
neighbor 193.16.0.2 remote-as 65530
no auto-summary
R3配置:
router bgp 65531
no synchronization
bgp log-neighbor-changes
bgp confederation identifier 1
neighbor 172.16.0.1 remote-as 65531
no auto-summary
R4配置:
router bgp 65532
no synchronization
bgp log-neighbor-changes
bgp confederation identifier 1
bgp confederation peers 65531
neighbor 172.16.0.13 remote-as 65532
neighbor 172.16.0.13 next-hop-self
neighbor 172.16.0.17 remote-as 65531
neighbor 193.16.0.10 remote-as 2
no auto-summary
R5的配置:
router bgp 65532
no synchronization
bgp log-neighbor-changes
bgp confederation identifier 1
neighbor 172.16.0.14 remote-as 65532
no auto-summary
R6的配置:
router bgp 2
no synchronization
bgp log-neighbor-changes
neighbor 193.16.0.9 remote-as 1
no auto-summary
配置总结:
在每台AS1内的设备中,bgp进程下面都需要配置大AS的ID,还有就是peers.peers是打通通往不同子AS路由器的bgp连接,一定需要配置,当然如果本端是末节,只有一个IBGP邻居,那么可以不配置。也没有办法配置。
验证:
上面的理论已经说过,路由的诸多bgp属性中途都不会由子AS修改,会原封不动的随路由一并通告。
从EBGP邻居的视角来看(联盟之外),联盟会作为一个单独的AS呈现.
下面我们来看看各个路由器的路由是否都已经正常学到了。
最后再查看一下R4和R6的邻居关系AS号: