【LVS实战】02 搭建一个LVS-NAT模式实验

一、网络结构

用虚拟机搭建如下的几台机器,并配置如下的ip

关于虚拟机网卡和网络的配置,可以参考 iptables章节,05节:网络转发实验

主机A模拟外网的机器

B为负载均衡的机器

C和D为 RealServer

二、C和D主机的网关设置

C和D机器要设置B为网关 ,这样C和D的数据,才能通过B,返回到C

三、C和D上安装上nginx

本实验为C和D安装好的docker应用:nginx。安装过程,略。启动好后,占用暴露为80端口。

修改一下nginx的首页,输出其IP,如:

bash 复制代码
cd /usr/share/nginx/html/
cat > index.html << EOF
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.9 </h1>
</body>
</html>
EOF

四、ipvsadm命令设置LVS

如果我们想要配置一个LVS-NAT集群,可以在角色为调度器的主机上执行如下ipvsadm命令。

bash 复制代码
ipvsadm -A -t VIP:port -s rr
ipvsadm -a -t VIP:port -r RIP1 -m
ipvsadm -a -t VIP:port -r RIP2 -m
ipvsadm -a -t VIP:port -r RIPN -m

在机器B上执行下面的命令

-m表示nat模式

bash 复制代码
[root@localhost ~]# ipvsadm -A -t 192.168.56.106:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.56.106:80 -r 10.1.0.9 -m
[root@localhost ~]# ipvsadm -a -t 192.168.56.106:80 -r 10.1.0.10 -m

[root@localhost ~]# ipvsadm -Ln
[root@localhost ~]# 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.56.106:80 rr
  -> 10.1.0.9:80                  Masq    1      0          0         
  -> 10.1.0.10:80                 Masq    1      0          0 

注意:上面的设置会在重启系统后失效

五、负载均衡请求效果

在主机A上执行curl命令,可以看到,是轮循访问两台主机

bash 复制代码
[root@localhost ~]# curl -X GET http://192.168.56.106
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.9 </h1>
</body>
</html>
[root@localhost ~]# curl -X GET http://192.168.56.106
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.10 </h1>
</body>
</html>

六、常用命令

  1. ipvsadm管理工具介绍(操作均基于centos6操作系统)

6.1 安装

ipvsadm可以直接使用yum安装

bash 复制代码
yum -y install ipvsadm

6.2 基本命令格式

虚拟服务器:

bash 复制代码
ipvsadm 选项 虚拟服务器地址 -s 算法

真实服务器:

bash 复制代码
ipvsadm 选项 虚拟服务器地址 -r 真实服务器地址 -w 权重值工作模式

6.3 常用参数

