BGP通过route-policy路由策略调用ip-prefix网络前缀实现负载均衡与可靠性之AS-path属性
一、实验场景
1、loopback0与loopback1模拟企业实际环境中的某个网段。
2、本例目标总公司AR3的1.1.1.1/32网段到分公司AR4的3.3.3.3/32的流量从上方的AS500自治系统走。
3、本例目标总公司AR3的4.4.4.4/32网段到分公司AR4的2.2.2.2/32的流量从下面的AS300、AS400自治系统走。
4、总公司到分公司之间的AS500或AS300、AS400其中一条链路断开后,网络仍可正常运行,确保网络的可靠性。
5、从总公司到分公司的流量以负载均衡的方式在BGP路由中运行。
说明:路由策略与策略路由的区别
1、路由策略主要用于改变网络流量所经过的途径,通过修改路由属性(如可达性)来实现。它是一种智能化的路由方式,能够与路由协议结合,完成策略性的路由选择。路由策略通常指的是在网络中设置特定的规则,以确定数据包的传输路径。路由策略通常使用传统的路由协议和算法,如RIP、OSPF或BGP等。路由策略通过优化路由选择可以提高网络的整体性能和效率。路由策略适用于大多数标准网络环境,特别是在大规模网络中。如:本例中的BGP路由协议实验则是通过路由策略来完成。
2、策略路由则是一种更灵活的数据包路由转发机制,它基于策略进行转发,而不是简单的按路由表顺序进行。策略路由在数据包处理中具有更高的优先级,能够在路由表查找之前根据策略进行转发,这使得它能够更精细地控制数据包的流向。策略路由则是基于一组规则或政策来决定流量的路由,这些规则可能包括源地址、目的地、端口号等。策略路由则可能使用的技术如路由表、访问控制列表(ACL)或特定的路由协议扩展。策略路由则通过精确控制流量实现高效的网络资源利用,但可能需要更多的处理资源。策略路由提供了更高的灵活性和控制能力,适用于需要精细流量管理的复杂网络。如:在企业中有多条公网出口,公网出口的质量有差异,某些重要的业务需要通过ip专线出去,另一些日常网络流量则可通过拨号光纤出去,此时可选择配置策略路由,策略路由的转发优先于路由表。
二、实验拓扑图:
三、BGP的AS_PATH属性作用有:
1、防止BGP环路:当BGP路由器收到一条路由信息时,它会检查该路由信息的AS_PATH属性。如果AS_PATH属性中的某个AS号与路由器自身的AS号相同,那么该路由器就会知道该路由出现了环路,因为需要丢包处理。
2、路由优先级:AS_PATH属性中的AS号数量可以用于标识路由的优先级。一般来说,经过的AS号越少,说明该路由越优先。因此,AS_PATH属性可以根据AS号来判断路由的优先级
四、配置过程
1、【AR1】
System-view
sysname AR1
interface GigabitEthernet0/0/0
ip address 10.1.12.1 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.13.1 255.255.255.0
bgp 300
peer 10.1.12.2 as-number 400
peer 10.1.12.2 ebgp-max-hop 255
peer 10.1.13.3 as-number 100
peer 10.1.13.3 ebgp-max-hop 255
ipv4-family unicast
undo synchronization
peer 10.1.12.2 enable
peer 10.1.13.3 enable
2、【AR2】
System-view
sysname AR2
interface GigabitEthernet0/0/0
ip address 10.1.24.2 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.12.2 255.255.255.0
bgp 400
peer 10.1.12.1 as-number 300
peer 10.1.12.1 ebgp-max-hop 255
peer 10.1.24.4 as-number 200
peer 10.1.24.4 ebgp-max-hop 255
ipv4-family unicast
undo synchronization
peer 10.1.12.1 enable
peer 10.1.24.4 enable
3、【AR3】
System-view
sysname AR3
interface GigabitEthernet0/0/0
ip address 10.1.35.3 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.13.3 255.255.255.0
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
interface LoopBack1
ip address 4.4.4.4 255.255.255.255
bgp 100
peer 10.1.13.1 as-number 300
peer 10.1.13.1 ebgp-max-hop 255
peer 10.1.35.5 as-number 500
peer 10.1.35.5 ebgp-max-hop 255
ipv4-family unicast
undo synchronization
network 1.1.1.1 255.255.255.255
network 4.4.4.4 255.255.255.255
peer 10.1.13.1 enable
peer 10.1.35.5 enable
4、【AR4】
System-view
sysname AR4
interface GigabitEthernet0/0/0
ip address 10.1.46.4 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.24.4 255.255.255.0
interface LoopBack0
ip address 2.2.2.2 255.255.255.255
interface LoopBack1
ip address 3.3.3.3 255.255.255.255
bgp 200
peer 10.1.24.2 as-number 400
peer 10.1.24.2 ebgp-max-hop 255
peer 10.1.46.6 as-number 500
peer 10.1.46.6 ebgp-max-hop 255
ipv4-family unicast
undo synchronization
network 2.2.2.2 255.255.255.255
network 3.3.3.3 255.255.255.255
peer 10.1.24.2 enable
peer 10.1.46.6 enable
5、【AR5】
System-view
sysname AR5
interface GigabitEthernet0/0/0
ip address 10.1.35.5 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.56.5 255.255.255.0
bgp 500
peer 10.1.35.3 as-number 100
peer 10.1.35.3 ebgp-max-hop 255
peer 10.1.56.6 as-number 500
ipv4-family unicast
undo synchronization
peer 10.1.35.3 enable
peer 10.1.56.6 enable
peer 10.1.56.6 next-hop-local
6、【AR6】
System-view
sysname AR6
interface GigabitEthernet0/0/0
ip address 10.1.56.6 255.255.255.0
interface GigabitEthernet0/0/1
ip address 10.1.46.6 255.255.255.0
bgp 500
peer 10.1.46.4 as-number 200
peer 10.1.46.4 ebgp-max-hop 255
peer 10.1.56.5 as-number 500
ipv4-family unicast
undo synchronization
peer 10.1.46.4 enable
peer 10.1.56.5 enable
peer 10.1.56.5 next-hop-local
五、验证网络路径及网络的可靠性
(一)BGP原始路径的验证:
1、在总公司AR3上查看BGP邻居关系与ip路由表中的BGP路由,可以看出到分公司2.2.2.2与3.3.3.3的下一跳都是10.1.35.5,说明从总公司AR3到2.2.2.2与3.3.3.3都是默认从最短的路径AS500到达,默认从源到目标通过的AS自治系统数越少,路径越优。如下图:
2、在总公司AR3上查看BGP路由表,可以看出到达分公司2.2.2.2的有2条路由,其中*>最优路由下一跳是10.1.35.5,而次优路由下一跳是10.1.13.1,如下图:
3、在分公司的AR4上查看BGP邻居关系与ip路由表中的BGP路由,*>最优路由仍是AS500中的10.1.46.6,从AS_PATH路径看,从500 100i到达1.1.1.1,比400 300 100i到达1.1.1.1,要少过一个AS自治系统,如下图:
4、从总公司到分公司之间的AR6的G0/0/0抓包验证从AR3到AR4的网络流量,都是从上面的路径走过,即下面的路径是空闲备用状态,如下图:
从上图可以看出,默认的BGP配置,从总公司AR3到分公司AR4的网络流量都是从AR5和AR6的AS500通过,下面的AR1和AR2是空闲状态,从而网络没有发挥最优的性能。
所以我们要让网络流量从总公司到分公司实现负载均衡,下面使用ip-prefix与route-policy配合完成。
(二)负载均衡的配置及验证:
1、修改总公司AR3的配置:把从总公司AR3到达分公司AR4的2.2.2.2/32的BGP路由建立一条路由前缀ip-prefix,然后在BGP路由中增加一条ipv4-family的单播规则,通过路由策略route-policy调用这个条规划,从入的方向调用。路由策略的配置,满足路由前缀ip-prefix时,应用将AS-PATH属性增加600 800 900这3个AS自治系统号,从而500 200i就会变成600 800 900 500 200i,如下图:
【修改AR3】
bgp 100
ipv4-family unicast
peer 10.1.35.5 route-policy as_path import
route-policy as_path permit node 10
if-match ip-prefix as_path
apply as-path 600 800 900 additive
route-policy as_path permit node 20
ip ip-prefix as_path index 10 permit 2.2.2.2 32
2、从总公司AR3查看BGP路由表及ip路由表中的bgp路由,其中到达分公司2.2.2.2的BGP路由下一跳发生了变化,且经过的AS自治系统号也有变化(是我们在路由策略中应用增加了600 800 900 ),如下图:
3、修改分公司AR4的配置:
【修改AR4】
ip ip-prefix 1 index 10 permit 4.4.4.4 32
route-policy 1 permit node 30
if-match ip-prefix 1
apply as-path 1000 1200 1500 additive
route-policy 1 permit node 40
Bgp 200
ipv4-family unicast
peer 10.1.46.6 route-policy 1 import
4、从分公司的AR4查看ip路由表中的bgp路由,并查看分公司AR4的BGP路由表,从分公司AR4到达总公司AR3的4.4.4.4最优路由*>下一跳已经发生了变化,如下图:
(三)验证目标从上面的链路与下面的链路同时抓包
1、从总公司AR3的1.1.1.1到分公司AR4的3.3.3.3的网络流量路径,与预期目标一致,如下图:
2、从总公司的AR3的4.4.4.4到分公司AR4的2.2.2.2的网络流量路径,与预期目标一致,如下图:
3、有人会说,如果验证总公司AR3的1.1.1.1到分公司AR4的2.2.2.2,或验证总公司AR3的4.4.4.4到分公司AR4的3.3.3.3的结果呢?
解析:
(1)总公司AR3的1.1.1.1到分公司AR4的2.2.2.2的访问网络流量,如下图:
(2)分公司AR4的2.2.2.2到总公司AR3的1.1.1.1回应的网络流量,如下图:
(3)结论:总公司AR3的1.1.1.1到分公司AR4的2.2.2.2访问网络流量与回复网络流量路径是不同的,即request的请求流量与reply的回应流量网络路径不同,网络流量形成了一个环的状态,从上方的AR6的G0/0/0接口抓包,同时也从AR3的G0/0/1接口抓包,如下图:
同理,从总公司AR3的4.4.4.4到分公司AR4的3.3.3.3,请求包的路径与回复包的路径也是不同的。此处不再赘述。
(四)验证某节点物理故障后,网络仍可正常运行:
1、把链路正常情况下,总公司AR3的BGP路由表与ip路由表中的bgp协议路由显示,如下图:
2、把总公司到分公司之间AR5上的G0/0/1接口shutdown后,再从AR3上查看BGP路由表与ip路由表中的bgp协议路由,很明显就少了10.1.35.5的那条路由,但是仍然可以到达2.2.2.2与3.3.3.3的目的网络,如下图:
(1)查看总公司AR3上ip路由表中的bgp协议路由,与BGP 路由表,如下图:
(2)总公司从AR3的1.1.1.1网段到分公司AR4的2.2.2.2网段的路径只有下面一条是正常的,发送的数据包与回应的数据包都从下面的路径走,而不是与之前那样发送与回应的路径 不同,request包与reply包都从同一路径走,如下图:
3、把总公司到分公司之间AR5的G0/0/1接口undo shutdown,后再把总公司到分公司之间AR1的G0/0/0接口shutdown,然后查看总公司AR3上的BGP路由表与ip路由表中的BGP协议路由时,只剩下10.1.35.5的下一跳路由了,被shutdown的接口10.1.13.1的路由自然就不存在
(1)查看AR3的ip路由表中的BGP协议路由,与BGP路由表如下图:
(2)总公司从AR3的4.4.4.4网段到分公司AR4的3.3.3.3网段的路径只有下面一条正常的情况下,发送的数据包与回应的数据包都从下面的路径走,而不是与之前那样发送与回应的路径 不同,request包与reply包都从同一路径走,如下图:
4、结论:从以上验证,说明当链路中某个节点故障后,网络仍可正常运行,总公司到达分公司的网络路径会自动切换到另一条。
通过本次实验,验证了BGP协议通过自身的特性能达到防环的目标,> 表示最优路由,BGP路由表 ,>其下方的一条路由则是次优路由,采用路由策略route-policy调用前缀列表ip-prefix,控制网络流量的AS_PATH属性值 ,实现了总公司与分公司之间链路的流量负载均衡,提高了网络资源的利用率。另外也通过shutdown命令在网络制造故障后,总公司到分公司的网络流量也可以从另一条路径走,提升了网络的可靠性、可用性。