调度器中vip的作用:
DR模式的特点:
ARP协议:
网络层协议,将IP地址解析为物理MAC地址
ARP协议核心:
1、由于调度器和后端真实服务器都有相同地VIP地址,导致响应冲突,ARP通信紊乱
解决方法:
对真实服务器进行处理,真实服务器不响应针对VIP的ARP请求
vip地址使用LO的虚拟地址:arp_ignore=1
此时后端真实服务器只响应目的ip为本地ip,也就是rip,后端服务器真正ip地址,ens33网卡提供的地址的arp请求
2、返回报文使用的源地址还是VIP地址,调度器也是VIP,如何将响应返回到客户端不经过调度器
解决方法:
对后端服务器做一个内核参数的优化
arp_announce=2
系统不使用ip数据包的源地址来设置ARP的请求,而是使用真实的物理网卡的地址
实验配置:
20.0.0.10:调度器
20.0.0.20:nfs共享存储
20.0.0.61:web集群1
20.0.0.62:web集群2
20.0.0.100:vip地址
[root@pup1 ~]# modprobe ip_vs
[root@pup1 ~]# yum -y install ipvsadm
[root@pup1 ~]# ifconfig ens33:0 20.0.0.100/24
[root@pup1 ~]# vim /etc/sysctl.conf
--加入--
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
-------------------------------------------------------------------------------------------
net.ipv4.ip_forward = 0
#关闭服务器作为网关的转发功能
net.ipv4.conf.all.send_redirects = 0
#控制是否发送ICMP的重定向消息,禁止重定向
net.ipv4.conf.default.send_redirects = 0
#禁止默认网络接口,就是调度器的网卡,发送icmp的重定向消息
net.ipv4.conf.ens33.send_redirects = 0
#指明网卡设备,ens33不发送重定向消息
-------------------------------------------------------------------------------------------
[root@pup1 ~]# sysctl -p
[root@pup1 ~]# ipvsadm -A -t 20.0.0.100:80 -s rr
[root@pup1 ~]# ipvsadm -a -t 20.0.0.100:80 -r 20.0.0.61:80 -g
[root@pup1 ~]# ipvsadm -a -t 20.0.0.100:80 -r 20.0.0.62:80 -g
[root@pup1 ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@pup1 ~]# systemctl restart ipvsadm
配置完成
注:若是有bug显示为下图
[root@pup2 ~]# cd /opt
[root@pup2 opt]# mkdir pup benet
[root@pup2 opt]# vim /etc/exports
--添加--
/opt/pup 20.0.0.0/24(rw,sync)
/opt/benet 20.0.0.0/24(rw,sync)
[root@pup2 opt]# chmod 777 /opt/pup/ /opt/benet/
[root@pup2 opt]# systemctl restart rpcbind
[root@pup2 opt]# systemctl restart nfs
[root@pup2 opt]# exportfs -rv
exporting 20.0.0.0/24:/opt/benet
exporting 20.0.0.0/24:/opt/pup
[root@pup2 opt]# showmount -e
Export list for pup2:
/opt/benet 20.0.0.0/24
/opt/pup 20.0.0.0/24
[root@pup2 opt]# echo "this is pup" > pup/index.html
[root@pup2 opt]# echo "this is benet" > benet/index.html
61:
[root@nginx1 ~]# systemctl restart nginx
[root@nginx1 ~]# systemctl restart rpcbind
[root@nginx1 ~]# systemctl restart nfs
[root@nginx1 ~]# showmount -e 20.0.0.20
Export list for 20.0.0.20:
/opt/benet 20.0.0.0/24
/opt/pup 20.0.0.0/24
[root@nginx1 ~]# mount 20.0.0.20:/opt/pup /usr/local/nginx/html/
62:
[root@nginx2 ~]# systemctl restart nginx
[root@nginx2 ~]# systemctl restart rpcbind
[root@nginx2 ~]# systemctl restart nfs
[root@nginx2 ~]# showmount -e 20.0.0.20
Export list for 20.0.0.20:
/opt/benet 20.0.0.0/24
/opt/pup 20.0.0.0/24
[root@nginx2 ~]# mount 20.0.0.20:/opt/benet /usr/local/nginx/html/
61、62相同操作:
[root@nginx1 ~]# cd /etc/sysconfig/network-scripts/
[root@nginx1 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@nginx1 network-scripts]# vim ifcfg-lo:0
--删除原内容并加入--
DEVICE=lo:0
ONBOOT=yes
IPADDR=20.0.0.100
NETMASK=255.255.255.255
[root@nginx1 network-scripts]# ifup ifcfg-lo:0
61、62相同操作:
[root@nginx1 network-scripts]# route add -host 20.0.0.100 dev lo:0
#把vip的地址绑定到lo:0,作为LVS的vip,起到标识的作用,告诉调度器进行转发请求的ip地址寻址
[root@nginx1 network-scripts]# vim /etc/sysctl.conf
--加入--
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
-------------------------------------------------------------------------------------------
内核优化:
net.ipv4.conf.lo.arp_ignore = 1
#设置lo接口忽略来自任何接口的arp请求
net.ipv4.conf.lo.arp_announce = 2
#设置lo接口仅会响应本地的ip地址,其他的接口arp请求全部忽略
net.ipv4.conf.all.arp_ignore = 1
#所有接口忽略来自任何接口的arp请求
net.ipv4.conf.all.arp_announce = 2
#所有接口仅会响应本地的ip地址的arp请求,其他接口的arp请求全部忽略
-------------------------------------------------------------------------------------------
[root@nginx1 network-scripts]# sysctl -p
[root@pup1 ~]# ipvsadm -ln
[root@pup1 ~]# ipvsadm -E -t 20.0.0.100:80 -s wrr
[root@pup1 ~]# ipvsadm -ln
[root@pup1 ~]# ipvsadm -e -t 20.0.0.100:80 -r 20.0.0.61:80 -w 3
[root@pup1 ~]# ipvsadm -e -t 20.0.0.100:80 -r 20.0.0.62:80 -w 4
修改后先保存
[root@pup1 ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@pup1 ~]# systemctl restart ipvsadm
[root@pup1 ~]# ipvsadm -E -t 20.0.0.100:80 -s dh
NAT:
优点:配置简单
缺点:性能瓶颈
真实服务器:ANY
支持的网络模式:私网
后端服务器数量:low(10-20)
DR:(最常用)
优点:性能最好
缺点:调度服务器和后端真实服务器不能跨网段
真实服务器:NO-ARP,(ARP请求只能到真实服务器)
支持的网络模式:后端服务器既可以是内网,也可以是公网
真实服务器数量:100