LVS的DR模式

目录

一.实验环境

1.路由器

2.调度器

3.真实服务器

4.客户端

二.实验配置

1.路由器中打开内核路由器功能

2.RS主机中使vip不对外响应

3.在LVS主机和RS主机添加vip

4.在VS中添加调度策略

三.测试


一.实验环境

一台客户端、一台路由器、一台调度器、两台真实服务器

VMVare网络设置NAT模式子网IP为172.25.254.0,仅主机模式子网IP为192.168.0.0

1.路由器

VMVare设置eth0网卡为NAT模式,eth1为仅主机模式

XML 复制代码
[root@router ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-namw=eth0

[ipv4]
address1=172.25.254.100/24,172.25.254.2
method=manual
dns=114.114.114.114;

[root@router ~]# cat /etc/NetworkManager/system-connections/eth1.nmconnection 
[connection]
id=eth1
type=ethernet
interface-namw=eth1

[ipv4]
address1=192.168.0.100/24
method=manual

2.调度器

VMVare设置eth1网卡为仅主机模式

XML 复制代码
[root@LVS ~]# cat /etc/NetworkManager/system-connections/eth1.nmconnection 
[connection]
id=eth1
type=ethernet
interface-namw=eth1

[ipv4]
address1=192.168.0.50/24,192.168.0.100
method=manual

3.真实服务器

VMVare设置eth0网卡为仅主机模式

XML 复制代码
[root@webserver1 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-namw=eth0

[ipv4]
address1=192.168.0.10/24,192.168.0.100
method=manual
XML 复制代码
[root@webserver2 ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-namw=eth0

[ipv4]
address1=192.168.0.20/24,192.168.0.100
method=manual

4.客户端

VMVare设置eth0网卡为仅主机模式

XML 复制代码
[root@client ~]# curl 192.168.0.200
webserver2 - 192.168.0.20
[root@client ~]# cat /etc/NetworkManager/system-connections/eth0.nmconnection 
[connection]
id=eth0
type=ethernet
interface-namw=eth0

[ipv4]
address1=172.25.254.200/24,172.25.254.100
method=manual

二.实验配置

1.路由器中打开内核路由器功能

XML 复制代码
[root@router ~]# echo "net.ipv4.ip_forward=1" > /etc/sysctl.conf
XML 复制代码
[root@router ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0

2.RS主机中使vip不对外响应

XML 复制代码
[root@webserver1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore      
[root@webserver1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
[root@webserver1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@webserver1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
XML 复制代码
[root@webserver2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore      
[root@webserver2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 
[root@webserver2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore 
[root@webserver2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 

3.在LVS主机和RS主机添加vip(临时添加,关机重启后需要重新添加)

XML 复制代码
[root@LVS ~]# ip a a 192.168.0.200/32 dev lo
XML 复制代码
[root@webserver1 ~]# ip a a 192.168.0.200/32 dev lo
XML 复制代码
[root@webserver2 ~]# ip a a 192.168.0.200/32 dev lo

4.在VS中添加调度策略

XML 复制代码
[root@LVS ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

[root@LVS ~]# ipvsadm -A -t 192.168.0.200:80 -s wrr
[root@LVS ~]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g -w 1
[root@LVS ~]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20:80 -g -w 2

[root@LVS ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.200:80 wrr
  -> 192.168.0.10:80              Route   1      0          0         
  -> 192.168.0.20:80  

三.测试

XML 复制代码
[root@client ~]# for i in {1..10}
> do
> curl 192.168.0.200
> done
webserver2 - 192.168.0.20
webserver1 - 192.168.0.10
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver1 - 192.168.0.10
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
webserver1 - 192.168.0.10
webserver2 - 192.168.0.20
webserver2 - 192.168.0.20
相关推荐
2401_858936884 分钟前
【Linux C 编程】标准 IO 详解与实战:从基础接口到文件操作实战
linux·c语言
Roc.Chang16 分钟前
Ubuntu 下 VLC 无法启动(Segmentation fault)终极解决方案
linux·ubuntu·vlc·媒体播放
松涛和鸣44 分钟前
72、IMX6ULL驱动实战:设备树(DTS/DTB)+ GPIO子系统+Platform总线
linux·服务器·arm开发·数据库·单片机
简单中的复杂1 小时前
【避坑指南】RK3576 Linux SDK 编译:解决 Buildroot 卡死在 host-gcc-final 的终极方案
linux·嵌入式硬件
wVelpro2 小时前
如何在Pycharm 2025.3 版本实现虚拟环境“Make available to all projects”
linux·ide·pycharm
程序员老舅2 小时前
C++高并发精髓:无锁队列深度解析
linux·c++·内存管理·c/c++·原子操作·无锁队列
雨中风华2 小时前
Linux, macOS系统实现远程目录访问(等同于windows平台xFsRedir软件的目录重定向)
linux·windows·macos
爱吃生蚝的于勒3 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
The森3 小时前
Linux IO 模型纵深解析 01:从 Unix 传统到 Linux 内核的 IO 第一性原理
linux·服务器·c语言·经验分享·笔记·unix
期待のcode3 小时前
Redis的主从复制与集群
运维·服务器·redis