一.TUN模式简介
- TUN是IP Tunneling ,IP隧道的简称,它将调度器收到的IP数据包封装在一个新的IP数据包中,转交给应用服务器,然后实际服务器的返回数据会直接返回给用户。
- IP隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。IP隧道技术亦称为IP封装技术(IP encapsulation)。IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有唯一的IP地址
二.实验环境(rhel6.5版本)
1. 各主机信息
主机名 | IP |
server1(调度器) | 172.25.8.1 |
server2(后端服务器) | 172.25.8.2 |
server3(后端服务器) | 172.25.8.3 |
2. server2与server3安装apache,在默认发布目录/var/www/html下编写发布文件,并开启httpd服务
三.TUN隧道模式的搭建部署
实验前提调度器(server1)以配置好ipvsadm:配置步骤请查看博文:
https://blog.youkuaiyun.com/weixin_43369306/article/details/96474533
配置调度器server1:
- 删除之前DR模式添加的策略
2. 添加隧道
添加模块(删除模块:modprobe -r ipip)
3. 给隧道添加Virtual IP
ip addr del 172.25.83.100/24 dev eth0 #删除DR模式下绑定的Virtual IP
给隧道添加Virtual IP
4. 激活隧道
5. 添加新的策略
-i 指定隧道模式
6. 保存策略
配置后端服务器server2:
1. 添加隧道
先删除先前的虚拟ip,再添加
2. 给隧道添加Virtual IP
3. 激活隧道
4. 修改rp_filter 参数
Linux内核参数 rp_filter:
https://www.cnblogs.com/lipengxiang2009/p/7446388.html
https://www.jianshu.com/p/16d5c130670b
需要关掉反向路径检测(反向路径检测:当以100访问进来的包要符合内核的某种规则,出去的应该还是100,如果不关掉的话,出去的路径是4.2,客户端不会接受)
重新加载
查看后发现仍有一个参数的值是1,此时必须要从文件中修改
编辑文件,将参数该为0
再重新加载
再次查看,发现参数已全部该为0
为什么要修改rp_filter参数?
- rp_filter参数用于控制系统是否开启对数据包源地址的校验。有三个值,0、1、2,具体含义:
- 0:不开启源地址校验。
- 1:开启严格的反向路径校验。对每个进来的数据包,校验其反向路径是否是最佳路径。如果反向路径不是最佳路径,则直接丢弃该数据包。
- 2:开启松散的反向路径校验。对每个进来的数据包,校验其源地址是否可达,即反向路径是否能通(通过任意网口),如果反向路径不同,则直接丢弃该数据包。
配置后端服务器server3:与server2一样的配置步骤
客户端(真机)测试: