LVS负载均衡集群——NAT模式部署!

1. NAT部署

1.1 实验环境

LVS负载调度器:ens33:192.168.152.130
ens37:192.168.52.10(vmnet1)
Web 节点服务器1:192.168.152.129
Web 节点服务器2:192.168.152.128
NFS服务器:192.168.152.127 (可以选择不做nfs共享)
客户端(win10模拟外网):192.168.52.20 (Vmnet1)

1.2 配置节点服务器

  1. 部署LVS服务器:
[root@server ~]# ifconfig ens37 192.168.52.10
[root@lvs ~]# yum install ntp -y
[root@lvs ~]# yum -y install ntpdate ntp
[root@lvs ~]# ntpdate ntp.aliyun.com
[root@lvs ~]# 
[root@lvs ~]# vim /etc/sysctl.conf
#配置SNAT转发规则
net.ipv4.ip_forward = 1

[root@lvs ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@lvs ~]# systemctl  start firewalld
[root@lvs ~]# iptables -F
[root@lvs ~]# iptables -t nat -F
[root@lvs ~]# systemctl start firewalld.service
[root@lvs ~]# iptables -t nat -A POSTROUTING -s 192.168.152.0/24 -o ens37 -j SNAT --to-source 192.168.52.10 
[root@lvs ~]# iptables -t nat -L
......省略
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  192.168.152.0/24     anywhere             to:192.168.52.10

#加载LVS内核模块,手动加载ip_vs模块
[root@lvs ~]# modprobe ip_vs
[root@lvs ~]# cat /proc/net/ip_vs
##查看ip_vs版本信息

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  
#安装ipvsadm管理工具
[root@lvs ~]# yum install -y ipvsadm

#注意:启动服务前必须保存负载分配策略,否则将会报错
[root@lvs ~]# ipvsadm-save > /etc/sysconfig/ipvsadm

#配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)
[root@lvs ~]# ipvsadm -C
#清除原有策略
[root@lvs ~]# ipvsadm -A -t 192.168.52.10:80 -s rr
#添加虚拟服务器,指定VIP地址和端口,轮询方式

#添加后端真实服务器,使用nat群集模式,权重为1
[root@lvs ~]# ipvsadm -a -t 192.168.52.10:80 -r 192.168.152.129:80 -m -w 1
[root@lvs ~]# ipvsadm -a -t 192.168.52.10:80 -r 192.168.152.128:80 -m -w 1

[root@lvs ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  lvs:http rr
  -> 192.168.152.128:http         Masq    1      0          0         
  -> 192.168.152.129:http         Masq    1      0          0         
[root@lvs ~]# ipvsadm -ln
#查看节点状态,Masq代表NAT模式

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.52.10:80 rr
  -> 192.168.152.128:80           Masq    1      0          0         
  -> 192.168.152.129:80           Masq    1      0          0         
[root@lvs ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
 #保存策略
[root@lvs ~]# 
[root@lvs ~]# 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.52.10:80 rr
  -> 192.168.152.128:80           Masq    1      0          0         
  -> 192.168.152.129:80           Masq    1      0          0         

[root@lvs ~]# 

  1. 部署WEB服务器:
web1:
[root@localhost ~]# hostnamectl set-hostname web1 #修改主机名
[root@localhost ~]# su
[root@web1 ~]# yum install ntp -y
[root@web1 ~]# yum -y install ntpdate ntp
[root@web1 ~]# ntpdate ntp.aliyum.com 
#同步阿里云时钟服务器
[root@web1 ~]# yum install -y httpd 
#安装web服务
[root@web1 ~]# systemctl start httpd
[root@web1 ~]# echo 'this is web1' > /var/www/html/index.html 
#修改网页文件
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
 #修改网关为LVS服务器

GATEWAY=192.168.152.130

[root@web1 ~]# systemctl restart network
web2:
[root@web2 ~]# yum install ntp -y
[root@web2 ~]# yum -y install ntpdate ntp
[root@web2 ~]# yum install -y httpd
[root@web2 ~]# systemctl start httpd
[root@web2 ~]# echo 'this is web2' > /var/www/html/index.html
[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

GATEWAY=192.168.152.130

[root@web2 ~]# systemctl restart network
[root@web2 ~]# 

1.3 验证是否成功

这边另外再开一台虚拟机,设置跟win0一样的ip地址
ip:192.168.52.20
网关:192.168.52.10 (lvs的ens37的网卡地址)
在命令行里面输入命令,确保可以进行访问:

[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.52.20  netmask 255.255.255.0  broadcast 192.168.52.255
        inet6 fe80::c739:dae8:f6af:56e6  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:eb:37:33  txqueuelen 1000  (Ethernet)
        RX packets 362853  bytes 521514038 (497.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 88571  bytes 5483678 (5.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost ~]# curl 192.168.52.10
this is web1
[root@localhost ~]# curl 192.168.52.10
this is web2

这时候切回lvs服务器,可以看到次数发生了变化

[root@lvs ~]# 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.52.10:80 rr
  -> 192.168.152.128:80           Masq    1      0          1         
  -> 192.168.152.129:80           Masq    1      0          1         

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值