目录 :
LVS-DR群集
ARP:IP解析MAC 响应报文 源IP --> VIP 目的IP --> CIP 发送响应报文需要经过网关路由器的转发,就需要先对网关IP进行ARP请求获取网关接口的MAC地址(因为主机在发送报文给对目标主机首先需要查询本地的ARP缓存表中有没有目标IP和目标MAC的对应关系,如果有则直接单播发送,如果没有则要先进行ARP广播探测请求解析到目标IP所对应的MAC地址) ARP请求报文 源IP --> VIP 源MAC --> 节点服务器MAC地址 目的IP --> 网关IP 目的MAC --> FF-FF-FF-FF-FF-FF-FF 广播地址 导致的问题: 网关的ARP缓存表 VIP --> 调度器MAC地址 被更新成 节点服务器MAC地址 (此时会造成网关的ARP缓存表的紊乱) 节点服务器物理网卡的IP -> 节点服务器MAC地址 LVS负载均衡群集 --DR模式数据包流向分析:
(1] 客户端发送请求到 Director Server (负载均衡器) ,请求的数据报文 (源IP 是 CIP,目标 IP 是 VIP) 到达内核空间。 (2) Director Server 利 Real Server在同一个网络中,数据通过二层数据链路层来传输。 (3) 内核空间判断数据包的目标IP是本机VIP,此时IPVS (IP虚拟服务器) 比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源 MAC地址为 Director Server 的 MAC地址,修改目标 MAC 地址为 Real Server 的MAC 地址,源 IP 地址与目标 IP 地址没有改变,然后将数据包发送给 Real Server。 (4)到达 Real Server 的请求报文的 MAC 地址是自身的 MAC地址,就接收此报文。数据包重新封装报文(源 IP 地址为 VIP,目标 IP 为CIP),将响应报文通过 lo 接口传送给物理网卡然后向外发出。 (5) Real Server 直接将响应报文传送到客户端。DR模式的特点:
(1) Director Server 和 Real Server 必须在同一个物理网络中。 (2) Real Server 可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对RIP 进行直接访问。 (3) Director Server作为群集的访问入口,但不作为网关使用。 (4) 所有的请求报文经由 Director Server,但回复响应报文不能经过Director Server。 (5) Real Server 的网关不允许指向 Director Server IP,即Real Server发送的数据包不允许经过 Director Server。 (6)Real Server 上的lo接口配置VIP的IP地址 重点: /etc/sysctl.conf arp_igore=1 防止网关路由器发送ARP广播时调度器和节点服务器都进行响应,导致ARP缓存表絮乱不对非本地物理网卡IP的ARP请求进行响应,因为VIP时承载lo:0 arp_announce=2 系统不使用响应数据包源IP地址 (VIP) 来作为本机进行ARP请求报文的源IP地址,而是用发送报文的物理网卡的IP地址作为ARP请求报文的源IP地址,这样可以防止网关路由器接受到源IP地址为VIP地址的ARP请求报文后有更新ARP缓存表,导致外网再发送请求时,数据包到不了 调度器。实验:
DR模式 LVS负载均衡群集部署 DR 服务器:192.168.63.100 Web 服务器1:192.168.63.130 Web 服务器2:192.168.63.150 vip:192.168.63.188 客户端:192.168.63.110 1.配置负载调度器(192.168.63.100) systemctl stop firewalld.service setenforce 0 modprobe ip_vs cat /proc/net/ip_vs yum -y install ipvsadm (1)配置虚拟 IP 地址(VIP:192.168.63.188) cd /etc/sysconfig/network-scripts/ cp ifcfg-ens33 ifcfg-ens33:0 #若隧道模式,复制为ifcfg-tunl0 vim ifcfg-ens33:0 DEVICE=ens33:0 ONBOOT=yes IPADDR=192.168.63.188 NETMASK=255.255.255.255 ifup ens33:0 ifconfig ens33:0 (2)调整 proc 响应参数 #由于 LVS 负载调度器和各节点需要共用 VIP 地址,需要关闭 icmp 的重定向,不充当路由器。 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 sysctl -p (3)配置负载分配策略 ipvsadm-save > /etc/sysconfig/ipvsadm systemctl start ipvsadm ipvsadm -C ipvsadm -A -t 192.168.63.188:80 -s rr ipvsadm -a -t 192.168.63.188:80 -r 192.168.80.130:80 -g #若隧道模式,-g替换为-i ipvsadm -a -t 192.168.80.188:80 -r 192.168.80.150:80 -g ipvsadm ipvsadm -ln #查看节点状态,Route代表 DR模式 2.部署共享存储(NFS服务器:192.168.63.110) systemctl stop firewalld.service setenforce 0 yum -y install nfs-utils rpcbind mkdir /opt/kgc /opt/benet chmod 777 /opt/kgc /opt/benet vim /etc/exports /usr/share *(ro,sync) /opt/kgc 192.168.63.0/24(rw,sync) /opt/benet 192.168.63.0/24(rw,sync) systemctl start rpcbind.service systemctl start nfs.service 3.配置节点服务器(192.168.63.130、192.168.63.150) systemctl stop firewalld.service setenforce 0 (1)配置虚拟 IP 地址(VIP:192.168.63.188) #此地址仅用作发送 Web响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器监听并分发)。因此使用虚接口 lo∶0 来承载 VIP 地址,并为本机添加一条路由记录,将访问 VIP 的数据限制在本地,以避免通信紊乱。 cd /etc/sysconfig/network-scripts/ cp ifcfg-lo ifcfg-lo:0 vim ifcfg-lo:0 DEVICE=lo:0 ONBOOT=yes IPADDR=192.168.63.188 NETMASK=255.255.255.255 #注意:子网掩码必须全为 1 ifup lo:0 ifconfig lo:0 route add -host 192.168.63.188 dev lo:0 vim /etc/rc.local /sbin/route add -host 192.168.63.188 dev lo:0 chmod +x /etc/rc.d/rc.local (2)调整内核的 ARP 响应参数以阻止更新 VIP 的 MAC 地址,避免发生冲突 vim /etc/sysctl.conf ...... net.ipv4.conf.lo.arp_ignore = 1 #系统只响应目的IP为本地IP的ARP请求 net.ipv4.conf.lo.arp_announce = 2 #系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 sysctl -p 或者 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 sysctl -p yum -y install nfs-utils rpcbind httpd systemctl start rpcbind systemctl start httpd --192.168.63.130--- mount.nfs 192.168.63.110:/opt/kgc /var/www/html echo 'this is kgc web!' > /var/www/html/index.html --192.168.80.150--- mount.nfs 192.168.63.110:/opt/benet /var/www/html echo 'this is benet web!' > /var/www/html/index.html 4.测试 LVS 群集 在客户端使用浏览器访问 http://192.168.63.188/
标签:ARP,LVS,群集,IP,地址,192.168,Server,MAC,DR From: https://www.cnblogs.com/qfrg/p/16916085.html