前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >负载均衡集群LVS-Linux Virtual Server-03

负载均衡集群LVS-Linux Virtual Server-03

原创
作者头像
用户8639654
修改2021-07-14 16:36:52
4780
修改2021-07-14 16:36:52
举报
文章被收录于专栏:云计算运维

三、LVS NAT 模式搭建【扩展】

三台服务器A、B、C:

1、 A: load balancer

(调度器dir,分发器) 在虚拟机设置里添加新网卡并设为仅主机模式连接,查看IP

内网网卡:192.168.31.128,网关保持不变(192.168.31.2)

外网网卡:192.168.229.128,不用设置,重启网络即可,此地址跟网卡设置里看到的地址保持一致

代码语言:javascript
复制
[root@xulei.com ~]# setenforce 0 # 关闭selinux
[root@xulei.com ~]# systemctl stop firewalld # 停止firewalld
[root@xulei.com ~]# systemctl disable firewalld # 关闭firewalld
[root@xulei.com ~]# yum install -y iptables-services # 安装iptables
[root@xulei.com ~]# systemctl enable iptables # 添加iptables服务
[root@xulei.com ~]# service iptables start # 启动iptables服务
[root@xulei.com ~]# iptables -F # 清空iptables规则
[root@xulei.com ~]# service iptables save # 保存空规则

1、创建 LVS 的 NAT 规则脚本

代码语言:javascript
复制
[root@xulei.com ~]# vim /usr/local/sbin/lvs_nat.sh
#! /bin/bash
# director 服务器上开启路由转发功能
[root@xulei.com ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
# 关闭icmp的重定向,开启icmp则无法将数据包转发至real server上,也无法返回
[root@xulei.com ~]# echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
[root@xulei.com ~]# echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
[root@xulei.com ~]# echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
[root@xulei.com ~]# echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
# director 设置nat防火墙
[root@xulei.com ~]# iptables -t nat -F 清空所有规则
[root@xulei.com ~]# iptables -t nat -X 清空所有链
[root@xulei.com ~]# iptables -t nat -A POSTROUTING -s 192.168.31.0/24 -j MASQUERADE 增加路由转发规则
# director设置ipvsadm变量
IPVSADM='/usr/sbin/ipvsadm'
$IPVSADM -C # 清空所有规则
$IPVSADM -A -t 192.168.229.128:80 -s wlc -p 3 # 保持登陆时限persistent 设为0会报错
# 访问规则,-A指定转发模式,-t指定分发器ip, -s指定调度算法(rr,wrr,wlc,lc)-p登陆保持时限,3秒
$IPVSADM -a -t 192.168.229.128:80 -r 192.168.31.129:80 -m -w 1
# 转发规则,-a指定转发规则 -t指定director ip,-r指定real server ip -m指定NAT模式(masquerade) -w指定权重为1
$IPVSADM -a -t 192.168.229.128:80 -r 192.168.31.130:80 -m -w 1
# 转发规则,-a指定转发规则 -t指定director ip,-r指定real server ip -m指定NAT模式(masquerade) -w指定权重为1

2、给脚本设权

代码语言:javascript
复制
[root@xulei.com ~]# chmod 755 /usr/local/sbin/lvs_nat.sh

3、执行脚本

代码语言:javascript
复制
[root@xulei.com ~]# sh /usr/local/sbin/lvs_nat.sh

排错:当给主规则的登陆保持时限(persistent)设为0时,执行脚本会报错

代码语言:javascript
复制
[root@xulei.com ~]# /usr/local/sbin/lvs_nat.sh
invalid timeout value `0' specified
Memory allocation problem

2、B: real server

(web服务器) 内网网卡:192.168.31.129 网关改为129.168.31.128

安装nginx,并启动,在默认主页里写入,real server 1 关闭selinux,清空防火墙规则

3、C: real server

(web服务器) 内网网卡:192.168.31.130 网关改为129.168.31.128

安装nginx,并启动,在默认主页里写入,real server 2 关闭selinux,清空防火墙规则

4、测试

浏览器里访问192.168.229.128,(A主机外网网卡地址)多刷新几次看结果,服务器的切换。

浏览器上因为有本地缓存的原因,虽已经设定了登陆保持时限为1秒,但每次刷新都会保持在real server 2主机上。可以在调度机里用 curl 192.168.229.128 测试访问,调度算法采用rr,效果更明显。

1、用 ipvsadm 命令查看转发规则

代码语言:javascript
复制
[root@xulei.com ~]# 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.229.128:80 wlc persistent 1
-> 192.168.31.129:80 Masq 1 0 0
-> 192.168.31.130:80 Masq 1 0 0

2、查看 iptables nat 链的转发规则

代码语言:javascript
复制
[root@xulei.com ~]# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 26 packets, 4015 bytes)
pkts bytes target prot opt in out source destination

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 2 packets, 404 bytes)
pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 1 packets, 328 bytes)
pkts bytes target prot opt in out source destination
7 532 MASQUERADE all -- * * 192.168.31.0/24 0.0.0.0/0

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 三、LVS NAT 模式搭建【扩展】
    • 1、 A: load balancer
      • 1、创建 LVS 的 NAT 规则脚本
        • 2、给脚本设权
          • 3、执行脚本
            • 2、B: real server
              • 3、C: real server
                • 4、测试
                  • 1、用 ipvsadm 命令查看转发规则
                    • 2、查看 iptables nat 链的转发规则
                    相关产品与服务
                    NAT 网关
                    NAT 网关(NAT Gateway)提供 IP 地址转换服务,为腾讯云内资源提供高性能的 Internet 访问服务。通过 NAT 网关,在腾讯云上的资源可以更安全的访问 Internet,保护私有网络信息不直接暴露公网;您也可以通过 NAT 网关实现海量的公网访问,最大支持1000万以上的并发连接数;NAT 网关还支持 IP 级流量管控,可实时查看流量数据,帮助您快速定位异常流量,排查网络故障。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档