栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

LVS负载均衡NAT模式实现不同网段的部署

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LVS负载均衡NAT模式实现不同网段的部署

LVS负载均衡NAT模式实现不同网段的部署

1、安装ipvsadm
yum -y install ipvsadm
2、开启路由转发功能
[root@localhost ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

[root@localhost ~]# cat /etc/sysctl.conf 
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_forward = 1

[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1

加载ip_vs模块

[root@localhost ~]# modprobe ip_vs
[root@localhost ~]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn

3、添加服务器节点
[root@localhost ~]# ipvsadm -C   #清除内核虚拟服务器表中的所有记录
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
[root@localhost ~]# ipvsadm -A -t 10.5.6.61:80 -s rr     #添加虚拟服务器
[root@localhost ~]# ipvsadm -a -t 10.5.6.61:80 -r 192.168.0.62:80 -m  #添加服务器节点
[root@localhost ~]# ipvsadm -a -t 10.5.6.61:80 -r 192.168.0.63:80 -m  #添加服务器节点
[root@localhost ~]#  ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.5.6.61:80 rr
  -> 192.168.0.62:80              Masq    1      0          1         
  -> 192.168.0.63:80              Masq    1      1          0         

选项注释
“-A”:表示添加虚拟服务器
“-a”:表示添加真实服务器
“-t”:用来指定VIP地址及TCP端口
“-r”:用来指定RIP地址及TCP端口
“-s”:用来指定负载调度算法——rr(轮询)、wrr(加权轮询)、lc(最少连接)、wlc(加权最少连接)
“-m”:表示使用NAT群集模式(是DR模式,是TUN模式)

删除虚拟服务器

[root@localhost ~]# ipvsadm -D 10.5.6.61
4、安装iptables
[root@server61 ~]# yum -y install iptables-services

[root@server61 ~]# systemctl start iptables     #启动iptables
[root@server61 ~]# systemctl enable iptables    #设置iptables开机自启动
[root@server61 ~]# iptables -V
iptables v1.4.21


确保它正常运行。

5、将模块加载到内核中

临时加载

modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state

永久加载

cat >>/etc/rc.local< 

检验是否加载成功

[root@localhost ~]# lsmod | egrep 'filter|nat|ipt'
nf_nat_ftp             12809  0 
nf_conntrack_ftp       18478  1 nf_nat_ftp
xt_nat                 12681  1 
iptable_nat            12875  1 
nf_nat_ipv4            14115  1 iptable_nat
nf_nat                 26583  3 nf_nat_ftp,nf_nat_ipv4,xt_nat
ipt_REJECT             12541  0 
nf_reject_ipv4         13373  1 ipt_REJECT
iptable_filter         12810  0 
nf_conntrack          139224  8 nf_nat_ftp,ip_vs,nf_nat,xt_state,nf_nat_ipv4,xt_conntrack,nf_conntrack_ftp,nf_conntrack_ipv4
ip_tables              27126  2 iptable_filter,iptable_nat
libcrc32c              12644  4 xfs,ip_vs,nf_nat,nf_conntrack

如果没有加载成功可以使用:

depmod -a   #执行全部内核加载命令
6、开启nat转换

开始配置nat转换前,先清空nat的默认配置

iptables -F -t nat

验证是否清空

[root@localhost ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination 
加入nat转换规则

从网卡ens192进来的数据包,且源地址是10.5.0.0/16,则将源地址转换为192.168.0.61

iptables -t nat -A POSTROUTING -s 10.5.0.0/16 -o ens192 -j SNAT --to-source 192.168.0.61

注意: prerouting 是进来的数据包。postrouting 是出去的数据包,这两个单词有点像,这里不要搞反了。

[root@localhost ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  10.5.0.0/16          0.0.0.0/0            to:192.168.0.61

7、真实服务器配置

后端真实服务器网络的配置,以下配置两台真实服务器都要做。我这边就显示一个了,记住两个都要这样做。

这里需要注意:先安装apache,再改网关,不然网关改掉就无法上网了,还安装个毛线啊!

安装apache

安装完成之后,写点区分的内容

[root@localhost ~]# yum -y install httpd
...
[root@localhost ~]# vim /var/www/html/index.html
添加:
server01
网关指向虚拟服务器dip

真实服务器RS1、RS2
192.168.0.62
192.168.0.63

这两个ip的网卡网关全部指向192.168.0.61,这里就不写了

注意事项:如果你的真实服务器是双网卡或多网卡,那么除了指向虚拟服务器的网卡外,其他所有网卡都不要填写网关。否则,哼哼,你就掉到坑里了。

8、验证效果
[root@localhost ~]# curl 10.5.6.61
server 01
[root@localhost ~]# curl 10.5.6.61
server 02
[root@localhost ~]# curl 10.5.6.61
server 01
[root@localhost ~]# curl 10.5.6.61
server 02
[root@localhost ~]# curl 10.5.6.61
server 01
[root@localhost ~]# curl 10.5.6.61
server 02
[root@localhost ~]# curl 10.5.6.61
server 01
[root@localhost ~]# curl 10.5.6.61
server 02
[root@localhost ~]# curl 10.5.6.61
9、注意事项

除了上面零散的注意事项外,这里再给大家说一下,有三层交换机的公司,特别需要注意网络的架构。这种 “不同网段的nat模式”。我虽然配置成功了,但是由于真实服务器除了虚拟服务器的那个网卡填写了网关,其他都没有填写。我没法管理真实服务器,其实要想访问也有其他办法,将真实服务器的IP段加到三层交换机里面就可以了。

我是用虚拟机部署的,内核数据转发这种方法,占用CPU资源挺多的,在虚拟机里面性能感觉不咋的啊。我还是喜欢直接使用同网段。简单又方便,DR模式就更加繁琐,特别是网络的配置。出了故障就有点懵。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/841489.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号