VRRP+BFD+NAT双出口组网配置案例
一、组网需求及网络拓扑结构图
二、配置
路由器R1配置:
<Huawei>sys
[Huawei]sysname R1 //更改交换机名
[R1]undo info-center enable //关闭信息中心功能
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.1.253 24 //配置端口IP地址
[R1-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.1.254 //将端口加入vrrp,配置vrrp 组名(组名为1),以及虚拟地址
[R1-GigabitEthernet0/0/0]vrrp vrid 1 priority 109 //设置vrrp优先级为109,默认为100,优先级大的为主设备
[R1-GigabitEthernet0/0/0]vrrp vrid 1 track interface g0/0/2 reduce 10 //监视端口g0/0/2状态,如果断开则减少vrrp 1的优先级,
//使其变为备设备
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip address 10.1.1.1 24
[R1-GigabitEthernet0/0/1]int g0/0/2
[R1-GigabitEthernet0/0/2]ip address 10.2.2.1 24
[R1-GigabitEthernet0/0/2]quit
-- 配置bfd,监控R1<——>R3的链路通断情况
[R1]bfd //全局开启bfd功能
[R1-bfd]quit
[R1]bfd bfd10 bind peer-ip 10.1.1.2 //配置bfd会话名为bfd10,并绑定对端IP
[R1-bfd-session-bfd10]discriminator local 1 //配置bfd会话的本地标识符
[R1-bfd-session-bfd10]discriminator remote 2 //配置bfd会话的对端标识符
[R1-bfd-session-bfd10]commit //提交命令,bfd会话配置完成后需要手动提交生效
[R1-bfd-session-bfd10]quit
[R1]ip route-static 0.0.0.0 0 10.1.1.2 track bfd-session bfd10 //配置静态缺省路由并绑定bfd会话,被监测的链路断开,此条
//静态缺省路由会从路由表中自动删除
[R1]ip route-static 0.0.0.0 0 10.2.2.2 preference 90 //配置另一条静态缺省路由,并将优先级调高至90,路由默认优先级为60,
//优先级越小越优先,被监测的链路正常,此条静态缺省路由不生效
[R1]qui
<R1>sa
路由器R2配置:
<Huawei>sys
[Huawei]sysname R2
[R2]undo info-center enable
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 192.168.1.252 24
[R2-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.1.254 //将端口加入vrrp,配置组名(需与R1配置组名相同,vrrp协议
//是根据组名匹配的)、虚拟IP
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 2.2.2.1 24
[R2-GigabitEthernet0/0/1]quit
[R2]acl 2000 //配置基本访问控制列表(编号范围2000~2999)
[R2-acl-basic-2000]rule 5 permit source any //匹配任意原地址(permit应理解为匹配,deny应理解为不匹配)
[R2-acl-basic-2000]int g0/0/1
[R2-GigabitEthernet0/0/1]nat outbound 2000 //将acl 2000中匹配的流量中的源地址转换成该接口的IP地址
[R2-GigabitEthernet0/0/1]quit
[R2]qui
<R2>sa
路由器R3配置:
<Huawei>sys
[Huawei]sysname R3
[R3]undo info-center enable
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]ip address 10.1.1.2 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip address 11.1.1.1 24
[R3-GigabitEthernet0/0/1]quit
[R3]bfd
[R3-bfd]quit
[R3]bfd bfd10 bind peer-ip 10.1.1.1
[R3-bfd-session-bfd10]discriminator local 2
[R3-bfd-session-bfd10]discriminator remote 1
[R3-bfd-session-bfd10]commit
[R3-bfd-session-bfd10]quit
[R3]acl 2000
[R3-acl-basic-2000]rule 5 permit source any
[R3-acl-basic-2000]int g0/0/1
[R3-GigabitEthernet0/0/1]nat outbound 2000
[R3-GigabitEthernet0/0/1]quit
[R3]ip route-static 192.168.1.0 24 10.1.1.1 //配置回程路由
[R3]qui
<R3>sa
路由器R4配置:
<Huawei>sys
[Huawei]sysname R4
[R4]undo info-center enable
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip address 10.2.2.2 24
[R4-GigabitEthernet0/0/0]int g0/0/1
[R4-GigabitEthernet0/0/1]ip address 3.3.3.1 24
[R4-GigabitEthernet0/0/1]quit
[R4]acl 2000
[R4-acl-basic-2000]rule 5 permit source any
[R4-acl-basic-2000]int g0/0/1
[R4-GigabitEthernet0/0/1]nat outbound 2000
[R4-GigabitEthernet0/0/1]quit
[R4]ip route-static 192.168.1.0 24 10.2.2.1 //配置回程路由
[R4]quit
<R4>sa
路由器Net1配置:
<Huawei>sys
[Huawei]sysname Net1
[Net1]undo info-center enable
[Net1]int g0/0/0
[Net1-GigabitEthernet0/0/0]ip address 11.1.1.2 24
[Net1-GigabitEthernet0/0/0]int g0/0/1
[Net1-GigabitEthernet0/0/1]ip address 3.3.3.2 24
[Net1-GigabitEthernet0/0/1]quit
[Net1]qui
<Net1>sa
路由器Net2配置:
<Huawei>sys
[Huawei]sysname Net2
[Net2]undo info-center enable
[Net2]int g0/0/0
[Net2-GigabitEthernet0/0/0]ip address 2.2.2.2 24
[Net2-GigabitEthernet0/0/0]quit
[Net2]qui
<Net2>sa
三、实验结果验证
正常情况下
ping 11.1.1.2 通
ping 3.3.3.2 不通
ping 2.2.2.2 不通
断开R1<——>R3
ping 11.1.1.2 不通
ping 3.3.3.2 通
ping 2.2.2.2 不通
恢复R1<——>R3,断开R1<——>R4 或者 断开R1<——>R3,断开R1<——>R4
ping 11.1.1.2 不通
ping 3.3.3.2 不通
ping 2.2.2.2 通
PS:
一、BFD——Bidirectional Forwarding Detection双向转发检测是一套全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。
① BFD提供了一个通用的、标准化的、介质无关、协议无关的快速故障检测机制,可以为各上层协议如路由协议、 MPLS 等统一地快速检测两台路由器间双向转发路径的故障。
② BFD在两台路由器上建立会话,用来监测两台路由器间的双向转发路径,为上层协议服务。
③ BFD本身并没有发现机制,而是靠被服务的上层协议通知其与谁建立会话,会话建立后如果在检测时间内没有收到对端的BFD 控制报文则认为发生故障, 通知被服务的上层协议,上层协议进行相应的处理.
【BFD的建立过程】
①上层协议通过自己的Hello机制发现邻居并建立连接
②上层协议在建立了新的邻居关系时,将邻居的参数及检测参数都(包括目的地址和源地址等)通告给BFD
③ BFD根据收到的参数进行计算并建立邻居
【故障出现时的处理方式】
①BFD 检测到链路/网络故障
②拆除BFD邻居会话
③BFD通知本地上层协议进程BFD邻居不可达
④ 本地上层协议中止上层协议邻居关系
⑤如果网络中存在备用路径,路由器将选择备用路径
注:BFD 草案中没有规定检测的时间精度,目前支持 BFD 的设备大多数提供的是毫秒级检测
二、VRRP——Virtual Router Redundancy Protocol虚拟路由冗余协议,就是专属为三层网络设备服务,为终端用户提供网关的冗余,避免因为三层网关设备单点故障导致终端用户的通信失败。
【VRRP原理概述】
多台网关设备运行VRRP协议通过VRRP报文按照各自优先级选举出最优网关设备定义为Master网关,Master网关为终端用户提供。虚拟的网关IP地址和虚拟的MAC地址,其他网关设备作为主网关设备的备份(Backup),当主网关设备故障后备份网关设备中优先级最高的备份网关接管虚拟网关地址,为终端用户继续提供跨网段服务,主备切换后无需在用户端修改用户的网关IP,从而实现网关地址的备份。
VRRP目前有2个版本,华为设备默认运行的我是VRRP -V2版本,VRRP的V2只支持IPv4协议;VRRP-V3版本既支持IPv4也支持IPv6协议。
【网关设备的接口配置VRRP步骤】
①指定VRRP编组VID(互相备份处于同网段的网关设备处于同一个VID编组)
②指定VID编组下对应的V-IP地址(V-IP地址是虚拟的网关地址,终端用户使用的网关地址)
③指定本GW设备的在此VID编组下的优先级(优先级参数的设定影响此GW是否可以成为此VID编组内的Master—主网关设备)
【网关上行链路故障——直接感知】
本例中如果路由器R1的两条上行链路为主备链路,可以主备切换,但如果两条上行链路都故障的情况下,因为路由器R1上VRRP自身检测的下行链路是完好的,所以路由器R1仍为VRRP主网关设备,所有上行流量仍然会发送至R1上,而不会自动切换到备网关设备R2上走,导致网络中断。
针对这样的问题我们可以利用路由器自带的Track来检测本地连接外网的出接口状态——这里的路由器R1的G0/0/2接口,如果发现本地检测接口故障或者状态进入down,VRRP协议会降低设备的优先级,这样上行链路正常的备份设备就可以成为主网关。
【网关上行链路故障——间接感知】
有些情景下网关去往运营商链路物理距离较长,中间隔了很多中继设备,如果是中继链路故障,网关的本地接口是感知不到的。
需要借助第三方协议来检测链路是否存在通信故障,并且将检测结果和VRRP协议做联动,实现主备的快速切换。这时可以采用BFD—双向检测协议来实现链路的检测。
三、Track,主要用于实现联动功能
联动功能由检测模块、Track模块和应用模块三部分组成。
联动功能 :建立联动项,实现不同模块之间的联动、即由监测模块通过Track模块触发应用模块执行某种动作。
检测模块:负责对链路状态、网络性能等进行探测,并通过track模块(位于应用模块和检测模块之间,主要功能告知应用模块)将探测结果告知应用模块。
检测模块:包括 NQA(网络质量分析)、BFD(双向转发检测)和接口管理(用来监视物理接口状态或网络层协议状态、物理接口或网络层协议)。
Track模块与监测模块联动
通过配置,建立Track模块与监测模块之间的联动关系。监测模块负责对接口状态、链路状态等进行探测,并将探测的结果告知给Track模块,以便改变Track项的状态(物理接口UP时,Track项状态为Positive,表示探测成功;物理接口DOWN时,Track项状态为Negative,表示探测失败)。应用模块得知网络状态变化后,进行相应的处理,从而避免通信中断。
四、ACL——Access Control List访问控制列表,主要用于实现访问控制,及抓取流量供其他技术调用。
①按出入栈不同分类:
入栈ACL:在网络入口处对数据包进行检查,如果被deny,则不需要路由,如果包被permits然后进行路由。
出栈ACL:进入路由器的包被路由后进行outbound接口,然后进行Outbound访问列表匹配。
②其他分类
标准ACL(standard):检查数据包的源地址,编号范围:2000~2999。
扩展ACL(extebded):检查数据包的源地址、目的地址、特定的协议、端口号码以及其它参数,编号范围:3000~3999。
【逻辑测试过程】
如果数据包与ACL中某条语句匹配,则列表中其它语句会被忽略;
如果数据包与某个命令不匹配,则继续检查ACL下一个命令语句;
如果到达ACL的最后一条命令扔不匹配,数据包会被丢弃。
【注意事项】
使用ACL要小心,至少ACL中有一条允许语句;
ACL命令是按照顺序匹配生效的,当检测到某个命令条件满足的时候,就不会再检测后面的指令条件;
ACL只能过滤通过路由器的数据流量,不能过滤路由器本省产生的数据流量。
五、NAT——Network Address Translation网络地址转换技术,主要用于在不同网络之间转换IP地址。它主要解决了IPv4地址短缺的问题,同时也可以增强网络安全性和提高网络性能。通过在路由器或防火墙设备上配置NAT,可以实现私有网络和公共网络之间的IP地址转换,从而隐藏内部网络的真实拓扑结构。
【NAT 技术类型】
静态 NAT:一对一映射,将一个私有IP地址映射到一个公共IP地址。
动态 NAT:动态分配公共IP地址给私有IP地址,使得多个私有IP地址可以共享少量公共IP地址。
PAT(端口地址转换):通过修改源端口号或目的端口号,实现多个内部主机共享一个公共IP地址。
源NAT:在NAT转换时,仅对报文中的源地址进行转换,主要应用于私网用户访问公网的场景。当私网用户主机访问Internet时,私网用户主机发送的报文到达NAT设备后,设备通过源NAT技术将报文中的私网IPv4地址转换成公网IPv4地址,从而使私网用户可以正常访问Internet。
目的NAT:在NAT转换时,仅对报文中的目的地址和目的端口号进行转换,主要应用于公网用户访问私网服务的场景。当公网用户主机发送的报文到达NAT设备后,设备通过目的NAT技术将报文中的公网IPv4地址转换成私网IPv4地址,从而使公网用户可以使用公网地址访问私网服务。
双向NAT:在转换过程中同时转换报文的源信息和目的信息。双向NAT不是一个单独的功能,而是源NAT和目的NAT的组合。双向NAT是针对同一条流,在其经过设备时同时转换报文的源地址和目的地址。双向NAT主要应用在同时有外网用户访问内部服务器和私网用户访问内部服务器的场景。
【NAT 工作原理】
内部主机发送数据包到外部网络时,数据包首先到达 NAT 设备。
NAT 设备根据配置规则,将源IP地址和端口号进行转换。
NAT 设备将转换后的数据包发送到外部网络。
外部网络返回响应数据包时,NAT 设备将目的 IP 地址和端口号进行逆转换,再将数据包发送回内部网络。