|NO.Z.00008|——————————|^^ 构建 ^^|——|LVS-NAT构建.V2|——|4台server|

一、LVS-NAT概述
### --- LVS_NAT

~~~     C:20.20.20.22:充当本机的客户端
~~~     D:Eht0:20.20.20.11:负载路由器网卡0:公网地址:和C:20.20.20.22公网相互连接
~~~     D:Eht1:10.10.10.11:负载路由器网卡1:模拟的是私有地址
~~~     RS1:Eth0:10.10.10.12:私有地址:Apache充当负载路由器真实服务器地址
~~~     RS2:Eth0:10.10.10.13:私有地址:Apache充当负载路由器真实服务器地址
~~~     C 想访问真实服务器:C会发起一个数据包:
~~~     原地址是:20.20.20.22;目标地址指向负载路由器的Eth0:20.20.20.11;
~~~     访问到负载路由器的外网网卡之后,数据包会发给负载路由器,
~~~     负载路由器LVS组件会根据自己的算法把它改为RS1或RS2机器的IP地址,
~~~     此环境使用的是S-NAT转换;
~~~     假设数据包发送给RS1,RS1接收到数据报文之后,RS1会回信给网关,
~~~     此环境它会把网关指向负载调度器10.10.10.11,负载调度器会把这个数据报文传递给客户端。
~~~     为了维持原目标地址对调的一致性,所以在负载路由器使用了S-NAT地址转换去保证它的一致性。
二、环境准备:
### --- 本机地址为20.20.20.11:
### --- 本机网络配置:VMnet1——>属性——>IPV4——>高级——>20.20.20.22/255.255.255.0

### --- 实验环境
~~~     Windows:20.20.20.22:client:本地物理主机
~~~     server1:10.10.10.11:充当负载调度器,2块网卡,仅主机模式,默认会跳转到VMnet1上。
~~~     server2:10.10.10.12:真实物理服务主机RS1;仅主机模式
~~~     server3:10.10.10.13:真实物理服务主机RS2;仅主机模式
三、实验基础环境配置:
### --- HA-server1:10.10.10.11,HA-server2:10.10.10.12,HA-server3:10.10.10.13
### --- 配置网卡信息

[root@server11 ~]# cd /etc/sysconfig/network-scripts/
[root@server11 network-scripts]# vim ifcfg-eth1
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.10.10.11
NETMASK=255.255.255.0
[root@server11 network-scripts]# vim ifcfg-eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=20.20.20.11
NETMASK=255.255.255.0
[root@server11 network-scripts]# service network restart
[root@server11 network-scripts]# ip addr                                    // 查看网卡是否生效
### --- 关闭网卡守护进程

[root@server11 ~]# service NetworkManager stop
Stopping NetworkManager daemon:                            [  OK  ]
[root@server11 ~]# chkconfig NetworkManager off
 
### --- 其它物理业务真实服务器也需要关闭
[root@server11 ~]# service NetworkManager stop && chkconfig NetworkManager off 

四、LVS实验构建:HA-server1:10.10.10.11
### --- HA-server1:10.10.10.11
### --- 安装ipvsadm

[root@server11 ~]# yum install -y ipvsadm
### --- 开启路由转发

[root@server11 ~]# vim /etc/sysctl.conf                                     // 开启路由转发功能
# Controls IP packet forwarding
net.ipv4.ip_forward = 1                                                     // 改为1,表示开启;0表示不开启

[root@server11 ~]# sysctl -p
net.ipv4.ip_forward = 1
### --- 开启iptables
[root@server11 ~]# service iptables start
iptables: Applying firewall rules:               [  OK  ]
[root@server11 ~]# chkconfig iptables on
 [root@server11 ~]# iptables -F                                             // 清空它的默认规则

### --- 添加一条防火墙规则
[root@server11 ~]# iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j SNAT --to-source 20.20.20.11
// -t nat POSTROUTING把nat表中的POSTROUTING;
//-s 10.10.10.0/24:的时候;                                                 ——>内网环境中的网段
//-o eth0:出口网卡是eth0的时候, 
//-j SNAT:进行一次SNAT转换,
//--to-soutce:20.20.20.11:把原地址准换为20.20.20.11                          ——>eth0环境中的网卡

### --- 添加防火墙记录,当源地址是内网网段并且出口网卡为eth0 的时候进行SNAT转换,转换源地址为外网卡地址
[root@server11 ~]# iptables -t nat  -L                                      // 查看记录是否保存成功
SNAT       all  --  10.10.10.0/24        anywhere            to:20.20.20.11 
[root@server11 ~]# service iptables save                                    // 保存规则,防止重启后失效
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
[root@server11 ~]# chkconfig iptables on                                    // 设置开机自启动
### --- 添加LVS-NAT TCP集群规则
 
