一、拓朴如下:
要求:
1、AS100 只接收 AS200 和 300 的路由,不接收其它 AS 的明细路由;
2、对于 AS100 的业务流量出方向,所有到 AS200 和 300 的流量,优先选择 Line-1,而到 AS400 的流量,优先走 Line-2;
3、对于 AS100 的业务流量入方向,遵循最优原则,来自 AS200 和 300 的流量,优先选择 Line-1,而来自 AS400 的流量,优先走 Line-2;
4、不允许使用客户的 AS 做为穿越AS(即:如果R3和R4之间连线断开,不允许 ISP 流量穿越 AS100)
二、部署步骤:
1、配置IP
2、给 AS100、AS200 分别配置 IGP,这里我们用 ospf
3、配置 BGP,宣告接口和 Loopback 地址
4、对于要求1(只接收 AS200、300的路由),用正则匹配 as-path 开头 200 和结尾 300 的路由,在引入时,应用到入方向路由策略:
[R1]
ip as-path-filter 3 permit ^200$
ip as-path-filter 3 permit _300$
#
route-policy OUTBOUND permit node 10
if-match as-path-filter 3
route-policy OUTBOUND permit node 20
#
bgp 100
peer 13.1.1.3 route-policy OUTBOUND import
#
[R2]
ip as-path-filter 4 permit _400$
#
route-policy OUTBOUND permit node 10
if-match as-path-filter 4
route-policy OUTBOUND permit node 20
#
bgp 100
peer 24.1.1.4 route-policy OUTBOUND import
#
5、对于要求2(流量出方向),对引入的路由,用正则匹配到 AS200、300 ,并赋予不同的 Local-preference,越大越优,应用到路由策略入方向,满足出方向选路。这里我们只需要在上面的路由策略 node 10 下面加上 apply local-preference 200,就可满足流量出方向选路
6、对于要求3(流量入方向),用 ACL 2001 和 2002,分别匹配 R1 和 R2 的路由,赋予不同的 med 值,值越小越优,应用到路由的出方向,给对端指示进入进入本 AS100 的选路:
[R1]
acl number 2001
rule 5 permit source 100.1.1.0 0.0.2.0
acl number 2002
rule 5 permit source 202.2.0.0 0.0.6.0
#
route-policy INBOUND permit node 10
if-match acl 2001
apply cost 50
#
route-policy INBOUND permit node 20
if-match acl 2002
apply cost 100
#
bgp 100
peer 13.1.1.3 route-policy INBOUND export
#
[R2]
acl number 2001
rule 5 permit source 100.1.1.0 0.0.2.0
acl number 2002
rule 5 permit source 202.2.0.0 0.0.6.0
#
route-policy INBOUND permit node 10
if-match acl 2001
apply cost 100
#
route-policy INBOUND permit node 20
if-match acl 2002
apply cost 50
#
bgp 100
peer 24.1.1.4 route-policy INBOUND export
#
7、对于要求4(不允许穿越客户 AS),用正则匹配开头和结尾的 as-path 为空的路由,并应用到对 ISP 的路由出方向过滤(因并不向外发布本地 AS 号的路由,也就避免了 ISP 外的 AS 穿越)
[R1]
ip as-path-filter 1 permit ^$
#
bgp 100
peer 13.1.1.3 as-path-filter 1 export
#
[R2]
ip as-path-filter 1 permit ^$
#
bgp 100
peer 24.1.1.4 as-path-filter 1 export
#
三、测试:
测试1:分别查看 R1 和 R3,R2 和 R4 的路由表,可以看到出方向应用了 LocalPrf 值大的路径,入方向应用了 med 值小的路径:
测试2:在 R5 或者 R6 上新增一个 AS500 区域,看能否获取到 AS100 的路由,在 AS100 的路由器上查看能否获取到 AS500 的路由