公认属性:所有BGP路由器都必须识别并支持的属性。
可选属性:不要求所有的BGP路由器都能够识别的属性。
起源属性:表示BGP路由的来源,也用来防止BGP重发布成环。
Origin的3种属性:
3种Origin属性的优先级为: i>e>Incomplete ( ?
)。
用途:
1.查看路由经过的AS路径的顺序(左边是最近经过的AS号)
2.防环,bgp不接收携带有自己AS号的路由用来防止AS之间路由环路
3.选路,bgp会选择AS-path短的路由为最优路由
as-override命令可以把路由中对方邻居的AS号改为自己的AS号,从而让对方接受含有对方AS号
的路由
allowas-in命令可以把对方路由中含有自己AS号的路由过滤掉,从而接受对方含有自己AS号的
路由
fake-as命令可以修改自己通告出去的AS号
netx-hop:该属性表示路由的下一跳
local-preference:该属性用于选路,优选本地优先级大的路由。
**Local_ Pref属性仅在IBGP邻居之间有效,不通告给其他AS。**它表明路由器的BGP优先级,值越大越优。
Local_ Pref属性用于判断流量离开AS时的最佳路由。当BGP路由器通过不同的IBGP邻居获得目的地址相同但下一-跳不同的多条路由时,将优先择L ocal Pref属性值较高的路由,其默认值为100。
案例1:
AS100去往AS200选择RTC,做法:调整RTC的默认本地优先级为100 (默认值)以上,那么从RTC通告出去给本地AS的路由优先级都会设置为100以上这个值。
[RTC-bgp]defau1t local-preference 200
在RTC上设置ip-prefix匹配200.0.0.0/24的路由,使用route- policy调用该ip- prefix ,并设置Local- Preference为200 ,将策略应用在对RTA发布路由的export方向。
使用前置列表抓取路由
ip ip-prefix loc index 10 permit 200.0.0.0 24
#
使用route-policy设置本地优先级属性
route-policy local permit node 10
if-match ip-prefix loc
apply local-preference 200
#
route-policy local permit node 20
#
将策略运用
peer 10.1.13.1 route-policy local export
#
MED ( Multi-Exit-Discriminator )属性仅在相邻两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三三方AS ,用于判断流量进入AS时的最佳路由。
该属性适合对EBGP邻居施加选路影响
注:该属性默认只能用于两个AS之间的选路
在R2上设置ip-prefix匹配200.0.0.0/24的路由,再设置route-policy调用该ip-prefix ,并设置MED为100 ,将策略应用在对RTC发布路由的export方向。
peer 10.1.24.2 route-policy med export
#
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 10.1.12.0 0.0.0.255
#
route-policy med permit node 10
if-match ip-prefix MED
apply cost 100
#
route-policy med permit node 20
#
ip ip-prefix MED index 10 permit 1.1.1.0 24
#
注:该属性默认只能用于两个AS之间的选路。不能传给第三个AS。
如果要让上述MED生效需要如下命令:
[R4-bgp ] compare-di fferent-as -med
community:是一个给路由做标记的属性类似igp中tag, 只不过概述比igp的tag更加高级,该属性的传递需要开启一个命令advertise-community
作用:
公认社团属性:
扩展的团体属性用一组4字节为单位的列表来表示,路由器中扩展的团体属性格式为aa:nn或团体号;
aa∶nn中,a通常为AS编号,nn是管理员定义的团体属性标识;
团体号范围为0-4294967295,在RFC1997中,0-65535与4294901760-4294967295为
预留值,
R1
#
bgp 10
peer 10.1.13.2 as-number 12
#
network 10.1.10.0 255.255.255.0
peer 10.1.13.2 enable
peer 10.1.13.2 route-policy com export
peer 10.1.13.2 advertise-community
#
route-policy com permit node 10
if-match ip-prefix 10
apply community 10:12
#
route-policy com permit node 20
#
ip ip-prefix 10 index 10 permit 10.1.10.0 24
#
R2
#
bgp 11
peer 10.1.23.2 as-number 12
#
network 10.1.11.0 255.255.255.0
peer 10.1.23.2 enable
peer 10.1.23.2 route-policy com export
peer 10.1.23.2 advertise-community
#
route-policy com permit node 10
if-match ip-prefix com
apply community 11:12 additive
#
route-policy com permit node 20
#
ip ip-prefix com index 10 permit 10.1.11.0 24
#
R3
#
bgp 12
peer 10.1.13.1 as-number 10
peer 10.1.23.1 as-number 11
peer 10.1.34.2 as-number 13
#
aggregate 10.1.0.0 255.255.0.0 detail-suppressed attribute-policy com
peer 10.1.13.1 enable
peer 10.1.13.1 advertise-community
peer 10.1.23.1 enable
peer 10.1.23.1 advertise-community
peer 10.1.34.2 enable
peer 10.1.34.2 route-policy noex export
peer 10.1.34.2 advertise-community
#
route-policy noex permit node 10
if-match community-filter 100
apply community no-export
#
route-policy noex permit node 20
#
route-policy com permit node 10
apply community 10:12 11:12
#
route-policy com permit node 20
#
ip community-filter 100 permit 1.:12
#
IGP的汇总可分为三部:
BGP默认不会执行上述3操作,主要是因为bgp的汇总默认不会继承明细的属性,而属性是bgp路由防环的依据,丢失as-path和orgin属性都可能导致出环。
如何避免环路:
Preference_Value是BGP的私有属性(华为私有属性),Preference_Value相当于BGP选路规则中Weight值,仅在本地路由器生效。
Preference_Value值越大,越优先。
Originator_ID属性
Originator ID由RR产生,使用的Router ID的值标识路由的发送者,用于防止集群内产生路由环路。
Cluster_List属性
路由反射器和它的客户机组成一个集群(Cluster)。在一个AS内,每个路由反射器使用唯一的 Cluster ID作为集群标识。
BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况:
BGP计算路由优先级的规则如下:
在使用路由聚合时需要注意,自动聚合只能对引入的BGP路由进行聚合,手动聚合可以对存在于BGP路由表中的路由进行聚合,后续在BGP路由聚合中详细介绍。上述场景中 ,因为需要聚合的路由都是引入的路由,所以使用自动聚合与手动聚合都可以实现聚合的目的。如果BGP路由表中既有引入的路由又有network宣告的路由时,只能采用手动聚合实现。
解决方案:
在RTC.上将AS 100和AS 200内的明细路由聚合成10.1.8.0/21的一条路由,并将此聚合路由发布给Client AS.
现在Internet_上的路由条目数量众多,处理这些路由时存在以下问题:
因此,通过路由聚合来节省内存和带宽资源,减少路由震荡带来的影响成为必然。
自动聚合只对引入BGP的路由进行聚合,聚合到自然网段后发送给邻居。
手动聚合对BGP本地路由表里存在的路由进行聚合,并且能指定聚合路由的掩码。
为了解决BGP路由聚合带来的问题,设置了两个AS_Path属性∶
AS_Path属性有两种类型∶
AS_Path本身是一个有序的列表,因为AS_Path每经过一个AS都会将AS号添加到AS_Path中,并且按经过的顺序从左到右排列。
当发生聚合后,如果需要聚合路由携带所有明细路由经过的AS号来防止环路,则在配置聚合的命令后添加as-set参数。
路由聚合解决了两类问题,一是减轻了设备传输和计算路由所需资源的负担,二是隐藏了具体的路由信息,减少了路由震荡的影响。但是路由聚合后,AS_Path属性丢失,存在产生环路的风险。
如果路由聚合后携带所有明细路由经过的AS信息,当明细路由发生频繁震荡时,聚合路由也可能受其影响频繁刷新。
因此,聚合路由是否携带丢失的AS_Path信息,需要设计者综合考虑网络环境。