【LVS-NAT模式集群搭建】

简单来说可以分为四步:
第一步:客户端请求访问,源地址:CIP,目标地址:VIP;
第二步:请求报文到达负载均衡器,源地址:CIP,目标地址:RIP;
第三步:Real Server接收到报文,处理并响应(回头了),源地址:RIP,目标地址:CIP;
第四步:负载均衡器收到报文,根据之前的转发修改记录还原报文,源地址VIP,目标地址CIP。
在这里插入图片描述

以下131网段是外网IP,8网段是内网IP
node1 192.168.131.107(nat模式) 172.24.8.253(仅主机模式) 负载均衡器(Director)
node2 192.168.5.102(仅主机模式)(网关为负载均衡器的内网IP) 真实服务器1
node3 192.168.5.103(仅主机模式)(网关为负载均衡器的内网IP) 真实服务器2

准备环境:
1.配置主机的ip地址:
node1负载均衡器:

[root@node1 ~]# nmcli connection modify ens33 ipv4.addresses 192.168.131.107/24 ipv4.gateway 192.168.131.2 connection.autoconnect yes
[root@node1 ~]# nmcli connection modify ens38 ipv4.addresses 172.24.8.253/24  ipv4.method manual connection.autoconnect yes
[root@node1 ~]# nmcli con up ens33
连接已成功激活(D-Bus 路径:/org/freedesktop/NetworkManager/ActiveConnection/5[root@node1 ~]# nmcli con up ens37
连接已成功激活(D-Bus 路径:/org/freedesktop/NetworkManager/ActiveConnection/5[root@node1 ~]# nmcli con reload 

node2真实服务器1:指定网关为node1的内网ip

root@node2 ~]# nmcli connection modify ens33 ipv4.addresses 172.24.8.111/24 ipv4.gateway 172.24.8.253 connection.autoconnect yes
[root@node2 ~]# nmcli con up ens33
连接已成功激活(D-Bus 路径:/org/freedesktop/NetworkManager/ActiveConnection/5[root@node2 ~]# nmcli con reload 

node3真实服务器2:指定网关为node1的内网ip

root@node3 ~]# nmcli connection modify ens33 ipv4.addresses 172.24.8.112/24 ipv4.gateway 172.24.8.253 connection.autoconnect yes
[root@node3 ~]# nmcli con up ens33
连接已成功激活(D-Bus 路径:/org/freedesktop/NetworkManager/ActiveConnection/5[root@node3 ~]# nmcli con reload 

2.搭建时间服务器:保证集群内的主机时间同步
服务端172.24.8.253:

[root@node1 ~]# vim /etc/chrony.conf 
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 172.24.8.253 iburst
allow 172.24.8.0/24
local stratum 10
[root@node1 ~]# systemctl restart chronyd

客户端172.24.8111和172.24.8.112:
node2:

[root@node2 ~]# vim /etc/chrony.conf 
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 172.24.8.253 iburst
[root@node2 ~]# systemctl restart chronyd
[root@node2 ~]# chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^? 119.28.206.193                2  10     0  131m   +309us[ -101us] +/-   65ms
^? 84.16.73.33                   1  10     0  134m  -3923us[-4218us] +/-  111ms
^? 162.159.200.1                 3  10     0  133m  +6155us[+5860us] +/-  101ms
^? 94.130.49.186                 3  10     0  132m  +5978us[+5978us] +/-  113ms

node3重复上述操作。
3.集群全部关闭防火墙,关闭selinux

systemctl stop firewalld
systemctl disable firewalld
vim /etc/selinux/config
SELINUX=disabled

步骤:
1.开启负载均衡器node1上的路由转发功能
一、临时配置,立即生效
方法1:

[root@node1 ~]# echo 1> /proc/sys/net/ipv4/ip_forward
[root@node1 ~]# cat /proc/sys/net/ipv4/ip_forward
1

方法2:

[root@node1 ~]# sysctl -w net.ipv4.ip_forward=1

二、永久配置

[root@node1 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@node1 ~]# sysctl -p

2.在真实服务器node2和node3上两台真实服务器上安装nginx用于测试
node2:

[root@node2 ~]#  yum install -y nginx-1.10.0-1.el7.ngx.x86_64.rpm
[root@node2 ~]# cd /usr/share/nginx/html
[root@node2 html]# mv index.html{,.bak}
[root@node2 html]# echo "web1 test page" > index.html
[root@node2 html]# ls
index.html  index.html.bak
[root@node2 html]# systemctl enable --now nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
[root@node2 html]# curl localhost
web1 test page

node3上述操作:

[root@node3 html]# echo "web2 test page" > index.html
[root@node3 html]# curl localhost
web2 test page

3.在负载均衡器node1上安装ipvsadmin,用ipvsadm命令设置规则:添加虚拟服务器、添加真实服务器、NAT模式

[root@node1 ~]# yum -y install ipvsadm
[root@node1 ~]# ipvsadm -A -t 192.168.131.107:80 -s rr //-A添加虚拟服务器,-t服务器的IP地址和端口,-s指定调度算法:rr表示轮询调度算法
[root@node1 ~]# ipvsadm -a -t 192.168.131.107:80 -r 172.24.8.111:80 -m //-a添加真实服务器,-r真实服务器的IP地址和端口,-m使用NAT模式
[root@node1 ~]# ipvsadm -a -t 192.168.131.107:80 -r 172.24.8.112:80 -m
[root@node1 ~]# ipvsadm -ln //-L列出IPVS表,-n显示IP和端口
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.131.107:80 rr
  -> 172.24.8.111:80              Masq    1      0          0         
  -> 172.24.8.112:80              Masq    1      0          0
[root@node1 ~]# ipvsadm --save > /etc/sysconfig/ipvsadm //保存,也可以使用ipvsadm -S > /etc/sysconfig/ipvsadm
[root@node1 ~]# cat /etc/sysconfig/ipvsadm
-A -t node1:http -s rr
-a -t node1:http -r 172.24.8.111:http -m -w 1
-a -t node1:http -r 172.24.8.112:http -m -w 1

4.测试:在外网主机192.168.131.207上访问192.168.131.107

[root@node4 ~]# for ((i=1;i<=6;i++)); do curl 192.168.131.107; done
web1 test page
web2 test page
web1 test page
web2 test page
web1 test page
web2 test page

在这里插入图片描述
在这里插入图片描述

扩展:ipvsadm参数

-A --add-service    在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器。 
-E --edit-service      编辑内核虚拟服务器表中的一条虚拟服务器记录。 
-D --delete-service  删除内核虚拟服务器表中的一条虚拟服务器记录。 
-C --clear                 清除内核虚拟服务器表中的所有记录。 
-R --restore             恢复虚拟服务器规则 
-S --save                 保存虚拟服务器规则,输出为-R 选项可读的格式 
-a --add-server       在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。也就是在一个虚拟服务器中增加一台新的真实服务器 
-e --edit-server       编辑一条虚拟服务器记录中的某条真实服务器记录 
-d --delete-server    删除一条虚拟服务器记录中的某条真实服务器记录 
-L|-l --list                  显示内核虚拟服务器表 
-Z --zero                  虚拟服务表计数器清零(清空当前的连接数量等) 
--set tcp tcpfin udp  设置连接超时值 
--start-daemon        启动同步守护进程。他后面可以是master 或backup,用来说明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived的VRRP 功能。 
--stop-daemon        停止同步守护进程 
-h --help                  显示帮助信息 
其他的选项: 
-t --tcp-service service-address        说明虚拟服务器提供的是tcp 的服务[vip:port] or [real-server-ip:port] 
-u --udp-service service-address      说明虚拟服务器提供的是udp 的服务[vip:port] or [real-server-ip:port] 
-f --fwmark-service fwmark               说明是经过iptables 标记过的服务类型。 
-s --scheduler scheduler                   使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc. 
-p --persistent [timeout]                   持久稳固的服务。这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。 
-M --netmask                                    netmask persistent granularity mask 
-r --real-server server-address         真实的服务器[Real-Server:port] 
-g --gatewaying                                指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式) 
-i --ipip                                              指定LVS 的工作模式为隧道模式 
-m --masquerading                           指定LVS 的工作模式为NAT 模式 
-w --weight weight                           真实服务器的权值 
--mcast-interface interface              指定组播的同步接口 
-c --connection                                  显示LVS 目前的连接 如:ipvsadm -L -c 
--timeout                                        显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout 
--daemon                                          显示同步守护进程状态 
--stats                                              显示统计信息 
--rate                                                显示速率信息 
--sort                                                对虚拟服务器和真实服务器排序输出 
--numeric -n                                      输出IP 地址和端口的数字形式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑着蜗牛追汤圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值