IP隧道-IP
IP隧道(IP封装)是一种将IP数据报封装到IP数据报中的技术,它允许将预定IP地址的数据报包装并重定向到另一个IP地址,IP封装技术目前通常被地用在外联网,移动IP,IP广播,隧道式主机。
- ip隧道模式的原理:
原理过程简述:
1)客户请求数据包,目标地址VIP发送到LB上。
2)LB接收到客户请求包,进行IP Tunnel封装。即在原有的包头加上IP Tunnel的包头。然后发送出去。
3)RS节点服务器根据IP Tunnel包头信息(此时就又一种逻辑上的隐形隧道,只有LB和RS之间懂)收到请求包,然后解开IP Tunnel包头信息,
得到客户的请求包并进行响应处理。
4)响应处理完毕之后,RS服务器使用自己的出公网的线路,将这个响应数据包发送给客户端。源IP地址还是VIP地址(RS节点服务器需要在本
地回环接口配置VIP)
隧道模式的配置
server1作为调度器
- 环境搭建
ipvsadm -C
清除之前的调度规则
modprobe ipip
加载隧道模块,server1.server2.server3都要加载
-
添加ip给tunl0,添加规则
ip addr del 172.25.61.100/24 dev eth0 ip addr add 172.25.61.100/24 dev tunl0 ip link set up tunl0 ##启动网卡 ipvsadm -A -t 172.25.61.100:80 -s rr ipvsadm -a -t 172.25.61.100:80 -r 172.25.61.2:80 -i ipvsadm -a -t 172.25.61.100:80 -r 172.25.61.3:80 -i /etc/init.d/ipvsadm save
-
关闭内核反向过滤功能
/etc/init.d/ipvsadm save
sysctl -a | grep rp_filter
sysctl -w net.ipv4.conf.default.rp_filter=0
sysctl -w net.ipv4.conf.lo.rp_filter=0
sysctl -w net.ipv4.conf.eth0.rp_filter=0
sysctl -w net.ipv4.conf.tunl0.rp_filter=0
vim /etc/sysctl.conf
rp_filter三个参数的含义:
0:不开启原地址校验
1:开启严格的反向路径校验
2:开启松散的反向路径校验
server2
ip addr del 172.25.61.100/32 dev eth0
modprobe ipip
ip addr add 172.25.61.100/32 dev tunl0
ip a
ip link set up tunl0
ip a
sysctl -a | grep rp_filter
sysctl -w net.ipv4.conf.default.rp_filter=0
sysctl -w net.ipv4.conf.lo.rp_filter=0
sysctl -w net.ipv4.conf.eth0.rp_filter=0
sysctl -w net.ipv4.conf.tunl0.rp_filter=0
vim /etc/sysctl.conf
server3
ip addr del 172.25.61.100/32 dev eth0
ip addr add 172.25.61.100/32 dev tunl0
ip link set up tunl0
sysctl -a | grep rp_filter
sysctl -w net.ipv4.conf.default.rp_filter=0
sysctl -w net.ipv4.conf.lo.rp_filter=0
sysctl -w net.ipv4.conf.eth0.rp_filter =0
sysctl -w net.ipv4.conf.eth0.rp_filter=0
sysctl -w net.ipv4.conf.tunl0.rp_filter=0
vim /etc/sysctl.conf
-
测试:
[root@foundation61 ~]# curl 172.25.61.100 <h1>LVS server3</h1> [root@foundation61 ~]# curl 172.25.61.100 <h1>LVS server2</h1> [root@foundation61 ~]# curl 172.25.61.100 <h1>LVS server3</h1> [root@foundation61 ~]# curl 172.25.61.100 <h1>LVS server2</h1>