一、nat模式配置
环境说明:
DS:nat网卡(自动获取也可以,充当vip):
192.168.254.13
255.255.255.0
vmnet3网卡(仅主机):
172.16.100.1
255.255.255.0
RS1:(仅主机vmnet3)
172.16.100.10
255.255.255.0
172.16.100.1
RS2:(仅主机vmnet3)
172.16.100.20
255.255.255.0
172.16.100.1
安装lvs:
yum install ipvsadm
调度器上开启路由转发模式:
临时性:
echo 1 > /proc/sys/net/ipv4/ip_forward
永久性:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
ipvsadm配置:
ipvsadm -A -t 192.168.254.13:80 -s rr
ipvsadm -a -t 192.168.254.13:80 -r 172.16.105.10 -m
ipvsadm -a -t 192.168.254.13:80 -r 172.16.100.20 -m
ipvsadm命令:
查看lvs集群连接状态 ipvsadm -Ln --stats
查看lvs集群配置 ipvsadm -Ln
保存ipvs配置 ipvsadm-save
还原 ipvsadm-restore
ipvsadm -S > /etc/sysconfig/ipvsadm #把配置文件保存在配置文件中
ipvsadm -R
二、dr模式配置
虚拟机网卡模式:
DS:NAT(自动获取)
RS1:NAT(自动获取)
RS2:NAT(自动获取)
DR模式
direct_server:192.168.254.13
real_server:192.168.254.12
real_server:192.168.254.10
vip:192.168.254.250 #vip为虚拟服务ip
direct_server:yum install ipvsadm
老板
direct_server:
ipvsadm -C #清除配置信息
#添加对外提供的服务ip
ipvsadm -A -t 192.168.254.250:80 -s rr #-A为ADD -t为tcp -s rr为设置算法为轮叫算法
#添加2台real_server主机
ipvsadm -a -t 192.168.254.250:80 -r 192.168.254.12:80 -g #-a为add -t为tcp -r为realserver -g为DR路由模式
ipvsadm -a -t 192.168.254.250:80 -r 192.168.254.10:80 -g #-a为add -t为tcp -r为realserver -g为DR路由模式
#配置网卡的子网口为vip,ip地址为192.168.254.250
ifconfig ens33:0 192.168.254.250 broadcast 192.168.254.250 netmask 255.255.255.255 up
#添加路由(访问192.168.254.250都走ens33:0这个网卡)
route add -host 192.168.254.250 dev ens33:0
员工1 | 员工2
real_server:
#在回环地址的子网口上配置服务ip(vip)
ifconfig lo:0 192.168.254.250 broadcast 192.168.254.250 netmask 255.255.255.255 up
#添加路由
route add -host 192.168.254.250 dev 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/all/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
关闭:
echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0">/proc/sys/net/ipv4/conf/all/arp_announce
arp_ignore:定义接收到ARP请求时的响应级别
0:默认,只用本地配置的有响应地址都给予响应
1:仅仅在目标IP是本地地址,并且是配置在请求进来的接口上的时候才给予响应 (仅在请求的目标地址配置请求到达的接口上的时候,才给予响应)
arp_announce:定义将自己的地址向外通告时的级别
0:默认,表示使用配置在任何接口的任何地址向外通告
1:尽量仅向目标网络通告与其网络匹配的地址
2:仅向与本地接口上地址匹配的网络进行通告
三、tun隧道模式
lvs-server
ifconfig tunl0 192.168.254.250 broadcast 192.168.254.250 netmask 255.255.255.0 up
route add -host 192.168.254.250 dev tunl0
ipvsadm -A -t 192.168.254.250:80 -s rr
ipvsadm -a -t 192.168.254.250:80 -r 192.168.254.18 -i
ipvsadm -a -t 192.168.254.250:80 -r 192.168.254.19 -i
real_server
ifconfig tunl0 192.168.254.250 netmask 255.255.255.255 broadcast 192.168.254.250 up
route add -host 192.168.254.250 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
echo "0" >/proc/sys/net/ipv4/conf/tunl0/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/all/rp_filter
0:不开启源地址校验。
1:开启严格的反向路径校验。对每个进来的数据包,校验其反向路径是否是最佳路径。
如果反向路径不是最佳路径,则直接丢弃该数据包。
2:开启松散的反向路径校验。对每个进来的数据包,校验其源地址是否可达,即反向路径是否能通(通过任意网口),
如果反向路径不同,则直接丢弃该数据包。
四、ipvsadm语法及选项
1、语法:
ipvsadm -A|E -t|u|f [-s ] [-p ] [-M ] [-b ]
ipvsadm -D -t|u|f
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
ipvsadm -a|e -t|u|f -r [选项]
ipvsadm -d -t|u|f -r
ipvsadm -L|l [options]
ipvsadm -Z [-t|u|f ]
ipvsadm --set
ipvsadm --start-daemon [--mcast-interface ] [--syncid ]
ipvsadm --stop-daemon
ipvsadm -h
2、子命令:
--add-service -A 添加一个集群服务,需要使用选项
--edit-service -E 编辑一个集群服务,需要使用选项
--delete-service -D 删除指定集群服务,需要使用选项
--clear -C 删除所有集群服务,包括真实服务器转发策略规则
--restore -R 从标准输入中恢复策略规则
--save -S 保存策略规则到标准输出
--add-server -a 添加一个真实服务器,需要使用选项
--edit-server -e 编辑一个真实服务器,需要使用选项
--delete-server -d 删除一个真实服务器,需要使用选项
--list -L|-l 查看集群服务列表,包括真实服务器转发策略规则
--zero -Z 计数器清零。清除连接数、包转发等数量统计信息
--set 设置TCP、TCPFIN(TCP关闭连接状态)、UDP连接超时时间,用于会话保持。一般情况下TCP和UDP超时时间保持默认就好,TCPFIN
可以根据情况设定,指定它则用户请求连接关闭,该连接则会变
为非活跃(InActive)空闲等待状态,在空闲等待时间内,如果
来自同一源IP的请求,则还会转发给后端的同一台真实服务器上
--start-daemon 开启连接同步守护进程。在选项后面指定自己是Master(主)还是backup(备),主负载调度器会同步所有策略及连接状态到备负载调度器,当主故障,备可以接替其工作
--stop-daemon 停止连接同步守护进程
--help -h 显示帮助信息
3、集群服务相关
-A:添加一个集群服务
-t:tcp
-u:udp
-f:firewall-mark,通常用于将两个或以上的服务绑定为一个服务进行处理是使用,integer类型
service-address:
-t:ip:port
-u:ip:port
-f:firewall-mark
-s:调度算法,默认为wlc
-p:timout:persistent connection,持久连接
-E:修改定义过的集群服务
-D:-t|-u|-f service-address:删除指定得集群服务
4、RS(Real Server)相关
-a:向指定得CS(Cluster Service)中添加RS(Real Server)
-t|-u|-f service-address:指明将RS添加至哪个Cluster Service中
-r:指定RS(Real Server),可包含{IP[:port]},只有支持端口映射的LVS类型才允许此处使用跟集群服务中不同的端口
LVS类型:
-g:Gateway,DR(默认使用的类型)
-i:ipip,TUN
-m:masquerade(地址伪装),NAT
指定RS(Real Server)权重:
-w 取值范围0-65535
-e:修改指定的RS属性
-d:-t|-u|-f service-address -r server-address:从指定得集群服务中删除某RS
5、清空所有的集群服务:
-C
6、保存规则:(使用输出重定向)
ipvsadm-save
ipvsadm -S
7、载入指定的规则:(使用输入重定向)
ipvsadm-restore
ipvsadm -R
8、查看ipvsadm规则
ipvsadm -L [options]
-n:数字格式显示IP地址
-c:显示连接数相关信息
--stats:显示统计数据
--rate:速率
--exact:显示统计数据的精确值
9、计数器清零
-Z