双网卡(双IP,内外网)的集群vip映射
公司的服务器构架比较复杂,建立了一个主从热备的centos7服务器,分别有内网,外网,和VIP。
环境:
ha-01 内网:192.168.1.221 外网:XX.XX.XX.221
ha-02 内网:192.168.1.222 外网:XX.XX.XX.222
VIP:192.168.1.232
公司搭建了自己的网站,但因为两台主机外网IP皆无法开通80端口,就另外申请了一个宽带,开通80端口用作访问网站用。外网IP为XX.XX.XX.232。但根据需求,公司还保留有原先宽带,作为其他业务需求。
但是,用XX.XX.XX.232的路由做映射时发现了问题。双网卡(双IP,内外网)的情况下,路由无法正常映射到主机上,无论是主机物理IP还是VIP。通过网络上查询,有关于双IP(内外网)如何做映射的文章,却没如何映射到VIP的文章。网络上通常是将单台双网卡(内外网)的主机上设置静态路由,以达到映射成功的目的。但是,vip却无法做静态路设置,这导致主从结构的服务器根本无法实现映射。
解决思路:
1. 通过实验发现,内网里,如果有一台单内网主机做数据的内网转发,数据是能成功转发至双网卡主机上
2. 将路由映射至这台单内网主机,再由这台主机转发至VIP
实验开始:
准备一台单内网主机,这里我用一台192.168.1.152的win7主机。
win系统自带一个强大的转发工具,叫netsh,netsh即便在系统重启后,配置也会保留,所以重启服务器不会影响已经生效的转发配置,并且设置是及时生效。
转发前需要提前开启IP HELP服务,并安装IPV6协议
192.168.1.152运行cmd,输入:
netsh interface portproxy add v4tov4 listenport=80 connectaddress=192.168.1.232 connectport=80
注:上述语句意思是监听来自80端口的数据,并转发至192.168.1.232的80端口
经测试网站正常打开
备注:
查看所有规则
netsh interface portproxy show all
监听8080端口,转发数据至192.168.1.101的8080端口
netsh interface portproxy add v4tov4 listenport=8080 connectaddress=192.168.1.101 connectport=8080
删除规则
netsh interface portproxy delete v4tov4 listenport=8080
指定来自ip转发
netsh interface portproxy add v4tov4 listenaddress=192.168.193.1 listenport=701 connectaddress=192.168.192.128 connectport=701
删除
netsh interface portproxy delete v4tov4 listenaddress=192.168.193.1 listenport=701
上一篇: vue.js自定义指令学习
下一篇: jQuery 三击事件实现代码