实战-LVS-NAT集群模式

实战-LVS-NAT集群模式

1. LVS-NAT 模式工作原理

客户端访问调度器时,调度器通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。

如图:

步骤1:客户端访问VIP1的网站

 

 

 

图上各IP注解:

CIP  客户端的IP

VIP  是域名解析的IP, 是集群对外的公网IP

DIP  用来和后端服务器进行数据交互的IP, 请求报文转发给后端服务器从此口出去

RIP  真实服务器的IP

步骤2:客户端访问调度器时,调度器通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;

  

 

 

步骤3:真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。

 

 

步骤总结及过程地址变化:

1: 客户端请求访问www.example.com[www.example.com  ===>  VIP]

               源地址: CIP   目标地址: VIP

              

        2: 请求报文到达负载均衡器

               源地址: CIP   目标地址: RIP

              

        3: RealServer收到报文处理, 响应

               源地址: RIP            目标地址: CIP

              

        4: 负载调度器收到报文, 根据自身之前的转发修改记录, 还原报文

               源地址: VIP            目标地址: CIP

 

2.实战-LVS-NAT集群

 

 

 

原理简图:

 

 

 

 

 拓扑图:

 

 

部署安装

 1、IP地址规划:

服务器 ip类型  IP 注:
dirctor分发器 VIP 10.27.17.91 ens33  客户端可以访问
DIP 192.168.8.1 ens37  与web服务器同一网段
realserver1(web1) RIP 192.168.8.2 ens33与DIP在一个网段,并且网关是DIP
realserver1(web2) RIP 192.168.8.3 ens33 与DIP在一个网段,并且网关是DIP
client CIP 10.27.17.41 可以访问VIP地址

 

 

 

 

 

2、配置网络环境

[root@dirctor ~]# vim /etc/sysctl.conf  

改:net.ipv4.ip_forward = 0

为:net.ipv4.ip_forward = 1

让配置生效:

[root@dirctor ~]#  sysctl -p

 

添加一个网卡(需要两张网卡), 配置成以下网络环境:

ens33  10.27.17.91  模式:桥接模式    模拟公网

ens37  192.168.8.1  模式:LAN1       模拟内网

[root@dirctor ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=288e688f-dd28-46f7-9ce2-debee7c1ce34
DEVICE=ens33
ONBOOT=yes
IPADDR=10.27.17.91
NETMASK=255.255.255.0
GATEWAY=10.27.17.1
DNS1=61.139.2.69

[root@dirctor ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens37

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.8.1
NETMASK=255.255.255.0

3 安装: LVS管理工具:ipvsadmin

[root@dirctor ~]# yum install ipvsadm  

[root@dirctor ~]# systemclt enable ipvsadm

4、使用ipvsadm命令设置规则

[root@dirctor ~]#  ipvsadm -A -t 10.27.17.91:80 -s rr       #rr代表轮循 

选项:

        -A 添加虚拟服务器

 -t 表示TCP的服务  VIP:PORT

 -s 指定调度算法  rr表示round-robin 轮循

 

[root@dirctor ~]#  ipvsadm -a -t 10.27.17.91:80 -r 192.168.8.2 -m

[root@dirctor ~]#  ipvsadm -a -t 10.27.17.91:80 -r 192.168.8.3 -m

选项:

 -a 表示添加real server的地址

 -r 指定real server的IP地址

 -m 表示masquerade 也就是NAT方式的LVS

查看

[root@dirctor ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.27.17.91:80 rr
-> 192.168.8.2:80 Masq 1 0 0
-> 192.168.8.3:80 Masq 1 0 0

 

5、realserver 配置安装

 

[root@realserver1 ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens37

BOOTPROTO=none

NAME=ens37

DEVICE=ens37
ONBOOT=yes
IPADDR=192.168.8.2
NETMASK=255.255.255.0

GATEWAY=192.168.8.1

[root@realserver1 ~]yum install -y httpd

[root@realserver1 ~]echo "192.168.8.2" > /var/www/html/index.html  

[root@realserver1 ~]systemctl restart httpd

[root@realserver1 ~]systemctl enable httpd

realserver2 同上操作

 

6、测试

 

 

 

posted @ 2019-09-26 00:17  科子  阅读(178)  评论(0编辑  收藏  举报