个人整理
- DR模式
- 调度器配置192.168.100.25
- 配置NFS存储服务器192.168.100.28
- web1服务器 192.168.100.26
- web2服务器192.168.100.27
- 配置路由
- 验证
DR模式
直接路由
●Direct Routing,简称DR模式
●采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各
地,而是与调度器位于同一个物理网络
●负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道
准备环境:
服务器 系统 ip 作用
客户端 win10 192.168.75.10 客户机测试访问lvs负载集群
调度器 centos7.6 192.168.100.25(物理网口)| 192.168.100.100 (vip地址) LVS调度器
web1 centos7.6 192.168.100.26(物理网口)| 192.168.100.100(vip地址) 提供web服务
web2 centos7.6 192.168.100.27(物理网口)| 192.168.100.100(vip地址) 提供web服务
nfs存储 centos7.6 192.168.100.28 nfs共享服务
声明:
咱们先说下DR模式下,需要注意的地方和问题!!
1.问题
在局域网中具有相同的IP地址,势必会造成各服务器ARP通信的紊乱
●当ARR广播发送到LVS-DR集群时,因为负载均衡器和节点服务器都是连接到相同的网络上,它们都会接收到ARP广播
●只有前端的负载均衡器进行响应,其他节点服务器不应该响应ARP广播
解决:
对节点服务器进行处理,使其不响应针对VIP的ARP请求
#设置内核参数arp_ ignore=1: 系统只响应目的IP为本地IP的ARP请求
2,问题
■RealServer返回报文(源IP是VIP)经路由器转发,重新封装报文时,需要先获取路由器的MAC地址
■发送ARP请求时,Linux默认使用IP包的源IP地址(即VIP) 作为ARP请求包中的源IP地址,而不使用发送接口的ip地址
如:ens33
3.路由器收到ARP请求后,将更新ARP表项
原有的VIP对应Director的MAC地址会被更新为VIP对应RealServer的mac地址
4.问题、
●路由器根据ARP表项,会将新来的
请求报文转发给RealServer,导致
Director的VIP失效
解决方法
●对节点服务器进行处理,设置内核参数
arp_ announce=2: 系统不使用IP包的
源地址来设置ARP请求的源地址,而选
择发送接口的IP地址
修改/etc/sysctl.conf 文件
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
调度器上修改/etc/sysctl.conf 文件
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
调度器配置192.168.100.25
【1】配置虚拟IP地址(VIP)
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0
[root@localhost network-scripts]# vi ifcfg-ens33:0
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.100.100
NETMASK=255.255.255.255
[root@localhost network-scripts]# ifup ifcfg-ens33:0
[root@localhost network-scripts]# ifconfig
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.100 netmask 255.255.255.0 broadcast 192.168.32.255
ether 00:0c:29:9b:a7:cc txqueuelen 1000 (Ethernet)
【2】调整/proc响应参数 对于 DR 群集模式来说,由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭 Linux 内核的重定向参数响应
服务器不是一台路由器,那么它不会发送重定向,所以可以关闭该功能
vi /etc/sysctl.conf
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@localhost network-scripts]# sysctl -p ###生效
【3】配置负载分配策略
[root@localhost /]# ipvsadm -v
[root@localhost ~]#yum -y install ipvsadm
[root@localhost ~]# modprobe ip_vs
[root@localhost ~]# cat /proc/net/ip_vs
[root@localhost ~]#ipvsadm -A -t 192.168.100.100:80 -s rr
[root@localhost ~]#ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.26:80 -g -w 1
[root@localhost ~]#ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.27:80 -g -w 1
配置NFS存储服务器192.168.100.28
1.安装nfs-utils rpcbind
yum -y install nfs-utils #nfs必须安装的,不然无法识别nfs格式,
yum -y install rpcbind
2.创建共享测试目录,和网页文件
mkdir /opt/as1 /opt/as2
echo 'this is as1' >/opt/as1/index.html #写些数据定义web1
echo 'this is as2' >/opt/as2/index.html #写些数据定义web2
3.添加共享目录,
vi /etc/exports #将共享目录添加在配置内,相当于发布
/opt/as1 192.168.100.0/24(rw,sync)
/opt/as2 192.168.100.0/24(rw,sync)
#重启服务,设置开机自启
systemctl restart nfs
systemctl restart rpcbind
systemctl enable nfs
systemctl enable rpcbind
showmount -e #查看当前共享的目录
Export list for localhost.localdomain:
/opt/as2 192.168.100.0/24
/opt/as1 192.168.100.0/24
web1服务器 192.168.100.26
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vi ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.100.100
NETMASK=255.255.255.255
ONBOOT=yes
ifup lo:0
ifconfig
vi /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
sysctl -p
1.安装nfs ,rpcbind 服务
yum -y install nfs-utils #nfs必须安装的,不然无法识别nfs格式,
yum -y install rpcbind
2.查看nfs存储服务器共享,需输入nfs地址
showmount -e 192.168.100.28
Export list for 192.168.100.28:
/opt/as2 192.168.100.0/24
/opt/as1 192.168.100.0/24
3.安装apache web服务器!咱们直接yum安装了
yum -y install httpd
systemctl restart httpd #开启httpd服务
systemctl enable httpd
4.将nfs的共享目录下的测试网页,挂载到apahce下的html下
mount 192.168.100.28:/opt/as1/ /var/www/html/
vi /etc/fstab #配置文件下添加
192.168.100.28:/opt/as1 /var/www/html/ nfs defaults,_netdev 0 0
init 6 #重启服务,验证搭建环境是否正确!
web2服务器192.168.100.27
准备环境
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@localhost network-scripts]# vi ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.100.100
NETMASK=255.255.255.255
ONBOOT=yes
ifup lo:0
ifconfig
vi /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
sysctl -p
1.安装nfs ,rpcbind 服务
yum -y install nfs-utils #nfs必须安装的,不然无法识别nfs格式,
yum -y install rpcbind
2.查看nfs存储服务器共享,需输入nfs地址
showmount -e 192.168.100.28
Export list for 192.168.100.28:
/opt/as2 192.168.100.0/24
/opt/as1 192.168.100.0/24
3.安装apache web服务器!咱们直接yum安装了
yum -y install httpd
systemctl restart httpd #开启httpd服务
systemctl enable httpd
4.将nfs的共享目录下的测试网页,挂载到apahce下的html下
mount 192.168.100.28:/opt/as2/ /var/www/html/
vi /etc/fstab #配置文件下添加
192.168.100.28:/opt/as2 /var/www/html/ nfs defaults,_netdev 0 0
init 6 #重启服务,验证搭建环境是否正确!
配置路由
VM2网卡 ------路由-------VM1网卡(LVS负载均衡集群)
验证
win10 (VM2网卡) 验证!
输入LVS负载均衡集群地址;(vip地址)192.168.100.100