bash 复制代码
```text
-A 添加一个虚拟服务器,可跟ip或者ip:80(端口)
-E  编辑一个虚拟服务器
-D 删除一个虚拟服务器
-C 清空虚拟服务器
-R 还原规则-s保存规则
-a  添加一个真实服务器(RS)
-e  编辑一个真实服务器
-d  删除一个真实服务器
-t   使用tcp
-u   使用udp
-L  list 查看虚拟服务器列表
-s   指定算法
-r   指定真实服务器RIP
-g   指定工作模式为DR模式
-i   指定工作模式为tunl模式
-m  指定工作模式为NAT模式
-w  指定RS权重不能超过100
-c   查看连接状态可与L使用
-n   以数字的形式显示输出结果

6.4 实例

6.4.1 添加虚拟服务器

添加一个虚拟服务器IP地址为192.168.153.188,tcp服务,端口为80,算法为rr

bash 复制代码
[root@localhost ~]# ipvsadm -A -t 192.168.153.188:80 -s rr

6.4.2 添加真实服务器

添加一个真实服务器地址为192.168.153.163,端口为80,权重为1,工作模式为nat模式

bash 复制代码
[root@localhost ~]# ipvsadm -a -t 192.168.153.188:80 -r 192.168.153.163:80  -w 1 -m

添加一个真实服务器地址为192.168.153.167,端口为80,权重为1,工作模式为nat模式

bash 复制代码
[root@localhost ~]# ipvsadm -a -t 192.168.153.188:80 -r 192.168.153.167:80  -w 1 -m

6.4.3 使用 ipvsadm -Ln 命令查看添加结果

bash 复制代码
[root@localhost ~]# 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.153.188:80 rr
  -> 192.168.153.163:80           Local   1      0          0         
  -> 192.168.153.167:80           Masq    1      0          0        

6.4.4 保存配置结果(不然重启之后配置会丢失)

text 复制代码
ipvsadm -S > 保存的文件
 
或
 
ipvsadm-save > 保存的文件
bash 复制代码
[root@localhost ~]# ipvsadm -S > lvs.cfg
[root@localhost ~]# cat lvs.cfg 
-A -t localhost.localdomain:http -s rr
-a -t localhost.localdomain:http -r 10.1.0.9:http -m -w 1
-a -t localhost.localdomain:http -r 10.1.0.10:http -m -w 1

6.4.5 查看保存配置的文件

bash 复制代码
[root@localhost ~]# cat /etc/sysconfig/ipvsadm
-A -t 192.168.153.188:80 -s rr
-a -t 192.168.153.188:80 -r 192.168.153.163:80 -g -w 1
-a -t 192.168.153.188:80 -r 192.168.153.167:80 -m -w 1

6.4.6 删除真实服务器

删除上面添加的163真实服务器

bash 复制代码
[root@localhost ~]# ipvsadm -d -t 192.168.153.188:80 -r 192.168.153.163:80

6.4.7 使用 ipvsadm -Ln 命令查看删除结果

163真实服务器已经被删除

bash 复制代码
[root@localhost ~]# 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.153.188:80 rr
  -> 192.168.153.167:80           Masq    1      0          0  

6.4.8 删除虚拟服务器

root@localhost \~\]# ipvsadm -D -t 192.168.153.188:80 #### 6.4.9 清空虚拟服务器 ```bash [root@localhost ~]# ipvsadm -C ``` #### 6.4.10 重新读取保存的配置文件并查看 所有的配置已经恢复(上面的删除操作并没有保存) ```bash [root@localhost ~]# service ipvsadm restart ipvsadm: Clearing the current IPVS table: [ OK ] ipvsadm: Unloading modules: [ OK ] ipvsadm: Clearing the current IPVS table: [ OK ] ipvsadm: Applying IPVS configuration: [ OK ] [root@localhost ~]# 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.153.188:80 rr -> 192.168.153.163:80 Local 1 0 0 -> 192.168.153.167:80 Masq 1 0 0 ```

相关推荐
树℡独5 小时前
ns-3仿真之应用层(五)
服务器·网络·tcp/ip·ns3
zhang133830890756 小时前
CG-09H 超声波风速风向传感器 加热型 ABS材质 重量轻 没有机械部件
大数据·运维·网络·人工智能·自动化
酣大智8 小时前
接口模式参数
运维·网络·网络协议·tcp/ip
24zhgjx-lxq9 小时前
华为ensp:MSTP
网络·安全·华为·hcip·ensp
ling___xi9 小时前
《计算机网络》计网3小时期末速成课各版本教程都可用谢稀仁湖科大版都可用_哔哩哔哩_bilibili(笔记)
网络·笔记·计算机网络
REDcker9 小时前
Linux 文件描述符与 Socket 选项操作详解
linux·运维·网络
Up九五小庞9 小时前
用arpspoof实现100%批量切断192.168.110.10 - 192.168.110.100 断网(双向欺骗)--九五小庞
网络·开源
躺柒9 小时前
读数字时代的网络风险管理:策略、计划与执行04风险指引体系
大数据·网络·信息安全·数字化·网络管理·网络风险管理
独角鲸网络安全实验室10 小时前
本地信任成“致命漏洞”:数千Clawdbot Agent公网裸奔,供应链与内网安全告急
网络·网关·安全·php·漏洞·clawdbot·信任机制漏洞
ai_xiaogui10 小时前
Tailscale实现家庭与公司网络双向通信教程:子网路由配置详解
网络·tailscale·双向通信·子网路由配置详解·tailscale双向互访