LVS DR,TUN,NAT模型
LVS DR,TUN,NAT模型(DR模型试验搭建)
LVS linux虚拟服务器功能是负载均衡,有
NAT 桥接模式
DR 直接路由模式
TUN 隧道模式
CIP 客户端IP
VIP 唯一入口IP
DIP 分发IP
RIP 真实IP
NAT桥接模式
使用目标地址转换,CIP请求VIP,将VIP装换为DIP,转RIP
优点:解决了负载均衡问题
缺点:非对称性D-NAT,下载和上传速度不一致,带宽成为瓶颈,消耗算力
DR直接路由模式
优点:基于2层,进行mac地址欺骗,速度快,成本低
特点:隐藏VIP,对外隐藏,对内可见
TUN 隧道技术
如:VPN,翻墙,在源数据包的基础上包了一层数据包,速度较DR低,较NAT快
DR直接路由模式实验手册
虚拟机准备
软件准备:
- VMware15.5 ,虚拟机软件;
- CentOs8,镜像;
- finalShell,远程连接工具
步骤
1.安装虚拟机镜像
2.点击复制镜像,分别取名为node01,node02,node03,node04
步骤:选项卡鼠标右击==》管理 ==》克隆
3.四台虚拟机分别开机,并用远程工具连接
1.查看虚拟机IP并用远程工具链接
ifconfig
注:一定要用root管理员权限登录
2.关闭虚拟机防火墙
systemctl stop firewalld.service
临时关闭防火墙
systemctl disable firewalld
永久关闭防火墙,重启不用重新设置
注:不关闭防火墙,会在后面的步骤请求不到,被防火墙拦截
3.开始配置
IP地址记录:
- node01: 192.168.247.134
- node02: 192.168.247.135
- node03: 192.168.247.136
- node04: 192.168.247.137
node01操作,设置VIP
ifconfig ens33:8 192.168.247.100/24
解释:设置ens33网卡的另一个IP192.168.247.100,子网掩码255.255.255.0
命令中ens33网卡名,:8数字随便写,相当于子进程,子程序的意思。/24==》子网掩码,前三段是3个由二进制8个1,一个0组成,1111-1111.1111-1111.1111-1111.0,3*8=24,简写为24,16为后两位为0,255.255.0.0.
node2,node3操作
修改内核
echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
命令解释:echo 重定向。linux系统一切基于文件,用重定向命令命令修改内核参数
隐藏VIP方法:对外隐藏,对内可见 :kernel parameter:目标mac地址为全F,交换机触发广播
/proc/sys/net/ipv4/conf/*IF*/
arp_ignore: 定义接收到ARP请求时的响应级别;
0:只要本地配置的有相应地址,就给予响应;
1:仅在请求的目标(MAC)地址配置请求
到达的接口上的时候,才给予响应;
arp_announce:定义将自己地址向外通告时的通告级别;
0:将本地任何接口上的任何地址向外通告;
1:试图仅向目标网络通告与其网络匹配的地址;
2:仅向与本地接口上地址匹配的网络进行通告;
设置隐藏的vip:
ifconfig lo:3 192.168.247.100 netmask 255.255.255.255
lo环回网卡,相当于window中的127.0.0.1地址
此时注意:如果lo环回接口设置子网掩码一定是255.255.255.255,不是/24(255.255.255.0)否则将会进入死循环,数据包永远发不出去,远程连接直接断开
安装httpd
yum install httpd -y
service httpd start
vi /var/www/html/index.html
文件中写入 from 192.168.247.13X
命令解释:
yum install httpd -y 安装httpd,Apache的一个静态服务器
service httpd start 启动httpd命令,默认80端口
vi /var/www/html/index.html 创建index,html文件。httpd服务器默认html地址
网页验证,浏览器打开192.168.247.135,可以看到
from 192.168.247.135
node01设置
yum install ipvsadm
ipvsadm -A -t 192.168.227.100:80 -s rr
ipvsadm -a -t 192.168.227.100:80 -r 192.168.227.135 -g -w 1
ipvsadm -a -t 192.168.227.100:80 -r 192.168.227.136 -g -w 1
ipvsadm -ln
yum install ipvsadm 安装ipvs客户端
-A 设置入口IP(VIP)为192.168.227.100:80
-t 协议为tcp协议
-s 负载模式
rr 轮询模式
四种静态:
rr:轮循
wrr:
dh:
sh:
动态调度方法:
lc: 最少连接
wlc: 加权最少连接
sed: 最短期望延迟
nq: never
queueLBLC: 基于本地的最少连接
DH:
LBLCR: 基于本地的带复制功能的最少连接
到这一步,已经配置好了,可以开始验证了
浏览器访问 192.168.227.100 看到负载 疯狂F5
结论
node01:
netstat -natp 结论看不到socket连接
node02~node03:
netstat -natp 结论看到很多的socket连接
node01:
ipvsadm -lnc 查看偷窥记录本
TCP 00:57 FIN_WAIT 192.168.150.1:51587 192.168.150.100:80 192.168.150.12:80
FIN_WAIT: 连接过,偷窥了所有的包
SYN_RECV: 基本上lvs都记录了,证明lvs没事,一定是后边网络层出问题