分类:公认必遵,公认任意,可选过渡,可选非过渡
公认必遵AS_path:
AS_path:可实现防环与路由优选
AS_path分类:AS Sequence,AS set
实验一:R3上输入aggregate命令用于聚合路由,同时加上参数as-set防止环路产生:
[R3-bgp]aggregate 192.168.0.0 16 detail-suppressed as-set
聚合路由前R4的BGP路由:
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn*> 192.168.10.0 10.0.34.3 0 300 100i
*> 192.168.20.0 10.0.34.3 0 300 200?聚合路由后R4的BGP路由:
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn*> 192.168.0.0/16 10.0.34.3 0 300?
聚合路由并配置as_set后R4的BGP路由:
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn*> 192.168.0.0/16 10.0.34.3 0 300 {100 200}?
实验二:修改as path实现路由优选,通过route policy更改as path
修改as path前在R3上查看到的路由信息:
[R3-bgp]dis bgp routing-table
Total Number of Routes: 5
Network NextHop MED LocPrf PrefVal Path/Ogn*> 10.0.12.0/24 10.0.13.1 0 0 100i
* 10.0.23.2 0 0 200i
*> 192.168.0.0/16 127.0.0.1 0 {100 200}i
s> 192.168.10.0 10.0.13.1 0 0 100i
s> 192.168.20.0 10.0.23.2 0 0 200i
疑问:为何去10.0.12.0会路由优先下一跳是10.0.13.1呢?从详细路由信息来看,应该是根据route_id来判断的,route_id越小越优先
[R3-bgp]dis bgp routing-table 10.0.12.0
BGP local router ID : 3.3.3.3
Local AS number : 300
Paths: 2 available, 1 best, 1 select
BGP routing table entry information of 10.0.12.0/24:
From: 10.0.13.1 (1.1.1.1)
Route Duration: 00h48m05s
Direct Out-interface: GigabitEthernet0/0/0
Original nexthop: 10.0.13.1
Qos information : 0x0
AS-path 100, origin igp, MED 0, pref-val 0, valid, external, best, select, acti
ve, pre 255
BGP routing table entry information of 10.0.12.0/24:
From: 10.0.23.2 (2.2.2.2)
Route Duration: 00h37m35s
Direct Out-interface: GigabitEthernet0/0/1
Original nexthop: 10.0.23.2
Qos information : 0x0
AS-path 200, origin igp, MED 0, pref-val 0, valid, external, pre 255, not prefe
rred for router ID
Not advertised to any peer yet
更改as_path有三种方式:additive(追加),overwrite(替换),none overwrite(清空)。推荐第一种additive,并且在哪台设备更改就添加这边设备的AS号,这样可以有效防止更改as_path后产生的环路问题。
在R1上通过route policy来additive as_path,使得访问10.0.12.0的下一跳变更为R2
acl number 2000
permit source 10.0.12.0 0.0.0.255route-policy set-aspath permit node 10
if-match acl 2000
apply as-path 100 additive
route-policy set-aspath permit node 999bgp 100
peer 10.0.13.3
peer 10.0.13.3 route-policy set-aspath export
查看R3路由表,可看到10.0.12.0的下一跳地址变更成了R2
[R3-bgp]dis bgp routing-table
BGP Local router ID is 3.3.3.3
Total Number of Routes: 5
Network NextHop MED LocPrf PrefVal Path/Ogn*> 10.0.12.0/24 10.0.23.2 0 0 200i
* 10.0.13.1 0 0 100 100i
*> 192.168.0.0/16 127.0.0.1 0 {100 200}i
s> 192.168.10.0 10.0.13.1 0 0 100i
s> 192.168.20.0 10.0.23.2 0 0 200i
公认必遵Origin:
标识了BGP路由的起始,根据路由引入BGP的方式不同,分为三种:常见IGP与Incomplete。当去往同一个目的地存在多条不同Origin属性的路由时,在其他条件都相同的情下,将按如Origin的下顺序优选路由:IGP > EGP > Incomplete
起源 | 标记 | 说明 |
IGP | i | 如果路由是由始发的BGP路由器使用network命令注入到BGP的,那么该BGP路由的Origin属性为IGP |
EGP | e | 如果路由是通过EGP学习到的,那么该BGP路由的Origin属性为EGP |
Incomplete | ? | 如果路由是通过其他方式学习到的,则Origin属性为Incomplete(不完整 |
公认必遵Next_hop:
路由器在发布BGP路由时,参数里必须带有Next_hop,而路由器在收到一条BGP路由时,会检查Next_hop的IP地址是否可达,即本路由有没有到达此IP地址的路由信息,若不可达,则这条路由信息则不会加表。
- 边界路由在向EBGP对等体发布某条路由时,会把Next_hop的IP地址设置为本地与对端建立BGP邻居关系的接口IP。
- 边界路由从EBGP对等体收到一条路由后,会传递给IBGP内的其它对等体,而Next_hop的IP地址不变,仍为EBGP对等体与边界路由建立邻居关系的接口IP。但由于IBGP内的路由器可能没有达到EBGP对等体接口的IP路由信息,故导致此条BGP路由失效。但可在边界路由通过命令: peer 10.0.12.2 next-hop-local ,把传递的路由里Next_hop改为自已的接口IP。
- 路由器把本地始发的路由发布给IBGP对等体时,会将该路由信息的下一跳属性设置为本地与对端建立BGP邻居关系的接口地址。
实验三:如图2,更改R1的next-hop为本地
[R1]bgp 100
[R1-bgp]peer 10.0.12.2 next-hop-local
[R1-bgp]peer 10.0.23.3 next-hop-local
可选过滤Local_preference:
用于告诉AS内的路由器,那条路径是离开本AS的最优路径,值越大越优先,缺省为100。
注意事项:
- 此参数只在IBGP对等体间传递,而不在EBGP对等体间传递。
- 路由器在向EBGP对等体发布路由更新时,不携带Local_preference属性,但对方路由收到后,会为此条路由赋值本地缺省local_preference值100,之后再将发布给自己的IBGP对等体,见实验四。
- 路由器在向EBGP对等体发布路由更新时,不携带Local_preference属性,但可以在AS边界路由使用import方向的策略来为从EBGP接收到的路由赋值local_preference,见实验五。
- IBGP内传输路由的local_preference不变(除非受路由策略影响)。
实验四:如图2,通过修改路由器默认的local_preference以改变路径。
更改配置前,查看R1~R3的BGP路由表信息,可看出R2访问10.0.45.0/24网段时从R1出
[R1-bgp]dis bgp routing-table
BGP Local router ID is 1.1.1.1
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn*> 10.0.45.0/24 10.0.14.4 0 0 200i
* i 10.0.23.3 0 100 0 200i[R2]dis bgp routing-table
BGP Local router ID is 2.2.2.2
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn*>i 10.0.45.0/24 10.0.12.1 0 100 0 200i
* i 10.0.23.3 0 100 0 200i
[R3-bgp]dis bgp routing-table
BGP Local router ID is 3.3.3.3
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn*> 10.0.45.0/24 10.0.35.5 0 0 200i
* i 10.0.12.1 0 100 0 200i
[R3-bgp]
更改R3的Local_perference,改变R2访问10.0.45.0/24的路径,使其从R3出
[R3]bgp 100
[R3-bgp]default local-preference 200
查看R1~R3的BGP路由表,可看出配置后R2访问10.0.45.0/24网段时从R3出
[R1-bgp]dis bgp routing-table
BGP Local router ID is 1.1.1.1
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn*>i 10.0.45.0/24 10.0.23.3 0 200 0 200i
* 10.0.14.4 0 0 200i[R2]dis bgp routing-table
BGP Local router ID is 2.2.2.2
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn*>i 10.0.45.0/24 10.0.23.3 0 200 0 200i
[R3-bgp]dis bgp routing-table
BGP Local router ID is 3.3.3.3
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn*> 10.0.45.0/24 10.0.35.5 0 0 200i
实验五:通过路由策略修改local_preference值,从而改变路由选路。
更改配置前,查看R1~R3的BGP路由表信息,可看出R2访问10.0.45.0/24网段时从R1出
[R1-bgp]dis bgp routing-table
BGP Local router ID is 1.1.1.1
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn*> 10.0.45.0/24 10.0.14.4 0 0 200i
* i 10.0.23.3 0 100 0 200i[R2]dis bgp routing-table
BGP Local router ID is 2.2.2.2
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn*>i 10.0.45.0/24 10.0.12.1 0 100 0 200i
* i 10.0.23.3 0 100 0 200i
[R3-bgp]dis bgp routing-table
BGP Local router ID is 3.3.3.3
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn*> 10.0.45.0/24 10.0.35.5 0 0 200i
* i 10.0.12.1 0 100 0 200i
[R3-bgp]
在R3的import方向,调用路由策略,更改进入路由的local_preference值
[R3]acl 2000
[R3-acl-basic-2000]rule permit source 10.0.45.0 0.0.0.255
[R3]route-policy setpre permit node 100
[R3-route-policy]if-match acl 2000
[R3-route-policy]apply local-preference 600
[R3]route-policy setpre permit node 9999
[R3]bgp 100
[R3-bgp]peer 10.0.35.5 route-policy setpre import
更改配置后,查看R1~R3的BGP路由表信息,此时从R5学习到的路由的LocPrf变为了600
[R1]dis bgp routing-table
BGP Local router ID is 1.1.1.1
Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn*>i 10.0.45.0/24 10.0.23.3 0 600 0 200i
* 10.0.14.4 0 0 200i[R2]dis bgp routing-table
BGP Local router ID is 2.2.2.2
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn*>i 10.0.45.0/24 10.0.23.3 0 600 0 200i
BGP Local router ID is 3.3.3.3
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn*> 10.0.45.0/24 10.0.35.5 0 600 0 200i
可选过渡Community:
是一种路由标记,用来简化路由策略的执行。在一个大型网络中所有路由器上如果都需要匹配具有相同属性的路由条目,如果用 ACL 或者 prefix-list 进行匹配,则工作量比较大,所以可以在路由器上为相应的路由条目打上 community 属性值,而在其他路由器上可以通过匹配 community 属性值的方式间接地来匹配路由条目,从而简化了路由条目的匹配工作。
community长度为32bit,4字节,属性格式:
- 十进制整数格式
- AA:NN格式,其中AA代表AS号,NN为自定义
community分自定义与公认团体属性
团体属性名称 | 团体属性号 | 说明 |
Internet | 0(0x00000000) | 设备在收到具有此属性的路由后,可以向任何 BGP对等体发送该路由。缺省情况下,所有的路 由都属于Internet团 |
No_Advertise | 4294967042(0xFFFFFF02) | 设备收到具有此属性的路由后,将不向任何BGP 对等体发送该路由 |
No_Export | 4294967041(0xFFFFFF01) | 设备收到具有此属性的路由后,将不向AS外发送 该路由 |
可选非过渡属性MED:
有
在
在