[root@server11 ~]# ipvsadm  -A -t 20.20.20.11:80 -s rr                      // 添加ipvsadm TCP集群地址
[root@server11 ~]# ipvsadm  -a -t 20.20.20.11:80  -r  10.10.10.12:80 -m     // 添加ipvsadm集群节点
[root@server11 ~]# ipvsadm  -a -t 20.20.20.11:80  -r  10.10.10.13:8080 -m   // LVS-NAT模式支持端口映射,证明实验是否是否生效
[root@server11 ~]# ipvsadm -Ln
TCP  20.20.20.11:80 rr
  -> 10.10.10.12:80               Masq    1      0          0         
  -> 10.10.10.13:8080             Masq    1      0          0 
### --- 保存ipvs集群设置到文件进行持久化

[root@server11 ~]# service ipvsadm save                                     
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [  OK  ]
[root@server11 ~]# chkconfig ipvsadm on            
五、LVS实验构建:HA-server2:10.10.10.12
### --- LVS实验构建:HA-server2:10.10.10.12
### --- 添加网关    //真实服务器只需要把网关指向到负载调度器(路由器)

[root@server12 ~]# echo "GATEWAY=10.10.10.11" >> /etc/sysconfig/network-scripts/ifcfg-eth0
[root@server12 ~]# service network restart
### --- 查看路由配置是否生效
### --- 去任何地方都交给10.10.10.11地址处理

[root@server12 ~]# route -n 
 0.0.0.0         10.10.10.11     0.0.0.0         UG    0      0        0 eth0
### --- 开启Apache服务
 
[root@server12 ~]# service httpd start
[root@server12 ~]# chkconfig httpd on
[root@server12 ~]# echo "11111111111" >> /var/www/html/index.html
[root@server12 ~]# curl localhost
11111111111
六、LVS实验构建:HA-Server3:10.10.10.13
### --- HA-Server3:10.10.10.13
### --- 添加网关    //真实服务器只需要把网关指向到负载调度器(路由器)

[root@server13 ~]# echo "GATEWAY=10.10.10.11" >> /etc/sysconfig/network-scripts/ifcfg-eth0
[root@server13 ~]# service network restart
### --- 查看路由配置是否生效

[root@server13 ~]# route -n 
 0.0.0.0         10.10.10.11     0.0.0.0         UG    0      0        0 eth0
### --- 开启Apache服务 
 
[root@server13 ~]# service httpd start
[root@server13 ~]# echo "22222222222" >> /var/www/html/index.html
[root@server13 ~]# vim /etc/httpd/conf/httpd.conf                   
Listen 8080                                                                 // 修改默认端口为8080
[root@server13 ~]# service httpd restart
[root@server13 ~]# chkconfig httpd on
[root@server13 ~]# curl localhost:8080
22222222222

七、验证:
1、通过IE浏览器:http://20.20.20.11/
2、在负载调度器服务器上验证
### --- 在负载调度器服务器上验证
### --- 入站-出站:数据都有,LVS-NAT模式及负责入站又负责出站

[root@server11 ~]# ipvsadm -Ln --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  20.20.20.11:80                     28      140      138    19219    13588
  -> 10.10.10.12:80                     14       70       70     9830     7061
  -> 10.10.10.13:8080                   14       70       68     9389     6527

附录一:实验架构图
附录二:构建代码:
### --- 负载调度器

vi /etc/sysctl.conf                                                         // 开启路由转发功能
    net.ipv4.ip_forward=1
sysctl -p
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j SNAT -j SNAT --to-source 20.20.20.11
### --- 添加防火墙记录,当源地址是内网网段并且出口网卡为eth0 的时候进行SNAT转换,转换源地址为外网卡地址

iptables -t nat  -L                                                         / /查看记录是否保存成功
ipvsadm  -A -t 20.20.20.11:80 -s rr                                         // 添加ipvsadm TCP集群
ipvsadm  -a  20.20.20.11:80  -r  10.10.10.12:80 -m                          // 添加ipvsadm节点
ipvsadm -Ln
service ipvsadm save                                                        // 保存ipvs集群设置到文件进行持久化
chkconfig ipvsadm on  
### --- 真实服务器

route add default gw IP地址                                                  // 指定网关至负载调度器
service httpd start                                                         // 开启Apache服务器
chkconfig httpd on

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(30)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示