LVS
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS相关的知识,希望对你有一定的参考价值。
搭建目的:
公司window服务上有几个单点服务需要LVS服务来做高可用
环境:
Window 2008R2 两台
Linux Centos6.5 一台
开始查找相关资料
1.在 Win 主机上新增环回虚拟网卡(Microsoft?Loopback Adapter)
以管理员身份运行 cmd 后,在 cmd 命令窗口中执行:hdwwiz,弹出如下界面:
下一步后,勾选手动选择:
点选网络适配器,继续下一步:
左侧选择 Microsoft,右侧找到如图硬件(Windows Server 2008/7 中则叫:Microsoft Loopback Adapter)
二、设置环回网卡 TCP/IP 信息
更新网卡名称
配置VIP地址和掩码
这些老家伙基本都不用了,但还是记录下吧):
子网掩码 255.255.255.255 但在 MS NT/2K/XP 会被认为是无效的。 可以有以下解决方法: 在 MS NT/2K/XP 中,网络界面(interfaces)在
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
找到适当的网络连接 IP 地址,修改 subnetMask 子网掩码,(注意修改方式)不需要重启,只需重新激活该网络连接即可
三、修改客户端网卡接口、环回接口连接模式(DR)
netsh interface ipv4 set interface "realserver" weakhostreceive=enabled
netsh interface ipv4 set interface "realserver" weakhostsend=enabled
netsh interface ipv4 set interface "本地连线" weakhostreceive=enabled
netsh interface ipv4 set interface "本地连线" weakhostsend=enabled
说明:
上面的四条命令一定要输入,因为 windows 2008 的默认中,网卡的 stronghost 处于启用状态,这个设置可以防止跨接口转发数据包,这就表明:来自一个网络适配器的请求不会被环回适配器处理,因为这个请求来自于不同的网络适配器。为了将环回适配器从 stronghost 切换为 weakhost,需要运行以上四条命令,要不然 TCP 的状态会一直处于 SYN_RECV 状态。
四、ipvsadm策略配置
LVS的NAT模式
vim /usr/local/sbin/lvs_nat.sh
编辑写入如下内容:
#! /bin/bash
director服务器上开启路由转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
关闭 icmp 的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects
director设置 nat 防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
director设置 ipvsadm
IPVSADM=‘/sbin/ipvsadm‘
$IPVSADM -C
$IPVSADM -A -t VIP:80 -s wrr
$IPVSADM -a -t VIP:80 -r R1IP:80 -m -w 1
$IPVSADM -a -t VIP:80 -r R2IP:80 -m -w 1
LVS的DR模式
硬件配置
? Director节点: ?(eth0 192.168.0.8? vip eth0:0 192.168.0.38)
? Real server1: (eth0 192.168.0.18 vip lo:0 192.168.0.38)
? Real server2: (eth0 192.168.0.28 vip lo:0 192.168.0.38)
Director 上配置
vim /usr/local/sbin/lvs_dr.sh
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/sbin/ipvsadm
vip=192.168.0.38
rs1=192.168.0.18
rs2=192.168.0.28
ifconfig eth0:0 down
ifconfig eth0:0 200.200.6.200 broadcast 200.200.6.200 netmask 255.255.255.255 up
route add -host 200.200.6.200 dev eth0:0
ipvsadm -C
ipvsadm -A -t $vip:80 -s wrr
ipvsadm -a -t $vip:80 -r $rs1:80 -g -w 3
ipvsadm -a -t $vip:80 -r $rs2:80 -g -w 1
rs 上配置
vim /usr/local/sbin/lvs_dr_rs.sh
#! /bin/bash
vip=192.168.0.38
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/al
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
LVS的TUN模式
Director 上配置
ifconfig tunl0 192.168.181.10 broadcast192.168.181.10 netmask 255.255.255.255 up
route add -host 192.168.181.10 dev tunl0
ipvsadm -A -t 192.168.181.10:80 -s rr
ipvsadm -a -t 192.168.181.10:80 -r192.168.181.141:80 -i
ipvsadm -a -t 192.168.181.10:80 -r192.168.181.142:80 -i
rs 上配置
ifconfig tunl0 192.168.181.10 broadcast192.168.181.10 netmask 255.255.255.255 up
route add -host 192.168.181.10 dev tunl0
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
注意:
在你一直访问找不到服务器时,那么可能是因为rpfilter,当系统接收到一个ip包时,检查该ip包是否符合要求,不合要求的包会被丢掉。该技术就被叫做rpfilter,反向过滤技术,可以通过修改真实服务器realserver的sysctl.conf来解决:
修改net.ipv4.conf.default.rp_filter= 1的1为0
若要同时绑定多个端口可用以下配置
基于防火墙标记实现多端口绑定http和https服务,同时也做到了负载均衡
iptables -t mangle -A PREROUTING -d 192.168.8.40(VIP) -p tcp --dport 80 -j MARK --set-mark 10
iptables -t mangle -A PREROUTING -d 192.168.8.40(VIP) -p tcp --dport 443 -j MARK --set-mark 10
service iptables save
配置ipvsadm
ipvsadm -A -f 10 -s rr
ipvsadm -a -f 10 -r 192.168.8.101 -g
ipvsadm -a -f 10 -r 192.168.8.102 -g
参考网址:
https://blog.csdn.net/reblue520/article/details/50889235
https://www.cnblogs.com/liwei0526vip/p/6370103.html
以上是关于LVS的主要内容,如果未能解决你的问题,请参考以下文章