BGP对等体组
在网络中出现多台设备配置相近的情况下,使用对等体组可以极大的减少配置命令的输入。
与端口组类似,通过创建一个组,然后将成员添加入其中,可以对组中的成员进行统一的管理。
以AR2为例,配置IBGP组,将AR6、AR5添加入组中统一管理配置:
# BGP进程中创建IBGP组
[AR2]bgp 100
[AR2-bgp]router-id 2.2.2.2
[AR2-bgp]group IBGP internal
# 将IBGP成员添加入组中
[AR2-bgp]peer 10.1.26.6 group IBGP
[AR2-bgp]peer 10.1.25.5 group IBGP
此时查看BGP配置,可以看到部分命令自动补全:
bgp 100
router-id 2.2.2.2
group IBGP internal
peer 10.1.25.5 as-number 100
peer 10.1.25.5 group IBGP
peer 10.1.26.6 as-number 100
peer 10.1.26.6 group IBGP
#
ipv4-family unicast
undo synchronization
peer IBGP enable
peer 10.1.25.5 enable
peer 10.1.25.5 group IBGP
peer 10.1.26.6 enable
peer 10.1.26.6 group IBGP
以AR2为例,配置EBGP组,将AR1添加入组中统一管理配置:
# 将EBGP成员添加入组中,并指定该组属于哪个AS。
# 下次再有该AS的EBGP邻居需要接入,直接添加入组中即可。
[AR2-bgp]peer 10.1.26.6 group IBGP# EBGP组也是同样的
[AR2]bgp 100
[AR2-bgp]router-id 2.2.2.2
[AR2-bgp]group EBGP_200 external
[AR2-bgp]peer EBGP_200 as-number 200
# 将EBGP成员 AR1添加入组中
[AR2-bgp]peer 10.1.12.1 group EBGP_200
Community团体属性是BGP的私有属性属于可选过渡的属性,在BGP对等体之间传播,且不受AS的限制。
利用团体属性可以使多个AS中的某一组BGP设备共享相同的策略,从而简化路由策略的应用和降低维护管理的难度。
BGP设备在发布路由时,新增或者改变路由的团体属性。
个人注解:团体值,类似Tag,因为Tag只能在IGP协议中使用,BGP中没有Tag字段,但有团体属性。
在所有的BGP路由中,都存在着默认的团体属性,以下是默认的公认团体属性。
团体属性名称 | 团体属性号 | 说明 |
---|---|---|
Internet | 0(0x00000000) | 设备在收到具有此属性的路由后,可以向任何BGP对等体发送该路由。缺省情况下,所有的路由都属于Internet团体。 |
No_Advertise | 4294967042(0xFFFFFF02) | 设备收到具有此属性的路由后,将不向任何BGP对等体发送该路由。 |
No_Export | 4294967041(0xFFFFFF01) | 设备收到具有此属性的路由后,将不向AS外发送该路由。 |
No_Export_Subconfed | 4294967043(0xFFFFFF03) | 设备收到具有此属性的路由后,将不向AS外发送该路由。如果使用了联盟,也不向联盟内其他子AS发布此路由。 |
个人注解:Internet默认,No_Advertise不通告给任何对等体(收到路由后就自己使用),No_Export不外扩(只在自己的AS内传播),NO_Export_Subconfed(不外传的同时也不向内传)。
一个Community属性值的长度为32 bit,可使用两种形式呈现:
1、十进制整数格式。
2、AA:NN格式,其中AA表示AS号,NN是自定义编号。
于路由策略中修改团体属性时,可以看到可选参数:
[AR6-route-policy]apply community ?
INTEGER<0-4294967295> Specify community number
STRING<3-11> Specify aa<0-65535>:nn<0-65535>
internet Internet(well-known community attributes)
no-advertise Do not advertise to any peer (well-known community
attributes)
no-export Do not export to external peers(well-known community
attributes)
no-export-subconfed Do not send outside a sub-confederation(well-known
community attributes)
none No community attribute
以下就做个简单的案例,AR5、AR6都学习到AR9的Loop100路由并引入到IBGP中。
AR2此时会学习到去往AR9环回口开销为2与开销为20的BGP路由,但对于AR2来说,还想进一步的区分这些路由就得借助其它手段。
为了方便,可以在AR6、AR5上配置路由策略,将路由引入BGP时打上规定好的Community团体属性,使得AR2可以快速分辩。
查看路未配置团体属性前的由明细信息
<AR2>dis bgp routing-table 192.168.100.0
BGP local router ID : 2.2.2.2
Local AS number : 100
Paths: 2 available, 1 best, 1 select
BGP routing table entry information of 192.168.100.0/24:
From: 10.1.26.6 (6.6.6.6)
Route Duration: 00h05m48s
Relay IP Nexthop: 0.0.0.0
Relay IP Out-Interface: GigabitEthernet0/0/0
Original nexthop: 10.1.26.6
Qos information : 0x0
AS-path Nil, origin incomplete, MED 2, localpref 100, pref-val 0, valid, internal, best, select, active, pre 255
Not advertised to any peer yet
BGP routing table entry information of 192.168.100.0/24:
From: 10.1.25.5 (5.5.5.5)
Route Duration: 00h05m55s
Relay IP Nexthop: 0.0.0.0
Relay IP Out-Interface: GigabitEthernet0/0/2
Original nexthop: 10.1.25.5
Qos information : 0x0
AS-path Nil, origin incomplete, MED 20, localpref 100, pref-val 0, valid, internal, pre 255, not preferred for MED
Not advertised to any peer yet
配置命令
[AR6]route-policy Community_ospf_100-1 permit node 10
[AR6-route-policy]apply community 100:1
[AR5]route-policy Community_isis_100-2 permit node 10
[AR5-route-policy]apply community 100:2
[AR6]bgp 100
[AR6-bgp]import ospf 1 route-policy Community_ospf_100-1
[AR6-bgp]peer 10.1.26.2 advertise-community
[AR5]bgp 100
[AR5-bgp]import isis 1 route-policy Community_isis_100-2
[AR5-bgp]peer 10.1.26.2 advertise-community
<AR2>dis bgp routing-table 192.168.100.0
BGP local router ID : 2.2.2.2
Local AS number : 100
Paths: 2 available, 1 best, 1 select
BGP routing table entry information of 192.168.100.0/24:
From: 10.1.26.6 (6.6.6.6)
Route Duration: 00h13m40s
Relay IP Nexthop: 0.0.0.0
Relay IP Out-Interface: GigabitEthernet0/0/0
Original nexthop: 10.1.26.6
Qos information : 0x0
Community:<100:1>
AS-path Nil, origin incomplete, MED 2, localpref 100, pref-val 0, valid, intern
al, best, select, active, pre 255
Not advertised to any peer yet
BGP routing table entry information of 192.168.100.0/24:
From: 10.1.25.5 (5.5.5.5)
Route Duration: 00h13m17s
Relay IP Nexthop: 0.0.0.0
Relay IP Out-Interface: GigabitEthernet0/0/2
Original nexthop: 10.1.25.5
Qos information : 0x0
Community:<100:2>
AS-path Nil, origin incomplete, MED 20, localpref 100, pref-val 0, valid, inter
nal, pre 255, not preferred for MED
Not advertised to any peer yet
以上介绍的是如何设置团体属性,而团体属性过滤 Community-Filter则是像ACL一样,用于匹配团体属性。
与ACL一样Community-Filter也有标准(Basic,序号1~99)和高级(Advanced,序号100-199)。
[AR1]ip community-filter ?
INTEGER<1-99> Community-filter number (basic)
INTEGER<100-199> Community-filter number (advanced)
advanced Advanced community-filter
basic Basic community-filter
# 可使用序号创建
ip community-filter 1 permit ......
# 可使用名称创建
ip community-filter basic XXXX permit ......
开始配置过滤ISIS团体属性路由操作:
[AR2]ip community-filter basic Filter_ISIS_Community permit 100:2
先把匹配上团体属性的路由先deny掉,再permit放行其它路由。
[AR2]route-policy Filter_ISIS_Community deny node 10
[AR2-route-policy]if-match community-filter Filter_ISIS_Community
[AR2-route-policy]quit
[AR2]route-policy Filter_ISIS_Community permit node 20
[AR2-route-policy]quit
[AR2]bgp 100
[AR2-bgp]peer 10.1.12.1 route-policy Filter_ISIS_Community export
随着网络越来越大,BGP网络中可能会与多个AS互联且业务路由可能与本地相隔多个AS网络。
AS_Path-Filter(AS路径过滤),是将BGP中的AS_Path属性作为匹配条件的过滤器,利用BGP路由携带的AS_Path列表对路由进行过滤。
关于正则表达式的介绍,在此仅使用到简单基础的几个。
^ 1 # 匹配以1开头的AS路径,如100,1111,100 200等。
2$ # 匹配以2为结尾的AS路径,如12,100 102等。
.* # 匹配所有
100 # 直接填写数字,则是匹配所有存在100的AS路径,如100、100 200、300 100 200。
[100] # 方括号内填写数字,表示只匹配AS路径为100。
配置命令
[AR2]ip as-path-filter ?
INTEGER<1-256> Specify an access-list number
STRING<1-51> Specify an as-path-filter name
[AR2]ip as-path-filter 1 deny "100 200"
# 先放行100 200的,再放行200 300,最后.*拒绝所有
ip as-path-filter 1 permit "100 200"
ip as-path-filter 1 permit "200 300"
[AR2]ip as-path-filter 1 deny .*
[AR2]dis bgp routing-table
Total Number of Routes: 4
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 192.168.1.0 10.1.12.1 0 0 200i
*> 192.168.3.0 10.1.12.1 0 200 300i
^200$的意思是:匹配开头为200的,结尾也为200的,也就是只匹配AS200。
[AR2]ip as-path-filter 1 permit ^200$
[AR2]route-policy Filter_AS200_AS-path deny node 10
[AR2-route-policy]if-match as-path-filter 1
[AR2-route-policy]quit
[AR2]route-policy Filter_AS200_AS-path permit node 20
[AR2-route-policy]quit
因为路由是从AR1进入到AR2中,故绑定的方向为Import。
[AR2-bgp]peer 10.1.12.1 route-policy Filter_AS200_AS-path import
虽然前面有添加了Export的策略,但方向不冲突就不会出现命令覆盖。
peer 10.1.12.1 route-policy Filter_ISIS_Community export
peer 10.1.12.1 route-policy Filter_AS200_AS-path import
如果方向相同,只能绑定一个策略的话,就需要再创建一个新策略,将两个策略进行合并在一起。
[AR2]dis bgp routing-table
Total Number of Routes: 7
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 192.168.3.0 10.1.12.1 0 200 300i
Outbound Route Filtering 输出路由过滤
能将本端设备配置的出口路由策略通过路由刷新报文发送给BGP邻居。
BGP邻居根据本端的出口策略,在路由发送时对路由进行过滤,只发送本端需要的路由。这样不仅避免了本端设备接收大量无用的路由,降低了本端设备的CPU使用率,还有效减少了BGP邻居的配置工作,降低了链路带宽的占用率。
个人注解:通过ORF实现对端发送指定的路由过来,避免发送过多无用的路由。
主要应用于本端设备希望BGP邻居只发送需要的路由,而BGP邻居又不愿意针对不同设备维护不同的出口策略时,可以运用BGP ORF特性(简读:邻居单独为了某个设备创建策略)。
<AR1>dis bgp routing-table
Total Number of Routes: 6
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 192.168.3.0 10.1.13.3 0 0 300i
*> 192.168.31.0 10.1.13.3 0 0 300i
# 例如:匹配192.168.31.0/24的路由
[AR1]ip ip-prefix 1 permit 192.168.31.0 24
[AR1]bgp 200
[AR1-bgp]peer 10.1.13.3 ip-prefix 1 import
[AR1-bgp]peer 10.1.13.3 capability-advertise orf ip-prefix send
peer 邻居 capability-advertise orf ip-prefix 动作
有三种主要动作:both 双向、send 发送、receive 接收。
给邻居绑定前缀列表之后,需要指定该邻居的ORF动作,如send发送本端的前缀列表策略给对端。
而对端需要具备receive接收才能完成这个ORF功能。
绑定策略之后,的确只能接收到指定的路由。
但对端其中是发送了一堆路由过来,而是只是从中过滤出所需的路由,非常占用链路带宽。
<AR1>dis bgp routing-table
Total Number of Routes: 5
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 192.168.31.0 10.1.13.3 0 0 300
<AR3>display bgp routing-table peer 10.1.13.1 advertised-routes
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 192.168.3.0 10.1.13.3 0 0 300i
*> 192.168.31.0 10.1.13.3 0 0 300i
为了减少AR3通告大量无用的路由,故需要开启ORF功能进行辅助
[AR3]bgp 300
[AR3-bgp]peer 10.1.13.1 capability-advertise orf ip-prefix receive
<AR3>display bgp routing-table peer 10.1.13.1 advertised-routes
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 192.168.31.0 10.1.13.3 0 0 300i
由于有些厂商的设备的ORF能力码与RFC规定的能力码不同,因此为了与其他厂商设备互通,可以配置non-standard-compatible参数。
如果不加non-standard-compatible参数,则ORF可能协商失败。