【安装】
sudo yum -y install ipvsadm #ubuntu使用apt
【用法】
基本用法如下,分别用于设置虚拟服务算法和后端真实服务器
ipvsadm 选项 服务器地址 -s 算法
ipvsadm 选项 服务器地址 -r 真实服务器地址 [工作模式][权重]...
【命令选项】
-A 添加一个虚拟服务,使用ip地址、端口号、协议来唯一定义一个虚拟服务
-E 编辑一个虚拟服务
-D 删除一个虚拟服务
-C 清空虚拟服务列表
-R 从标准输入中还原虚拟服务列表
-S 保存虚拟服务规则至标准输出,输出规则可使用-R选项还原
-L 显示虚拟服务列表
-Z 虚拟服务器列表计数器清零(清空当前连接数)
-a 添加一台真实服务器
-e 编辑一台真实服务器
-d 减少一台真实服务器
-t 使用TCP服务,该参数后需加主机与端口信息
-u 使用UDP服务,该参数后需加主机与端口信息
-s 指定lvs的调度算法
-r 设置真实服务器IP与端口
-g 设置lvs工作模式为DR直连路由
-i 设置lvs工作模式为TUN隧道
-m 设置lvs工作模式为NAT地址转换模式
-w 指定真实服务器权重
-c 连接状态,配和-L使用
-n 数字格式显示
--stats 显示统计信息
--rate 显示速率信息
--sort 对虚拟服务器和真实服务器排序输出
--set tcp tcpfin udp 设置ipvs连接超时值,三个参数分别代表tcp会话超时时间、收到FIN包后tcp会话超时时间、udp超时时间
--timeout 显示tcp tcpfin udp的timeout值
--start-daemon 启动同步守护进程
--stop-daemon 停止同步守护进程
【示例】
设定:调度服务 DIP(192.168.3.xx)
VIP(192.168.3.254)
RIP1(192.168.3.33)
RIP2(192.168.3.34)
添加虚拟服务,设置调度算法为轮询:
# ipvsadm -A -t 192.168.3.254:80 -s rr
# ipvsadm -Ln
让80端口请求通过NAT模式转发给两个后端真实服务器:
# ipvsadm -a -t 192.168.3.254:80 -r 192.168.3.33:80 -g
# ipvsadm -a -t 192.168.3.254:80 -r 192.168.3.34:80 -g
# ipvsadm -Ln
修改调度算法为加权轮询:
# ipvsadm -E -t 192.168.3.254:80 -s wrr
规则表备份与还原:
# ipvsadm -S > /tmp/ip_vs.bak
# cat /tmp/ip_vs.bak
# ipvsadm -C
# ipvsadm -L
# ipvsadm -R < /tmp/ip_vs.bak
# ipvsadm -Ln
开启路由转发功能:
sudo vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
或命令执行
sysctl -w net.ipv4.ip_forward=1
echo 1 > /proc/sys/net/ipv4/ip_forward
以下操作真实后端服务器:
ARP修改
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
路由网关设置
ifconfig lo:0 192.168.3.254 broadcast 192.168.3.254 netmask 255.255.255.255 up
route add default gw 192.168.3.254 dev lo:0
注:以上配置重启后会失效,解决方法有两种
一,添加自启动脚本
二,修改配置文件
ARP修改:
sudo vim /etc/sysctl.conf
net.ipv4.conf.enp0s3.arp_ignore=1
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.enp0s3.arp_announce=2
net.ipv4.conf.all.arp_announce=2
#注意enp0s3为我虚拟机网卡
sysctl -p
centos网卡配置:/etc/sysconfig/network-scripts/ifcfg-<网卡名>
例:
DEVICE=lo:0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.3.254
NETMASK=255.255.255.255
GATEWAY=192.168.3.254
systemctl restart network #使配置生效
ubuntu网卡配置:/etc/network/interfaces
例:
auto lo:0
iface lo:0 inet static
address 192.168.3.254
netmask 255.255.255.255
gateway 192.168.3.254
systemctl restart networking #使配置生效
参考资料:
LVS之ipvsadm命令
图解LVS的工作原理
LVS 简介及使用
网友评论