众所周知,BGP建立peer必须要匹配AS和neighbor地址,但是这两项没有必要完全都匹配才可以建立邻居,有一些折中的办法
1.AS匹配问题:如果对端指的AS和本地AS不同,也不能形成establish
两种解决方案:①联邦,将本地私有AS转为对端所指AS,
②使用Local-AS可选项,在指定邻居时,指明本方所使用的AS
2.源地址和目的地址匹配问题:
IOS在建立BGP邻居时,并不是要求两端都要匹配上源端口和目的端口,事实上只要有一端匹配上即可建立邻居匹配成功的一方即为“客户”,采用一个随机端口,主动发送open信息不能匹配的另一端即为“服务器”,采用179端口被动接收数据包,
那么这样建立会话的过程是:
①服务器发起TCP会话,试图与客户建立邻居关系
②客户收到open信息后,发现地址不匹配,拒绝
open failed: Connection refused by remote host
③服务器将接口改为被动:passive open
④客户主动发起会话,这时服务器接受OPEN信息,并采用客户的
目的地址作为源向客户发送OPEN信息
一般情况下,只有客户会严格规定源地址
⑤这时双方均协商成功,连接建立
执行过程:
Idle=>Active=>Connect=>OpenSent=>
OpenConfirm=>Established
值得注意的是:如果双方都匹配上了源端口和目的端口,较高IP地址先发起会话