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 配置节点服务器
- 部署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 ~]#
- 部署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