ROS VRRP软路由双线组网方式

虚拟路由冗余协议 Virtual Router Redundancy Protocol (VRRP),MikroTik RouteROS

VRRP 协议遵循 RFC 2338

VRRP 协议是保证访问一些资源不会中断,即通过多台路由器组成一个网关集合,如果其中一台路由器出现故障,会自动启用另外一台。两个或多个路由器建立起一个动态的虚拟集合,每一个路由器都可以参与处理数据,这个集合最大不能超过255 个虚拟路由器(可参考虚拟路由协议)。一般现在的路由器都支持该协议。

许多 VRRP 路由器可用组成一个虚拟路由器集合。在一个网络中最大可用支持相同VRID(虚拟路由 ID)255 个。

每个路由器都必须设置一个优先参数,每个 VRRP 配置通一个虚拟的网卡绑定在一个真实的网卡上。VRRP 地址放入虚拟的 VRRP 网卡上。VRRP Master 状态显示为 running 标志,虚拟网卡上的地址被激活,其他属于 backup(即优先级低的 VRRP 路由)停止运行

虚拟路由冗余协议是一种为路由提供高效率的路由选择协议。一个或多个 IP 地址可以

分配到一个虚拟路由上,一个虚拟路由节点应该具备以下状态:

  • MASTER 状态

一个节点回答所有的请求给相应请求的 IP 地址。仅只有一个MASTER 路由器在虚拟路由中。每隔一段时间这个主节点发出 VRRP 广播包给所有backup 路由器。

  • BACKUP 状态

VRRP 路由器监视 Master 路由器的状态。它不会回答任何来至相应 IP 地址的请求,当 MASTER 路由器无法工作时(假设至少三次 VRRP 数据连接丢失),选择过程发生,新的 MASTER 会根据优先级产生。

注:VRRP 不能运行在 VLAN 接口上,VLAN 的接口 MAC 地址于与运行在物理网卡 MAC 地址是不同的 。

以上是关于 VRRP 协议的简介,这里我们利用 VRRP 协议组成双线接入的网络,原理如下:

ROS 允许多个路由器加入一个 VRRP 组,其中 master 路由器负责转发数据,backup路由器处于闲置状态,这样会造成资源浪费。

同时,ROS 允许一个路由器加入多个 VRRP组,故可设置多个备份组来实现负载均衡和冗余。例:


由上图可以看出, ROS1 路由器在组 1 中是 master ,在组 2 中是 backup , ROS2 同理。
一部分计算机网关指向组 1 ,一部分计算机网关指向组 2 ,两台路由器互为备份,在两台正
常时,各自负担一部分流量,当一台出现问题时,另一台会自动补上,数据传输不受影响。
经过以上原理的整理,现在组网实验如下:

电信联通pppoe双线接入,ROS1 ROS2互为备份,网段172.16.1.10-172.16.1.100接入ROS1,

网段 172.16.1.101-172.16.1.201 接入 ROS2。设置如下:先各自配置能正常上网然后进行下面

步骤

ROS 1:
第一步 :interface----vrrp,设置 name,interface,priority(默认 100,设置 110 是为了将这

个路由器设为主路由器),preemption mode 为抢占模式。


继续添加第二个 vrrp :设置 name , interface=lan1 , priority=100 (使其变为组 2 的备份路由
器),其他不变

第二步:设置 IP 地址


ROS 2
第一步、第二步仿照 ROS1 的设置。
只是在设置 vrrp1 的时候 priority=100 , vrrp2 的 priority=110 , 这样,vrrp1 组中 ROS1 是 master 路由器, ROS2 是 backup 路由器, vrrp2 中 ROS1 是 backup 路由器,ROS2 是 master 路由器。
通过以上步骤的设置, ROS1 和 ROS2 就互为备份,负载均衡。
上面的设置是当 lan 和 lan1 出问题的时候,ROS1 和 ROS2 可以平稳的过度,实现内外网互通,
但是当连接外网的网卡出问题时,这个备份方式将出问题,因为拿 ROS1 来说,lan 没问题,
但 wan 口掉线了,vrrp1 建立在 lan 口上,priority 还是 110,这意味着在 vrrp1组中 ROS1 还是
主路由器,这样以 172.16.1.3 为网关的一部分机器将不能上网。为了解决这个问题,我们要建立
wan 口监控,设置方式如下:


因为是通过 pppoe 拨号上网方式,host 的值会经常变,所以还要添加一条计划
任务 system -->scheduler,add name=vrrp1_netwatch,interval 设 1 分钟,
onevent 脚本如下:

vbscript 复制代码
:global new 
:global status 
:set status [/interface get [/interface find name="adsl" ] running] 
:if ($status=true) do={ 
:set new [/ip address get [/ip address find dynamic=yes interface="adsl"] 
address] 
:set new [:pick $new 0 ([:len $new] -3)] 
 /tool netwatch set [/tool netwatch find comment="vrrp1_netwatch"] 
host=$new 
}

Vrrp1 中 ROS1 是主路由器,故在 ROS1 中设置以上内容。
Vrrp2 中 ROS2 是主路由器,仿照以上内容修改一下即可。

好了,今天的教程至此为此。

相关推荐
小蜗牛慢慢爬行35 分钟前
有关异步场景的 10 大 Spring Boot 面试问题
java·开发语言·网络·spring boot·后端·spring·面试
MARIN_shen40 分钟前
Marin说PCB之POC电路layout设计仿真案例---06
网络·单片机·嵌入式硬件·硬件工程·pcb工艺
m0_748240021 小时前
Chromium 中chrome.webRequest扩展接口定义c++
网络·c++·chrome
終不似少年遊*1 小时前
华为云计算HCIE笔记05
网络·华为云·云计算·学习笔记·hcie·认证·hcs
蜜獾云2 小时前
docker 安装雷池WAF防火墙 守护Web服务器
linux·运维·服务器·网络·网络安全·docker·容器
小林熬夜学编程3 小时前
【Linux网络编程】第十四弹---构建功能丰富的HTTP服务器:从状态码处理到服务函数扩展
linux·运维·服务器·c语言·网络·c++·http
Hacker_Fuchen3 小时前
天融信网络架构安全实践
网络·安全·架构
上海运维Q先生3 小时前
面试题整理15----K8s常见的网络插件有哪些
运维·网络·kubernetes
ProtonBase3 小时前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构
fantasy_arch13 小时前
CPU性能优化-磁盘空间和解析时间
网络·性能优化