- 适用场景 :
- 后端服务器与LVS跨物理网络(跨地域或跨数据中心)
- 后端服务器需要有公网IP,但流量需加密或绕过中间网络限制
- 适合跨机房、异地容灾或需要流量封装的场景
实验环境
主机名/IP | 角色 | 系统 |
server01/192.168.1.201 | 负载均衡器(VIP:外192.168.1.222) | ubuntu22.04 |
server02/192.168.1.202 | nginx节点 | ubuntu22.04 |
server03/192.168.1.203 | nginx节点 | ubuntu22.04 |
实验步骤
server01
加载IPIP模块
modprobe ipip
启动tunl0设备
ip link set tunl0 up
配置VIP
ip addr add 192.168.1.222/32 dev tunl0
配置LVS
ipvsadm -A -t 192.168.1.222:80 -s rr
ipvsadm -a -t 192.168.1.222:80 -r 192.168.1.202:80 -i
ipvsadm -a -t 192.168.1.222:80 -r 192.168.1.203:80 -i
server02 && server03
加载IPIP模块
modprobe ipip
启动tunl0设备
ip link set tunl0 up
配置VIP
ip addr add 192.168.1.222/32 dev tunl0
配置对arp的行为,避免不必要的ARP响应和更严格的ARP请求处理来提高网络的稳定性和安全性
sysctl -w net.ipv4.conf.tunl0.arp_ignore=1 #忽略无关的ARP请求
sysctl -w net.ipv4.conf.tunl0.arp_announce=2 #使用最严格的ARP响应
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2
配置反向路径过滤,反向路径过滤指的是允许通过接口接收到的所有数据包,而不检查数据包的源地址是否合法。禁用反向路径过滤在某些情况下是有必要的,例如在复杂的网络拓扑中,或者在需要进行高级网络配置(如VPN、IP隧道、负载均衡等)时,可以避免合法数据包被错误地丢弃。
sudo sysctl -w net.ipv4.conf.tunl0.rp_filter=0 #禁用tunl0接口的反向路径过滤
sudo sysctl -w net.ipv4.conf.all.rp_filter=0 #禁用所有接口的反向路径过滤
省略nginx部署步骤