搭建LVS_DR模型

系统准备

1.ubuntu
2.vmware,NAT模式,启动三台虚拟机。

模型图

搭建LVS_DR模型

node1作为LVS负载均衡服务器,node2和node3模拟应用程序(httpd)真实服务器。VIP 为192.168.100.100,采用轮训算法负载。

操作

node1

  • 安装ipvs客户端,yum -y ipvsadm
  • 配置VIP:ifconfig ens33:1 192.168.100.100/24
  • 配置连接入口:ipvsadm -A -t 192.168.100.100:80 -s rr
  • 配置连接出口之node2:ipvsadm -a -t 192.168.100.100 -r 192.168.174.4 -g -w 1
  • 配置连接出口值node3:ipvsadm -a -t 192.168.100.100 -r 192.168.174.5 -g -w 1

node2,node3

  • 修改内核:echo 1 > /proc/sys/net/ipv4/ens33/arp_ignore,echo 1 > /proc/sys/net/ipv4/all/arp_ignore,echo 2 > /proc/sys/net/ipv4/ens33/arp_announce,/proc/sys/net/ipv4/all/arp_announce,
  • 环回网卡增加不可见VIP:ifconfig lo:1 192.168.100.100 netmask 255.255.255.255
  • 安装应用程序httpd:yum -y install httpd
  • 编辑应用程序主页,便于识别:vi /var/www/html/index.html,输入 from 2号机(node2,node3就写4号机),保存退出
  • 启动应用程序:service httpd start
  • 验证应用程序已经启动:ubuntu的浏览器访问192.168.172.4/5,能正确访问

ubuntu 增加一个到 192.168.100.100 的路由:route add -net 192.168.100.100 netmask 255.255.255.255 gw 192.168.172.3

然后验证是否成功,浏览器输入 192.168.100.100,疯狂刷新,看是否在2号机和3号机之间来回切换,如果正确,则1号机可以看到ipvs的偷窥记录。其中 FIN_WAIT: 连接过,偷窥了所有的包 SYN_RECV: 基本上lvs都记录了,证明lvs没事,一定是后边网络层出问题 ![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210331094314870.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTM3MDg1OQ==,size_16,color_FFFFFF,t_70) 2号机器的记录 ![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210331094429322.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTM3MDg1OQ==,size_16,color_FFFFFF,t_70) 3号机的记录 ![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210331094524875.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTM3MDg1OQ==,size_16,color_FFFFFF,t_70) ## ipvs参数 隐藏vip方法:对外隐藏,对内可见: kernel parameter: 目标mac地址全为F,交换机出发广播 /proc/sys/net/ipv4/conf/*IF*/ arp_ignore:定义接收arp请求时的响应级别: 0:只要本地配置的有相应地址,就给予响应; 1:仅在请求的目标(mac)地址配置请求到达的接口上的时候,才给予响应 arp_announce:定义将自己的地址向外通告时的通告级别: 0:将本地任何接口上的任何地址向外通告; 1:视图仅向目标网络通告与其匹配的地址; 2:仅向与本地接口上地址匹配的网络进行通告

四种静态:
RR:轮循
WRR:
DH:
SH:
动态调度算法:
LC:最少连接
WLC:加权最少连接
SED:最短期望延迟
NQ:never queue
LBLC:基于本地的最少连接
DH:
LBLCR:基于本地的带复制功能的最少连接

ipvs内核模块
yum -y install ipvsadm

管理集群服务连接进来的
添加:-A -t|u|f service-address [-s scheduler]
-t:TCP协议的集群
-u:UDP协议的集群
service-address: IP:PORT
-f:FWM:防火墙标记
修改:-E
删除:-D -t|u|f service-address
ipvsadm -A -t 192.168.9.100:80 -s rr

管理集群服务连接匹配分发的
添加:-a -t|u|f service-address -r service-address [-g|i|m] [-w weight]
-t|u|f service-address:事先定义好的某集群服务
-r service-address:某RS的地址,在NAT模型中,可以使用IP:PORT实现端口映射;
[-g|i|m]:LVS类型
-g:DR
-i:TUN
-m:NAT
[-w weight]:定义服务器权重
修改: -e
删除: -d -t|u|f service-address -r server-address
ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 -g
ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -g
查看
-L|l
-n:数字格式显示主机地址和端口
–stats:统计数据
–rate:速率
–timeout:显示TCP、TCPFIN和UDP的会话超时时长
-c:显示当前的ipvs连接状况
删除所有集群服务
-C:清空ipvs规则
保存规则
-S
ipvsadm -S > /path/to/somefile
载入此前的规则
-R
ipvsadm -R < /path/to/somefile

上一篇:图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)


下一篇:ARP报文详解