VRRP原理和路由器链路备份(华为设备)
笔者是第一次撰写博客文,目的也是为了弥补自己不善于整理笔记而做的‘备份’吧。这是一个简单的实验,为了讲述内网vrrp和外网链路备份的原理。使用的是华为的eNSP模拟平台。(思科的好像不叫vrrp)。
//(FROM 百度百科) 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及及时在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。
//可以看到下图。简单来说就是内网的主机公用的是一个网关的。但是我们的理解中网关其实就是一个路由器上所配置的ip地址。其实事实也是这样,但是若是我们所连的路由器坏了,网关也就一并挂掉了。vrrp的设计就是防止这样的事情出现。就是图下有两个交换机共同连入我们的内网,两台交换机有自己的真实ip,但是同时也设定一个虚拟ip。就相当于两个路由器合并成了一个,这样一来坏了一个不要紧,我可以从另一个走。以此来避免这种断网的尴尬。
先按图示摆好设备。是三层交换机哦。然后PC1/2的ip和网关手动配置一下。接下来我们就来验证一下vrrp的功能了。其实这里我们一台机子就可以,但是我还是要拿两台机子来说!不同vlan!我的设计思路是PC1主要走路由器LSW3,PC2走LSW2。坏了再换着走。
undo terminal monitor //关闭提示信息
Info: Current terminal monitor is off.
system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sys S1 //改个名好认
[S1]vlan batch 10 20 //创建vlan 10 和20,(如果内网的交换机共联都需要设置哦)
Info: This operation may take a few seconds. Please wait for a moment...done.
[S1]interface Ethernet 0/0/1
[S1-Ethernet0/0/1]port link-type access
[S1-Ethernet0/0/1]port default vlan 10
[S1-Ethernet0/0/1]interface Ethernet 0/0/2
[S1-Ethernet0/0/2]port link-type access
[S1-Ethernet0/0/2]port default vlan 20 //以上都是进入接口设置接口模式 (PC机和交换机)
[S1]interface Ethernet 0/0/13
[S1-Ethernet0/0/13]port link-type trunk
[S1-Ethernet0/0/13]port trunk allow-pass vlan all
[S1-Ethernet0/0/13]interface Ethernet 0/0/12
[S1-Ethernet0/0/12]port link-type trunk
[S1-Ethernet0/0/12]port trunk allow-pass vlan all
[S1-Ethernet0/0/12]q //以上都是进入接口设置接口模式 (交换机和交换机)
[S1]dis port vlan // 查看vlan端口信息
Port Link Type PVID Trunk VLAN List
-------------------------------------------------------------------------------
Ethernet0/0/1 access 10 -
Ethernet0/0/2 access 20 -
Ethernet0/0/3 hybrid 1 -
Ethernet0/0/4 hybrid 1 -
Ethernet0/0/5 hybrid 1 -
Ethernet0/0/6 hybrid 1 -
Ethernet0/0/7 hybrid 1 -
Ethernet0/0/8 hybrid 1 -
Ethernet0/0/9 hybrid 1 -
Ethernet0/0/10 hybrid 1 -
Ethernet0/0/11 hybrid 1 -
Ethernet0/0/12 trunk 1 1-4094
Ethernet0/0/13 trunk 1 1-4094
Ethernet0/0/14 hybrid 1 -
以上的命令行我们就把交换机一LSW1的接口配置好了。之后还需要配置2和3的。注意因为我这里是拿交换机当路由器,所以交换机2和3当作路由器也可以。我们先配置交换机2,他是PC2主要的通路。同时配置为VLAN10的备用通路,坏了交换机三才走。
LSW2:
[Huawei]sys S2 //改名S2
[S2]vlan batch 10 20
Info: This operation may take a few seconds. Please wait for a moment...done.
[S2]interface Ethernet 0/0/12
[S2-Ethernet0/0/12]port link-type trunk
[S2-Ethernet0/0/12]port trunk allow-pass vlan all //接口模式设置trunk
[S2]interface vlanif 20
[S2-Vlanif20]ip address 192.168.20.254 24 //设置vlanif20的真实IP
(新手的话可以试试将PC2的机子的网关地址改成这个互PING,检查连通性)
[S2-Vlanif20]vrrp vrid 20 virtual-ip 192.168.20.250 //设置v20的虚拟ip
[S2-Vlanif20]vrrp vrid 20 priority 200 //设置v20的vrrp优先级,200的话超出默认会变成master
[S2-Vlanif20]interface vlanif 10
[S2-Vlanif10]ip address 192.168.10.251 24 //vlan10的真实ip哦
[S2-Vlanif10]vrrp vrid 10 virtual-ip 192.168.10.250
[S2-Vlanif10]vrrp vrid 10 priority 150 //vlan10网关优先级150。
[S2]display vrrp brief //以上就算完成了,这是查看vrrp简要信息
VRID State Interface Type Virtual IP
----------------------------------------------------------------
10 Master Vlanif10 Normal 192.168.10.250 //vlan10的优先级高是master
20 Master Vlanif20 Normal 192.168.20.250 //vlan20也是master哦
----------------------------------------------------------------
Total:2 Master:2 Backup:0 Non-active:0
//上面的配置说明了vlan10和vlan20的数据都是通往这个路由器的,我们接下来同样要配置路由器三。
LSW3:
[Huawei]sys S3 //改名
[S3-Vlanif20]vlan batch 10 20
Info: This operation may take a few seconds. Please wait for a moment...done.
[S3]interface Ethernet 0/0/13
[S3-Ethernet0/0/13]port link-type trunk
[S3-Ethernet0/0/13]port trunk allow-pass vlan all
[S3-Ethernet0/0/13]interface vlanif 10
[S3-Vlanif10]ip address 192.168.10.254 24 //vlan10的真实ip
[S3-Vlanif10]vrrp vrid 10 virtual-ip 192.168.10.250 //虚拟ip
[S3-Vlanif10]vrrp vrid 10 priority 200 //v10优先级200
[S3-Vlanif10]interface vlanif 20
[S3-Vlanif20]ip address 192.168.20.251 24
[S3-Vlanif20]vrrp vrid 20 virtual-ip 192.168.20.250
[S3-Vlanif20]vrrp vrid 20 priority 150 //v20的优先级150
以上,我们两个配置网关的交换机都配置好了。来总结一下,首先在S2上,vlan20的优先级设为了200;S3上优先级为150.所以S2是作为v20的主要通路,S3是v20的备份通路。对vlan10同理。
可以查看一下vrrp信息:
S2:
Vlanif10 | Virtual Router 10
State : Backup //备份状态哦
Virtual IP : 192.168.10.250
Master IP : 192.168.10.254 //主要的ip
PriorityRun : 150 //本机的优先级150
PriorityConfig : 150
MasterPriority : 200 //主机的优先级200,所以不是我!
Preempt : YES Delay Time : 0 s
TimerRun : 1 s
TimerConfig : 1 s
Auth type : NONE
Virtual MAC : 0000-5e00-010a
Check TTL : YES
Config type : normal-vrrp
Create time : 2019-04-07 17:41:10 UTC-08:00
Last change time : 2019-04-07 17:59:28 UTC-08:00
Vlanif20 | Virtual Router 20
State : Master //主要的链路
Virtual IP : 192.168.20.250
Master IP : 192.168.20.254 //真实ip,就是我自己
PriorityRun : 200
PriorityConfig : 200
MasterPriority : 200 //优先级200.自己。
Preempt : YES Delay Time : 0 s //yes是说明开启了抢占。就是说我坏了,S3先作为备份通路。我好了马上又抢回来
TimerRun : 1 s
TimerConfig : 1 s
Auth type : NONE
Virtual MAC : 0000-5e00-0114
Check TTL : YES
Config type : normal-vrrp
Create time : 2019-04-07 17:39:39 UTC-08:00
Last change time : 2019-04-07 17:40:10 UTC-08:00
S3的命令行我就不放了。如何验证我说的是不是真的呢?当然是抓包啦。好像安装ensp的时候会要求一同安装wireshark。再放一次更新的链路图,做好链路图笔记!
首先我们知道PC1和网关192.168.10.250通信的道路是:PC1->S1->S3.那么正常情况下S2一定收不到数据。我们打开pc1的命令行,输入ping 192.168.10.250 -t。 一直发生icmp报文来对E0/0/13和E0/0/12来抓包。如图:
e13口:
真的是有数据。那么e12口呢?
空的哦。所以实验正确!
接下来还要验证一下,如果vlan10的主要通路S3坏了。会怎么样呢?
我们先进入S3的13接口输入命令行shutdown。然后在S2上查看vrrp状态。
[S2]display vrrp brief
VRID State Interface Type Virtual IP
----------------------------------------------------------------
10 Master Vlanif10 Normal 192.168.10.250
20 Master Vlanif20 Normal 192.168.20.250
---------------------------------------------------------------
发现明明是vlan20的主要链路,却变成两个vlan的主要链路了!所以猜想还是正确的,备用链路启动了。抓包显示当然也是走了备用链路。
再次开启S3的e13端口,查看S2的vrrp状态发现vlan10的状态又变成backup!
添加设备 添加一个路由器和一个PC机,上图
按图所示配置相应的命令。
R1:
[R1]int g2/0/0 //路由器G接口才能配IP
[R1-GigabitEthernet2/0/0]ip address 192.168.50.254 24
[R1-GigabitEthernet2/0/0]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.12.2 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip address 192.168.13.2 24
S2:
[S2]vlan 12 //创建vlan12
[S2-vlan12]q
[S2]int g0/0/1 //进入1端口需要配置接口连接模式
[S2-GigabitEthernet0/0/1]port link-type access
[S2-GigabitEthernet0/0/1]port default vlan 12 //加入v12
[S2-GigabitEthernet0/0/1]q
[S2]int vlanif 12
[S2-Vlanif12]ip address 192.168.12.1 24 //给虚拟vlan12配置ip
[S2-Vlanif12]ping 192.168.12.2 //ping路由器同网段接口,通!链路没问题
PING 192.168.12.2: 56 data bytes, press CTRL_C to break
Reply from 192.168.12.2: bytes=56 Sequence=1 ttl=255 time=110 ms
Reply from 192.168.12.2: bytes=56 Sequence=2 ttl=255 time=50 ms
[S2-Vlanif12]ping 192.168.10.1 //给直连内网ping,通没问题!
PING 192.168.10.1: 56 data bytes, press CTRL_C to break
Reply from 192.168.10.1: bytes=56 Sequence=1 ttl=128 time=110 ms
Reply from 192.168.10.1: bytes=56 Sequence=2 ttl=128 time=70 ms
S3:
[S3]vlan 13
[S3]int g0/0/1
[S3-GigabitEthernet0/0/1]port link-type access
[S3-GigabitEthernet0/0/1]port default vlan 13
[S3]int vlanif 13
[S3-Vlanif12]ip address 192.168.13.1 24 //给虚拟vlan13配置ip
----------------------------以上我们的图示配置就算完成了。但因为涉及多路线,所以还需要配置静态路由,不然他怎么知道怎么走呢----------------
*试想,PC1和PC3通信:
发出去的情况
(1)PC1->S1->S3->R1->PC3------------------正常情况
这个时候数据从S3出去,他需要知道去vlan50的网段怎么走?需要告诉S3去vlan50的路由
(2)PC1->S1->S2->R1->PC3------------------master出故障的情况
同样S2不知道怎么去vlan50的网段,一样要告诉S2去vlan的路由。
----------------//上面就是告诉了两个路由器怎么出去找到vlan50的网段,pc2也是一致使用。
通信是互相的,所以PC3回PC1的情况:(PC2省略)
(3)PC3->R1->S3->S1->PC1---------------------正常情况
这样路由器R1需要知道怎么到达vlan10网段,要添加去的路由。
(3)PC3->R1->S2->S1->PC1-----------------启用了备份链路的情况
同样路由器需要知道怎么用另一条路由到vlan10,要告诉他也可以从S2走*
综上:设置静态路由(display ip routing-table查看路由表信息)
S2:
[S2]ip route-static 192.168.50.0 24 192.168.12.2 //到50网段,nexthop是12.2
S3:
[S3]ip route-static 192.168.50.0 24 192.168.13.2 //到50网段,nexthop是13.2
R1:
[R1]ip route-static 192.168.10.0 24 192.168.13.1
[R1]ip route-static 192.168.10.0 24 192.168.12.1 //去v10两种选择
[R1]ip route-static 192.168.20.0 24 192.168.13.1
[R1]ip route-static 192.168.20.0 24 192.168.12.1 //去v20两种选择
以上设置发现就是可以实现互通了。但是试想一下。线路S3>><
并不知道他发不出去。但是我们发现其实我们走R1>><
[R1]dis ip routing-table 192.168.10.0 //查看去v10的路由表
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 2
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.10.0/24 Static 60 0 RD 192.168.13.1 GigabitEthernet
0/0/1
Static 60 0 RD 192.168.12.1 GigabitEthernet
0/0/0
//发现有两条路,优先级都是60.我们可以变更优先级然后T掉一个出去路由表,变成备份
//优先级的话是越低越优先
如上R1的静态路由可以改一下:
*1.本来应该走S3>><
2.同理对于和vlan20通信的链路*
R1对静态路由优先级进行更改:
[R1]ip route-static 192.168.10.0 24 192.168.12.1 preference 70
Info: Succeeded in modifying route. //提示修改成功
[R1]dis ip routing-table 192.168.10.0 //查看
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.10.0/24 Static 60 0 RD 192.168.13.1 GigabitEthernet
0/0/1
//发现只有一个了。备份的地址可以通过display current-configuration查看。
//这里也要对vlan20的优先级进行设置。
上面设置了对路由器优先级的设置。可以通了吗?
试想一下,PC1发出去,正常情况下S3是可以收到的。但是他对接的路由器坏了它并不知道,
所以路由器设置优先级和S3一点关系都没有,改变不了什么。我们需要做到是整个线路都是
通畅的。所以我们需要监控路由器线路,当S3发现路由器坏了,立马转换网关设备(转到backup),和路由器启用优先级低的线路动作配合。
S3:
[S3-Vlanif10]interface vlanif 10
[S3-Vlanif10]vrrp vrid 10 track interface g0/0/1 reduced 100
//这里是vrrp对连接路由器的端口进行监控,若断路则主动reduce 100‘s preference.这样就会启用备用网关
[S3-Vlanif10]dis this //查看当前端口信息
#
interface Vlanif10
ip address 192.168.10.254 255.255.255.0
vrrp vrid 10 virtual-ip 192.168.10.250
vrrp vrid 10 priority 200
vrrp vrid 10 track interface GigabitEthernet0/0/1 reduced 100
#
return
首先用PC1 ping一下PC3。通了。
按照刚刚的配置。我们的icmp包应该走的路是S3。S2是完全没有数据的。上图
上路就是流过S3的数据。可以看到源地址和目标地址,S2别看了真没有
接下来我们断掉路由器上的G0/0/1的口,看看S3和R1的vrrp信息和路由表。
R1:
[R1-GigabitEthernet0/0/1]shutdown
[R1-GigabitEthernet0/0/1]q
[R1]display ip routing-table 192.168.10.0
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Table : Public
Summary Count : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.10.0/24 Static 70 0 RD 192.168.12.1 GigabitEthernet
0/0/0
S3:
[S3]dis vrrp brief
VRID State Interface Type Virtual IP
----------------------------------------------------------------
10 Backup Vlanif10 Normal 192.168.10.250 //都变成备份咯
20 Backup Vlanif20 Normal 192.168.20.250
----------------------------------------------------------------
Total:2 Master:0 Backup:2 Non-active:0
**:----------------------笔记整理就算结束了,写的比较烂,有问题请指正--------------------: **