yum -y install ipvsadm2、开启路由转发功能
[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 InActConn3、添加服务器节点
[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.614、安装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
确保它正常运行。
临时加载
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.617、真实服务器配置后端真实服务器网络的配置,以下配置两台真实服务器都要做。我这边就显示一个了,记住两个都要这样做。
这里需要注意:先安装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.619、注意事项除了上面零散的注意事项外,这里再给大家说一下,有三层交换机的公司,特别需要注意网络的架构。这种 “不同网段的nat模式”。我虽然配置成功了,但是由于真实服务器除了虚拟服务器的那个网卡填写了网关,其他都没有填写。我没法管理真实服务器,其实要想访问也有其他办法,将真实服务器的IP段加到三层交换机里面就可以了。
我是用虚拟机部署的,内核数据转发这种方法,占用CPU资源挺多的,在虚拟机里面性能感觉不咋的啊。我还是喜欢直接使用同网段。简单又方便,DR模式就更加繁琐,特别是网络的配置。出了故障就有点懵。



