| 
 
| bgp建立peer的问题拾遗 $ r  L& m9 W8 h2 z; A+ L  E  R1 ?众所周知,BGP建立peer必须要匹配AS和neighbor地址,但是这两项没有必要完全都匹配才可以建立邻居,有一些折中的办法$ [1 w  I* _8 ~1 P
 1.AS匹配问题:如果对端指的AS和本地AS不同,也不能形成establish% w( R, g2 V; Z$ [* _, s
 , J$ ~2 `8 Y3 i( T9 F7 {
 两种解决方案:①联邦,将本地私有AS转为对端所指AS,! d. W* ?  g( b+ W; T
 ②使用Local-AS可选项,在指定邻居时,指明本方所使用的AS  " x: V, W6 b- ]
 2.源地址和目的地址匹配问题:% w$ {$ u) X5 a5 U0 k, [
 IOS在建立BGP邻居时,并不是要求两端都要匹配上源端口和目的端口,事实上只要有一端匹配上即可建立邻居匹配成功的一方即为“客户”,
 : {- L" V* t; H) ]" }- t4 k0 Y0 M$ g! f. B: N  G4 X" b
 采用一个随机端口,主动发送open信息不能匹配的另一端即为“服务器”,采用179端口被动接收数据包,
 ( J0 d# K5 E$ E  R               那么这样建立会话的过程是:
 ' |4 }; D! P9 Y& C# u* G; x3 }! }               ①服务器发起TCP会话,试图与客户建立邻居关系
 . L3 u' T; B- x: V               ②客户收到open信息后,发现地址不匹配,拒绝
 . l; `3 _5 v( H  O) T" h                  open failed: Connection refused by remote host
 # H; a) W* c2 n0 x1 s! l* L                       ③服务器将接口改为被动:passive open
 9 i% p2 Z/ z! ?' ~0 d; n                       ④客户主动发起会话,这时服务器接受OPEN信息,并采用客户的  z/ o) G/ F2 A
 目的地址作为源向客户发送OPEN信息' X& H3 f3 ^2 V& j# J9 d* H
 一般情况下,只有客户会严格规定源地址
 ) W. O2 \( b% _               ⑤这时双方均协商成功,连接建立2 ]9 e* t) L; x' t+ b( J7 S7 T
 执行过程:
 ( w, s  r* c3 e( K                   Idle=>Active=>Connect=>OpenSent=>; B7 h- m# b6 P  `2 r3 M6 g0 U
 OpenConfirm=>Established
 O8 O, J7 y2 o            值得注意的是:如果双方都匹配上了源端口和目的端口,较高IP地址先发起会话
 | 
 |