Local-as 下载本文

local-as 伪装AS

no-prepend 向其他EBGP邻居通告前缀时不携带LOCAL-AS伪装过的AS号

replace-as 使用LOCAL-AS的隐藏真实的AS号,即在向外通告前缀是只携带LOCAL-AS伪装的AS号 dual-as 可以对等体一侧使用两个AS号与对端建立邻居关系不管那个邻居关系成立都可以,即对端可以指定本地真实的AS号来建立邻居,也可以指定LOCAL-AS伪装的AS号来建立邻居

r1#sh run | b r b router bgp 1

no synchronization

bgp log-neighbor-changes

network 1.1.1.0 mask 255.255.255.0 neighbor 12.1.1.2 remote-as 2 neighbor 13.1.1.3 remote-as 3 no auto-summary !

r2#sh run | b r b router bgp 2

no synchronization

bgp log-neighbor-changes

network 2.2.2.0 mask 255.255.255.0 neighbor 12.1.1.1 remote-as 1 neighbor 23.1.1.3 remote-as 3 no auto-summary !

r3#sh run | b r b router bgp 3

no synchronization

bgp log-neighbor-changes

network 3.3.3.0 mask 255.255.255.0 neighbor 13.1.1.1 remote-as 1 neighbor 23.1.1.2 remote-as 2 no auto-summar !

为使ISP2(R2)平滑过渡到ISP1(R1)而且又不要影响客户R3的数据流量。 第一步 在R1 和 R3之间建立 ISP 2 的邻居关系,使用以下命令: R1(ISP 1): router bgp 1

neighbor 11.11.13.3 local-as 2 (R1使用ISP 2的AS号与R3建立邻居关系) R3(客户AS):router bgp 3

neighbor 11.11.13.1 remote-as 2 (将原来所指的AS号由AS 1,改变成了伪装的 AS 2)

此时R3上的邻居关系: 未变之前:

改变之后:

但是做完此步后在R2 (ISP 2)上出现了问题,问题是由于R3和R1向R2通告时均携带了R2的AS 2 号,所以BGP 运用默认的EBGP基本防环机制将这些路由拒绝了。

在这里R2(ISP 2)可以采取Allowas-in 1 或者2的方法放宽对AS-PATH的限制,但此方法所要考虑的方面太多,又要防环又要对R1和 R3分别调整,所以太麻烦而且又容易出错。 所以可以在R1上采用No-Prepend的关键字来避免此种尴尬。 造成问题的起因及现象:

r2 注意此处是与以前相比有了很大的变化

使用No-prepend 之后

R1 (ISP 1) : router bgp 1

neighbor 11.11.13.3 local-as 2 no-prepend

第二步 我们又发现R3只选择R2(ISP2)到达ISP1上的路由(这种可能是存在的),虽然有ISP 1 的路径但是由于R3选择去往相同目的地的IGP代价最小的路径,所以造成R1的名存实亡。通过以下命令调整这一现象: 问题的现象:

调整后的结果:R1上使用REPLACE-AS 关键字可以将本地的真实的AS号隐藏,造成R3上的AS-PATH属性短于其他条目,所以R3会优先选择R1去往ISP 1的路径( AS-PATH是选路第4条,而比较IGP metric 是在选路规则的第8步)

R1(ISP 1): router bgp 1

neighbor 11.11.13.3 local-as 2 no-prepend replace-as

第三步 由于要将ISP2平滑过渡到ISP1,即对于客户来说今后将不会有AS 2这一个自治系统号,所以客户端R3要将AS的邻居关系指到我的ISP 1的真实的AS 号上。而此时问题出现了,由于R1上使用了Local-as命令进行了伪装,所以R3和R1之间的邻居关系是建立不起来的。所以R1上可以通过关键字DUAL-AS,来避免这一问题的发生。

问题的现象: R3

router bgp 3

nei 13.1.1.1 remote-as 1 注意错误提示:

*Mar 1 00:34:26.459: %BGP-3-NOTIFICATION: sent to neighbor 13.1.1.1 2/2 (peer in wrong AS) 2 bytes 0002

r3(config-router)# FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 002D 0104 0002 00B4 0101 0101 1002 0601 0400 0100 0102 0280 0002 0202 00

R1上调整后问题解决

r1(config-router)#nei 13.1.1.3 local-as 2 no-prepend replace-as dual-as

*Mar 1 00:36:49.791: %BGP-5-ADJCHANGE: neighbor 13.1.1.3 Up

此时可以在客户端将与ISP 2的邻居关系删除了,平滑过渡完成