作者:alone_map /
session 1 华为路由器BGP选路
BGP的路由选路是根据路由所携带的属性,和IGP不一样(igp是根据metric),选路的原则就是属性,每个属性的选路优先级不一样,在华为设备中有几个重点选路属性,分别为:bgp协议优先级、下一跳属性、本地优先级属性、AS_path属性、MED属性等。以下面拓扑为例说明bgp的选路:
一、bgp协议优先级,影响不同协议的路由选择。
[AR1]bgp 1
[AR1-bgp]ipv4
[AR1-bgp]ipv4-family unicast
[AR1-bgp-af-ipv4]preference 1 2 10 优先级用于比较不同协议之间的路由选择,值小优先,设置ebgp优先级1,ibgp优先级1,本地创建的优先级。
[AR1-bgp-af-ipv4]quit
[AR1-bgp]quit
[AR1]
二、next-hop下一跳属性,影响ebgp传递给ibgp邻居的路由选择。
路由器将自己从ebgp邻居学到的路由传递给ibgp邻居时,因为下一跳地址没有改变,所以被ibgp邻居标记为路由不可达从而无法进入bgp路由表成为有效路由,需要在路由器上做next-hop属性修改将传递给ibgp邻居的路由的下一跳指向自己。
上述拓扑中R1从自己的ebgp邻居R2学习到100.1.1.1/32,下一跳为12.1.1.2/24的路由,那么他在传递给自己的ibgp邻居R3时默认是不会改变100.1.1.1/32路由的下一跳地址,依然是12.1.1.2/24,当R3收到这条路由时发现下一跳是12.1.1.2/24不可达时就会将这条路由标记为无效路由,无法进入RIB路由表,需要在R1上修改该路由的next-hop属性让传递给R3的100.1.1.1/32的路由下一跳指向自己13.1.1.1/24,从而让R3学到有效的路由。
[AR1]bgp 1
[AR1-bgp]ipv4-family unicast
[AR1-bgp-af-ipv4]peer 3.3.3.3 next-hop-local 传递给3.3.3.3(r-id)的路由下一跳修改为自己
[AR1-bgp-af-ipv4]quit
[AR1-bgp]quit
[AR1]
三、BGP路由首选值(大为优),华为私有,优先级大于其他任何属性,但仅在本地有效。
[AR1]bgp 1
[AR1-bgp]ipv4-family unicast
[AR1-bgp-af-ipv4]peer 3.3.3.3 preferred-value 10 邻居3.3.3.3走的路由首选值改为10(默认为0)让去往100.1.1.1/32从AR3走
[AR1-bgp-af-ipv4]quit
[AR1-bgp]quit
[AR1]
四、Local_Pref本地优先级属性,此属性用于选择离开AS域时做路由的选路,当有多条路径(多个IBGP邻居)通往AS外部的同一个目的地址时用于路由选路,值越大优先级越高,本地有效,此属性表明的是路由器的优先级而不是路由的优先级(只作用于IBGP邻居)。
[AR3]bgp 1
[AR3-bgp]ipv4-family unicast
[AR3-bgp-af-ipv4]default local-preference 200 当需要从AR3去往AS外部的100.1.1.1/32的时候,修改AR3的本地优先级属性,让流量从AR3走
[AR3-bgp-af-ipv4]quit
[AR3-bgp]quit
[AR3]
五、AS_path属性
比较的as_path中包含数字的多少,而不是大小,优选as_path数量少的(100=200=999,但是1 1>100)
as_path的数值只能增加不能减少,并且从某个as出去的路由不能回到该AS了,为了防止环路。比如设置as_path为11 22 33,那么这条路由就不能再传递给as11、as22、as33中的路由器了,所以为了避免as_path的防环机制影响可以将as_path增加数量而不改变数字,如可以修改为11 11 11或者2 2 2 2这种相同数字不同数量的。
范围:EBGP邻居。
规则:优选as_path数量少的。
方向:as_path属性支持双向的。
[AR1]route-policy AR1-AR3 permit node 10 创建路由策略,名称AR1-AR3,模式为允许,策略节点序号为10
[AR1-route-policy]apply as-path 11 11 11 additive 二选一additive参数在原有的AS_path中添加11 22 33三个as_path
[AR1-route-policy]apply as-path 11 11 11 overwrite 二选一overwrite参数把原有的AS_path修改为11 22 33三个as_path
[AR1-route-policy]quit
[AR1]bgp 1
[AR1-bgp]ipv4-family unicast
[AR1-bgp-af-ipv4]peer 3.3.3.3 route-policy AR1-AR3 export 修改as_path用于AR1-AR3的出方向(也可以在AR3上配置AR1-AR3的import入方向)
[AR1-bgp-af-ipv4]quit
[AR1-bgp]
六、路由MED属性,此属性相当于IGP中的metric属性,优选MED值小的为优先路由,MED的值默认为0优先级最大。
[AR1]route-policy AR1-AR3 permit node 10
[AR1-route-policy]apply cost 100 在路由策略中指定路由的cost为100,以变为次优路由
[AR1-route-policy]quit
[AR1]bgp 1
[AR1-bgp]ipv4-family unicast
[AR1-bgp-af-ipv4]peer 3.3.3.3 route-policy AR1-AR3 import 将cost修改为100应用在AR1入方向,AR1收到3.3.3.3的路由的MED修改为100,变为次优,这样因为从2.2.2.2收到的路由的med默认是0,所以去往100.1.1.1/32会从MED值小的AR2走(也可以在AR3上用于export出方向,将AR3发送给AR1的路由的cost修改为100)
[AR1-bgp-af-ipv4]quit
[AR1-bgp]quit
[AR1]
session 2 华为路由器BGP负载均衡
在网络中,到达同一目的通常会存在多条有效路由,但是BGP只会将最优路由发布给对等体(BGP默认不允许负载分担),这一特点会造成无法进行流量的负载分担。形成负载分担的条件要求路由的属性完全一致,否则会根据BGP路由的选路原则(属性)选出最优路由而无法达到负载分担的目的。
[AR1]bgp 1
[AR1-bgp]ipv4-family unicast
[AR1-bgp-af-ipv4]maximum load-balancing 2 配置形成负载分担的最大路由条目数为2条(仅当去往100.1.1.1/32路由在AR2和AR3上的属性一致时生效)
[AR1-bgp-af-ipv4]quit
[AR1-bgp]quit
[AR1]
session 3 BGP路由的团体属性
BGP的团体属性不受AS的限制,由对等体之间相互传递的路由策略。
[AR1]route-policy aaa permit node 10
[AR1-route-policy]apply community no-export 配置bgp路由团体属性为不传递
[AR1-route-policy]quit
[AR1]bgp 1
[AR1-bgp]ipv4-family unicast
[AR1-bgp-af-ipv4] peer 3.3.3.3 route-policyaaa export 使AR1发布给给AR3的BGP路由不再被AR3传递给其他AS
[AR1-bgp-af-ipv4] peer 3.3.3.3 advertise-community 允许将团体属性传递给AR3
[AR1-bgp-af-ipv4] quit
[AR1-bgp]quit