根据以下主机资源,做⼀个
lvs
的
TUN
模型的负载均衡实验,两台后端主机是
http
服务。

定制
lvs-route
主机
ip(略)
定制
lvs-server
主机
ip(略)
定制
lvs-route
主机隧道⽹卡
modprobe ipip
加载隧道模块
modinfo ipip 查看模块信息
lsmod | grep ipip
验证模块是否加载

定制隧道⽹卡ip
ip a add 192.168.8.100/32 dev tunl0
ip link set tunl0 up #
一定要开启
ip a s tunl0

定制lvs-RS1主机ip
加载模块
modprobe ipip
modinfo ipip
lsmod
|
grep ipip
lvs-rs1主机定制tunl0⽹卡ip地址
ip a add 192.168.8.100/32 dev tunl0
ip link set tunl0 up #
一定要开启
ip a s tunl0

定制lvs-RS2主机ip
加载模块
modprobe ipip
modinfo ipip
lsmod
|
grep ipip
ip a add 192.168.8.100/32 dev tunl0
ip link set tunl0 up #
一定要开启
ip a s tunl0

基础环境配置
客⼾端主机定制⽹关
lvs-client
主机定制默认的⽹关出⼝为
lvs
主机
ip route add default via 10.0.0.16 #
设定默认的路由,实现流量的发送
lvs-route
主机定制数据包转发(略)
lvs-server主机定制数据包转发及定制路由出⼝(略)
修改内核参数,禁⽤
VIP
的
ARP
⼴播和应答,
TUN
模式中,如果
LVS 和后端RS 服务器在⼀个物理⽹络,可以不⽤执⾏如下步骤
echo
'1'
> /
proc
/
sys
/
net
/
ipv4
/
conf
/
tunl0
/
arp_ignore
echo
'2'
> /
proc
/
sys
/
net
/
ipv4
/
conf
/
tunl0
/
arp_announce
echo
'1'
> /
proc
/
sys
/
net
/
ipv4
/
conf
/
all
/
arp_ignore
echo
'2'
> /
proc
/
sys
/
net
/
ipv4
/
conf
/
all
/
arp_announce
echo
'0'
> /
proc
/
sys
/
net
/
ipv4
/
conf
/
tunl0
/
rp_filter
echo
'0'
> /
proc
/
sys
/
net
/
ipv4
/
conf
/
all
/
rp_filter
rp_filter
参数用于控制系统是否开启对数据包源地址的校验
0
代表不开启地址校验
1
表示开启严谨的反向地址校验,对每一个数据包,校验其反向地址是否是最佳路径,如果不是则丢弃该包
Centos
|
Redhat
系列的
OS
默认使用的是该值
2
表示开启松散的反向地址校验,只要能够反向
ping
通,则使用该数据包,如果
ping
不通,则丢弃该包。
Ubuntu
系列的
OS
默认使用的是该值,效果和
0
差不多
RS1主机定制⽹络环境
lvs-rs1
主机定制默认的⽹关出⼝为
lvs
主机(略) 结果如下显示

lvs-rs1
主机定制
arp
策略
echo
'1'
> /
proc
/
sys
/
net
/
ipv4
/
conf
/
tunl0
/
arp_ignore
echo
'2'
> /
proc
/
sys
/
net
/
ipv4
/
conf
/
tunl0
/
arp_announce
echo
'1'
> /
proc
/
sys
/
net
/
ipv4
/
conf
/
all
/
arp_ignore
echo
'2'
> /
proc
/
sys
/
net
/
ipv4
/
conf
/
all
/
arp_announce
echo
'0'
> /
proc
/
sys
/
net
/
ipv4
/
conf
/
tunl0
/
rp_filter
echo
'0'
> /
proc
/
sys
/
net
/
ipv4
/
conf
/
all
/
rp_filter
注意:
关于
arp
的抑制,需要具体的网卡和
all
搭配使用才生效,
all
相当于兜底的策略。
RS2主机定制⽹络环境(上同 略)
lvs-server主机定制集群
ipvsadm -C
ipvsadm
-
A
-
t
192.168.8.100
:
80
ipvsadm
-
a
-
t
192.168.8.100
:
80
-
r
192.168.8.14
:
80
-
i
ipvsadm
-
a
-
t
192.168.8.100
:
80
-
r
192.168.8.15
:
80
-
i
ipvsadm
-
a
-
t
192.168.8.100
:
80
-
r
192.168.8.17
:
80
-
i
注意: 我们这里用的是
tun
模式,所以添加
RS
主机的时候,需要加
-
i
选项

测试
客⼾端访问
lvs
的对外
ip
地址
[root
@rocky9-12
~
]
# curl 192.168.8.100
<
h1
>
hello RS2
</
h1
>
[root
@rocky9-12
~
]
# curl 192.168.8.100
<
h1
>
hello RS1
</
h1
>
[root
@rocky9-12
~
]
# curl 192.168.8.100
<
h1
>
hello RS2
</
h1
>