9,LVS

2020-06-03  本文已影响0人  A孑木

【安装】

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 简介及使用

上一篇下一篇

猜你喜欢

热点阅读