LVS——TUN隧道模式

TUN隧道模式:

  • 全称是IP隧道模式,是将一个IP报文封装在另一个IP报文的技术,这可以是目标为一个IP地址的数据报文能被封装和转发到另一个IP地址
  • IP隧道主要用于移动主机和虚拟私有主机,在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有一个唯一的IP地址

1.将DR模式中的配置全部清除

[root@server1 yum.repos.d]# ipvsadm -l     
[root@server1 yum.repos.d]# ipvsadm -C
[root@server1 yum.repos.d]# ipvsadm -l

在这里插入图片描述
2.安装虚拟网卡模块,ip a查看,出现了一个虚拟网卡tunl0

[root@server1 yum.repos.d]# modprobe ipip
[root@server1 yum.repos.d]# ip a

在这里插入图片描述
3.将虚拟ip从eth0中删除,添加到tunl0中

[root@server1 yum.repos.d]# ip addr del 172.25.22.100/24 dev eth0
[root@server1 yum.repos.d]# ip addr add 172.25.22.100/24 dev tunl0
[root@server1 yum.repos.d]# ip a

在这里插入图片描述
4.可以看到现在虚拟网卡的状态是down,激活这个网卡

[root@server1 yum.repos.d]# ip link set up tunl0
[root@server1 yum.repos.d]# ip a

在这里插入图片描述
不是down就不用管

server2和server3作出同样的设置

server2:

[root@server2 ~]# ip addr del 172.25.22.100/32 dev eth0
[root@server2 ~]# modprobe ipip
[root@server2 ~]# ip addr add 172.25.22.100/32 dev tunl0
[root@server2 ~]# ip link set up tunl0
[root@server2 ~]# ip a

在这里插入图片描述
server3:

[root@server3 ~]# modprobe ipip
[root@server3 ~]# ip a
[root@server3 ~]# ip addr del 172.25.22.100/32 dev eth0
[root@server3 ~]# ip addr add 172.25.22.100/32 dev tunl0
[root@server3 ~]# ip link set up tunl0
[root@server3 ~]# ip a

在这里插入图片描述
在这里插入图片描述
5.server1中添加策略:添加虚拟服务器,指定调度算法,添加真实服务器并制定工作模式为TUN隧道模式

[root@server1 yum.repos.d]# ipvsadm -A -t 172.25.22.100:80 -s rr
[root@server1 yum.repos.d]# ipvsadm -a -t 172.25.22.100:80 -r 172.25.22.2:80 -i
[root@server1 yum.repos.d]# ipvsadm -a -t 172.25.22.100:80 -r 172.25.22.3:80 -i
[root@server1 yum.repos.d]# ipvsadm -l

在这里插入图片描述
6.保存配置,厄丕值的内容实际上保存到了/etc/sysconfig/ipvsadm文件中,可以查看这个文件的内容对比

[root@server1 yum.repos.d]# /etc/init.d/ipvsadm save
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:     [  OK  ]

[root@server1 yum.repos.d]# cat /etc/sysconfig/ipvsadm
-A -t 172.25.22.100:80 -s rr
-a -t 172.25.22.100:80 -r 172.25.22.2:80 -i -w 1
-a -t 172.25.22.100:80 -r 172.25.22.3:80 -i -w 1

在这里插入图片描述
7.物理机测试:
这时访问虚拟服务器是没有返回结果的

[root@foundation22 westos]# curl 172.25.22.100

在这里插入图片描述
因为有反向过滤:1表示开启反向过滤规则,会对流入的数据包进行反向地址校验,就是说进来的ip和出去的ip必须一样

[root@server2 ~]# sysctl -a | grep rp_filter

在这里插入图片描述
8.server2和server3关闭反向地址校验
这里要关闭反向地址校验,default的要在配置文件中更改
server2:

[root@server2 ~]# sysctl -w net.ipv4.conf.lo.rp_filter=0
net.ipv4.conf.lo.rp_filter = 0
[root@server2 ~]# sysctl -w net.ipv4.conf.eth0.rp_filter=0
net.ipv4.conf.eth0.rp_filter = 0
[root@server2 ~]# sysctl -w net.ipv4.conf.tunl0.rp_filter=0
net.ipv4.conf.tunl0.rp_filter = 0
[root@server2 ~]# sysctl -w net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.rp_filter = 0

在这里插入图片描述
让更改生效,发现default改变不了,这个时候应该在文件中更改

[root@server2 ~]# sysctl -p

在这里插入图片描述
在这里插入图片描述

[root@server2 ~]# vim /etc/sysctl.conf

在这里插入图片描述
在这里插入图片描述
在文件中更改后再次生效查看,更改为0

[root@server2 ~]# sysctl -p

在这里插入图片描述

server3同样:

[root@server3 ~]# sysctl -a | grep rp_filter
[root@server3 ~]# sysctl -w net.ipv4.conf.lo.rp_filter=0
net.ipv4.conf.lo.rp_filter = 0
[root@server3 ~]# sysctl -w net.ipv4.conf.eth0.rp_filter=0
net.ipv4.conf.eth0.rp_filter = 0
[root@server3 ~]# sysctl -w net.ipv4.conf.tunl0.rp_filter=0
net.ipv4.conf.tunl0.rp_filter = 0
[root@server3 ~]# vim /etc/sysctl.conf
[root@server3 ~]# sysctl -p

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
9.物理机再次测试:
(1)清除缓存:

[root@foundation22 westos]# arp -d 172.25.22.100

(2)访问100ip,可以看到现在是轮循调度

[root@foundation22 westos]# curl 172.25.22.100
<h1>server2.example.com</h1>
[root@foundation22 westos]# curl 172.25.22.100
<h1>server3- www.westos.org</h1>
[root@foundation22 westos]# curl 172.25.22.100
<h1>server2.example.com</h1>

在这里插入图片描述
(3)再次清除缓存,访问仍然是轮循调度

[root@foundation22 westos]# arp -d 172.25.22.100
[root@foundation22 westos]# curl 172.25.22.100
<h1>server2.example.com</h1>
[root@foundation22 westos]# curl 172.25.22.100
<h1>server3- www.westos.org</h1>
[root@foundation22 westos]# curl 172.25.22.100
<h1>server2.example.com</h1>
[root@foundation22 westos]# curl 172.25.22.100
<h1>server3- www.westos.org</h1>

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44224894/article/details/89322884