3)AS_SET 为了防环,加入了明细路由AS号的集合,但是明细AS号集合是无序的。 例如300,{200,100},R3汇总时使用了AS_SET命令继承了明细路由的AS_PATH
4)使用route-map修改AS_PATH
通过更改AS_PATH影响选路。R2做如下变更:
(config)# ip prefix-list 10 1.1.1.0/24 (config)# route-map ABC permit 10 (config-route-map)# match ip add pre 10 (config-route-map)# set as-path prepend 666 (config)# neighbor 3.3.3.3 route-map ABC out /对邻居R3出方向挂route-map ABC,影响的是控制层面 备注: R3收到的路由AS-PATH是200,666,i。如果是R3的in方向挂route-map ABC,则是666,200,i。 插入不存在的AS号有风险,万一真的遇到AS666会被拒收,所以可以插入自己的AS号,即200。 5)AS_PATH的几个命令 neighbor 路由来源邻居 allowas-in 几个我的as号 /允许接收包含自己AS号的路由 bgp bestpath as-path ignore /让思科路由器决策过程中忽略AS-path属性 4,NEXT-HOP next-hop结合同步,决定了路由能否打上大于号,即最优。该地址要能访问。 1)来自EBGP邻居R1的路由,自己是R2 R1(AS100)--------R2(AS200) next-hop即为EBGP邻居R1的更新源地址 2)来自IBGP邻居R2的路由,并且是AS外的路由,自己是R3 R1(AS100)--------R2(AS200)--------R3(AS200) next-hop还是EBGP邻居R1的更新源地址,不会发生改变 3)来自IBGP邻居R2的路由,并由AS内BGP路由器引入 如果通过aggregate-address引入,则next-hop等于执行汇总路由器的更新源地址 如果通过network或者重发布引入,那么注入前的IGP下一跳称为BGP的next-hop 如果本地BGP宣告者成了下一跳地址,那么在本地BGP RIB表中下一跳字段就是0.0.0.0。(备注:这段话的意思应该是如果本地产生的即本地network或者aggregate的,那么下一跳就是0.0.0.0,选路原则第三条就是优选本地产生的。但是李桃梅视频中不是很理解这一条,称:优选next-hop为0.0.0.0的路由,实际上不会遇到?因为本地产生又从其他地方传来,意味着环路?) 4)通过next-hop-self可以更改next-hop属性 5)MA网络上的next-hop,如果R1、R2、R3是EBGP邻居关系,来自三个不同的AS,但是他们是连到同一MA网络,则R1传R2,R2传R3后,next-hop仍然为R1。 6)NBMA网络上的next-hop,同MA网络,所以需要注意R3至R1的PVC是通的。 5,LOCAL-PREFERENCE 优先选择local-preference值大的。默认值:100。 local-preference只在AS内部IBGP邻居间传递,影响出AS流量。用来通告给IBGP邻居,怎么离开本AS。 去往同一目的地可以经过不同AS时,由2条路由的local-preference决定。 如果EBGP peer间收到的路由路径属性中携带local-preference,会触发notification报文,造成会话中断。 收到EBGP peer发来的路由更新时,local-preference的值是空的,会赋上默认值100。 本地network的路由、重发布的路由,默认local-preference值也是100。 举例在R1或者R4上做,告诉R3怎么离开本AS去往AS2 方法1:改所有 (config-router)# bgp default local-preference 111 备注:比另一个大就行,改动后show ip bgp有些能显示/有些不能显示,在进程中做不用指定邻居。看不到local preference的可以"show ip bgp 地址/掩码"看到是否起效。 扩展,该命令对下列获取的路由是否起效:a,network;b,EBGP:起效; c,IBGP;d,聚合的路由 方法2:改部分路由 要求R3访问某些网段从R1走,同weight,用map,在R1上做 ip prefix-list 101 permit 2.2.2.0/24 route-map ABC permit 10 match ip add prefix-list 101 set local-preference 111 route-map ABC permit 20 neighbor 3.3.3.3 route-map ABC out 6,COMMUNITY 1)基本概念 可选:路由器有可能不识别该属性 默认不认识,需要打一条命令:neighbor X.X.X.X send-community(让对方认识) 传递性:社团属性只在neighbor的邻居有效,不会继续往下传,要继续往下传还是通过上面的命令 2)route-map中设置属性值 主要包括: no-advertise:携带此属性的路由不会通告给任何BGP邻居 no-export:携带此属性的路由不会传出大AS(联邦之间仍然会传递,联邦内部也会传递) local-AS:携带此属性的路由不会传出小AS(联邦之间也不会传递,联邦内部也会传递,没有联邦即只在本AS传递) 备注:没有做联邦的话no-export和local-as效果是一样的 配置实例: ip prefix-list 11 permit 11.11.11.0/24 route-map test permit 10 match ip add prefix-list 11 set community 100:11 router bgp 100 network 11.11.11.0 mask 255.255.255.0 neighbor 2.2.2.2 remote-as as 200 neighbor 2.2.2.2 send-community neighbor 2.2.2.2 route-map test out 3)使用ip community-list匹配community值 4)在community-list中删除特定的community值 5)COST community 参考红茶三杯笔记 7,MED MED值越小越优先,思科默认MED为0。 用于AS之间影响路由,两条路由来自同一相邻AS才会比较,即AS_SEQUENCE中的第一个AS号相同才会比较。不会跨AS传递。
1)MED值设置方法 IGP引入BGP时关联route-map进行设置 对BGP peer应用in/out方向的route-map进行设置 非route-map(自动)方式:使用network或者redistribute引入IGP时,MED继承IGP的metric;使用aggregate方式引入时,MED为空。 2)MED值的传递 MED值在IBGP之间传递没有问题。 MED值在EBGP之间传递要看路由是否起源自己,如果起源自己则传递,不是起源自己不传递。 3)MED继承IGP的metric network本地IGP,MED继承该IGP的metric network本地直连网段,network本地静态路由,MED值都是0 redistribute本地IGP,MED继承该IGP的metric redistribute本地直连网段,redistribute本地静态路由,MED值都是0 4)其他配置命令 bgp always-compared-med:默认只比较来自同一AS的MED,如果想对所有路径都比较,则开启此命令,要做建议整个AS都做,避免环路。 bgp bestpath med missing-as-worst:默认收到MED属性丢失的配置为0,配此命令则配置为最大值。 set metric-type internal bgp bestpath med confed bgp deterministic-med default metric x 5)举例 R1和R4都把8.8.8.0/24通告给了R2,不做任何策略的话,会比较到第十条,优选routerID较小的R1。 要控制AS2怎么进入AS1访问8.8.8.0/24时,通过修改R1/R4向R2通告路由的MED值。 方法一:所有路由设置med,可控的只有AS1,AS2是看不到的。(待实验,貌似没有方法二?) 1)写MAP: route-map MED set metric X 2)调用:neighbor 12.1.1.2 route-map MED out 验证方法:带源地址的ping,debug ip bgp updates 8,Atomic_Aggregate及aggregator Atomic_Aggregate是公认自决属性;aggregator是可选可传递。 用于提示做了汇总路由的始发AS和始发路由器。 如果加上了as_set则路由已经包含明细路由的AS号,这2个属性就没有了。 9,Originator_ID和Cluster_list 是RR使用的可选非传递属性,用来防止环路。 Originator_ID:本AS中路由发起方的IBGP RouterID。 Cliuster_list:RR在反射路由的时候会创建或更新Cluster_list,下面几种情况,RR不会创建该属性:RR始发的路由;向EBGP邻居发送路由时清除该属性;从EBGP邻居收到反射给client/非client时不会创建。 1)取值示例 注意,originator_id是R2,cluster_list是R3 2)cluster_id可以影响BGP选路,优选经过cluster_id少的路径。 10,Weight 思科私有,作用范围是本路由器(不传递),不会被包含在update消息中,不会传递给任何BGP邻居。 1)weight的值 weight值越大越优先。 从其他邻居学来的默认为0 本地network的是32768 本地重发布直连、重发布静态的是32768 本地汇总的BGP路由是32768 总结:从邻居学来0,自己的32768 2)举例 如上图,R2上有路由,传播至R3,在R3做,设置路由的weight值,决定是通过R1/R4访问R2 方法一:改所有 (config-router)# neighbor 地址A weight X /这里地址A是R1或R3的更新源地址吗?待确认 方法二:改部分路由 要求R3访问某些网段从R1走,用map(ACL,prefix-list) eg: ip prefix-list 2 permit 2.2.2.0/24 route-map ABC permit 10 match ip address prefix-list 2 set weight 3 route-map ABC permit 20 neighbor 1.1.1.1 route-map ABC in /提供了weight值,优先从R1走 11,BGP选路原则 前提条件:1)同步,2)下一跳。即有2条最优路(大于号)时才会涉及到选路。此外如果被入方向BGP策略拒绝+soft reset,或者damped,也不会涉及选路。 研究BGP属性需要着重分析点:传播范围,默认值,越大越好/越小越好 11.1,概述 BGP路由信息库RIB,包含三个部分: Adj-RIBs-IN:来自对端的,未经处理的消息 Loc-RIB:经过本地策略后使用的路由 Adj-RIBs-OUT:传递给对端的路由 BGP的决策过程,即对Adj-RIBs-IN中的路由使用本地策略,并将选定或修改的路由放到Loc-RIB和Adj-RIBs-out中。 11.2,选路原则 1)weight(越大越好):本路由器上的路由优先级 2)local-preference(越大越好):发给IBGP邻居,怎么离开本AS 3)起源于本地(如network或aggregate的,即下一跳是0.0.0.0,以下依次递减:default-originate,default-information-originate,network,redistribute,aggregate-address) 4)AS-PATH(越短越好) 5)origin属性(i>e>?) 6)MED(相当于IGP的metric,越小越好):告知EBGP邻居,怎么进入本AS 7)EBGP邻居优于IBGP邻居(联邦中也是) 这条指的是同一条路由从BGP学到,可以是IBGP也可以是EBGP,不会根据AD值优选EBGP,而是要根据选路原则逐条判断,比到这一步时还会优选EBGP。 AD值只用于同时从不同协议,IGP和BGP比。 8)优选最近的IBGP邻居 9)基本用不到(优选最老EBGP邻居传来的路由) 10)比较route-id(越小越好) 特殊情况: 11)有RR时,优选Cluster-id最短的 12)如果还是比较不出 ,即同一个邻居建了多条链路,优选ip地址最小的 常用的只有weight,local-preference,med这3个属性。 11.3,BGP的负载均衡 1)等价负载均衡 如果选路原则1~8相同,并且在BGP进程下面配置了maximum-paths {ibgp} n,n取2~6,可以配置对EBGP邻居、IBGP邻居执行负载均衡。 BGP表中只会优选一条,但放入路由表有2条。 EBGP等价负载均衡只有对来自对一AS的不同EBGP邻居的路由才有效,来自不同EBGP邻居的路由无效。 2)非等价负载均衡(待修订补充) neighbor 2.2.2.2 dmzlink-bw send-community 12,BGP选路环路问题案例
1267属于AS123,345属于AS456,23和56分别建立EBGP邻居关系,26向AS456注入默认路由,R4向AS123宣告一条4.4.4.4的路由,26分别执行双向重分布,且ospf外部路由也重分布到BGP,正常情况下: R2的BGP表:最后比到第7条,EBGP邻居优于IBGP邻居 R6的BGP表:最后比到第7条,EBGP邻居优于IBGP邻居 工作正常 R2和R3之间的链路断开后 R2从EBGP邻居学不到该路由了,但R6的BGP学到了该路由,然后重发布到OSPF R6从OSPF学到该路由,优选了该路由?
又重发布回OSPF....
R2又变为
R6又变为:
最后路由出现了环路,造成R1 trace R4的报文在R2和R6之间环路,所以重发布时带上OSPF外部路由可能会出问题。
转载于:https://www.cnblogs.com/guxh/p/8467766.html
相关资源:BGP01-BGP属性实验1