—各种参数,用于BGP的选路,默认bgp协议将比对所有的参数选择唯一的路由;之所有使用大量的参数来选路,是因为可控性—管理员修改各个参数均可干涉选路- - -BGP协议没有优秀的选路算法,故正常BGP协议收敛的路径不一定是最佳路径;
5种公有基本属性,cisco存在一种私有的基本属性;
传播范围 | 默认值 | 数值大优还是小优 |
---|---|---|
不传播 | 0-65535,本地32768,邻居为0 | 大 |
r4(config)#router bgp 2
r4(config-router)#neighbor 3.3.3.3 weight 1
r4(config-router)#end
r4#clear ip bgp * soft
负载分担:到不同目标基于不同路径;基于个别路由进行属性修改
r4(config)#ip prefix-list w permit 2.2.2.0/24
r4(config)#route-map w permit 10
r4(config-route-map)#match ip address prefix-list w
r4(config-route-map)#set weight 1
r4(config-route-map)#exit
r4(config)#route-map w permit 20
r4(config-route-map)#exit
r4(config)#router bgp 2
r4(config-router)#neighbor 3.3.3.3 route-map w in
r4(config-router)#end
r4#clear ip bgp * soft
注:只能在入向调用,因为权重值不传播;
—最常用于干涉IBGP邻居关系下的选路;第一个公有属性;
传播范围 | 默认值 | 数值大优还是小优 |
---|---|---|
IBGP邻居关系间 | 0-255,默认为100 | 大 |
修改方式
r3(config)#router bgp 2
r3(config-router)#bgp default local-preference 101
本地传递给本地所有IBGP邻居时,优先级修改为101;
r3(config)#ip prefix-list l permit 2.2.2.0/24
r3(config)#route-map l permit 10
r3(config-route-map)#match ip address prefix-list l
r3(config-route-map)#set local-preference 101
r3(config-route-map)#exit
r3(config)#route-map l permit 20
r3(config-route-map)#exit
r3(config)#router bgp 2
r3(config-router)#neighbor 4.4.4.4 route-map l out
r3(config-router)#end
r3#clear ip bgp * soft
注:控制层面的出或入口均可,但必须为IBGP邻居关系;
*> 2.2.2.0/24 0.0.0.0 0 100 0 1 i
* 3.3.3.3 0 100 0 1 i
该参数是在传递给EBGP邻居时才添加
作用
1. 用于EBGP水平分割,防止EBGP环路,接收到的条目中存在本地的as号将拒绝接收该条目
2. 用于选路,优选经过的AS数量较少路径
使用方法:
利用AS-path参数干涉选路,在EBGP邻居间传递路由时,人为增加AS号;虽然配置地点必须在EBGP邻居关系间,当也可对IBGP邻居关系的选路造成影响;
配置时,修改a路径,优选b路径;因为数值只能加大
修改方式
r1(config)#ip prefix-list as permit 2.2.2.0/24
r1(config)#route-map as permit 10
r1(config-route-map)#match ip address prefix-list as
r1(config-route-map)#set as-path prepend 3 4 5
r1(config-route-map)#exit
r1(config)#route-map as permit 20
r1(config-route-map)#exit
r1(config)#router bgp 2
r1(config-router)#neighbor 12.1.1.2 route-map as in
r1(config-router)#end
r1#clear ip bgp * soft
注:调用时在控制层面接口的入或出方向,但必须为ebgp邻居关系;
出口调用 x 3 4 5 x为实际经过的AS号;最前方AS号为最后经过的AS号;
入口调用 3 4 5 x
若人为添加的AS号,在网络的后端实际存在,那么将导致这些路由无法进入这些AS;
反复添加已经经过的AS编号
r1(config-route-map)#set as-path prepend 1 1 1
补充
r1(config-router)#neighbor 4.4.4.4 allows-in //邻居4.4.4.4发过来含有自己AS的路由可以接受
分类
修改方式
r1(config)#ip prefix-list o permit 2.2.2.0/24
r1(config)#route-map o permit 10
r1(config-route-map)#match ip address prefix-list o
r1(config-route-map)#set origin ?
egp remote EGP
igp local IGP
incomplete unknown heritage
r1(config-route-map)#set origin egp 2 对端邻居的AS号
r1(config-route-map)#exit
r1(config)#route-map o permit 20
r1(config-route-map)#exit
r1(config)#router bgp 2
r1(config-router)#neighbor 4.4.4.4 route-map o out
r1(config-router)#end
r1#clear ip bgp * soft
- - -BGP协议没有度量,但是可以认为添加度量值,来干涉选路;
最常用于干涉EBGP邻居关系;在AS1上干涉AS2对AS1的选路;
r2(config)#ip prefix-list med permit 2.2.2.0/24
r2(config)#route-map med permit 10
r2(config-route-map)#match ip address prefix-list med
r2(config-route-map)#set metric 1
r2(config-route-map)#exit
r2(config)#route-map med permit 20
r2(config-route-map)#exit
r2(config)#router bgp 1
r2(config-router)#neighbor 12.1.1.1 route-map med out
r2(config-router)#end
r2#clear ip bgp * soft
本质就是metric默认为0,一般只能用于自同一个AS发出路由的不同路径med值比较。只能在两个AS之间传递,不能传给第三个AS
一般用于影响对方as,如果在本AS使用和local-pre相同
使用扩展ping来验证
r2#ping
Protocol [ip]:
Target IP address: 4.4.4.4
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]: 4.4.4.4
% A decimal number between 0 and 3600.
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 2.2.2.2
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]: Record
补充
bgp always-compare-med //开启比较不同AS的med
比较前提–同步被关闭、下一跳可达;均可优
- - -扩展属性中只有极少的属性已经被固定,大部分属性是可以由管理员自己定义的- - -相当于打标记
正常各个厂商的设备不会去传递社团属性,故若需要使用社团属性,必须开启属性的传递性
案例:基于BGP路由的传播范围相关社团属性
r1(config)#route-map com permit 10
r1(config-route-map)#set community no-advertise 定义社团属性
r1(config-route-map)#exit
r1(config)#router bgp 1
r1(config-router)#neighbor 12.1.1.2 route-map com out
r1#clear ip bgp * soft
注:进行以上配置后,社团属性默认不会传递给下一个邻居;必须开启传递性
r1(config)#router bgp 1
r1(config-router)#neighbor 12.1.1.2 send-community 将社团属性发生给该邻居
r1#clear ip bgp * soft
若拓扑中没有小AS,local-as和no-export作用一致
注:社团属性重点在于传递性,应该逐级开启传递
补充
r1(config)#ip bgp-community new-format //开启后,团体值显示为该有显示,而不是数字
用来警告下游路由器路由聚合后产生的路由路径丢失。
BGP支持向BGP邻居传递重叠路由可以选择多种方式
用来通告汇总路由的汇聚路由器 BGP_ID(cisco)
路由反射使用,是路由发起者产生的一个32比特的值,该值是本地路由发起者的RID,如果路由发起者从属性上看到 自己的RID,说明有环路就忽略
路由反射器使用,是路由进过反射器簇ID的一个序号。如果反射器在属性里看到自己的簇ID就说明有环路,忽略
r1(config)#router bgp 10
r1(config-router)#bgp router-id 1.1.1.1
创建名为xxx的peer-group
r1(config-router)#neighbor xxx peer-group
定制xxx的内容
r1(config-router)#neighbor xxx remote-as 2
r1(config-router)#neighbor xxx update-source lo0
r1(config-router)#neighbor xxx ebgp-multihop
r1(config-router)#neighbor xxx send-community
调用xxx到各个邻居
r1(config-router)#neighbor 2.2.2.2 peer-group xxx
r1(config-router)#neighbor 3.3.3.3 peer-group xxx
r1(config-router)#neighbor 4.4.4.4 peer-group xxx
r1(config-router)#neighbor 5.5.5.5 peer-group xxx
注:该协议的问题在于一旦和某个邻居基于peer-group配置,那么与该邻居间的大部分指令均需要在peer-group中进行