单个公网IP实现LTM+GTM的HA
由于在电信机房,可分配的网通IP奇缺,只有1个可用的网通公网IP,如果正常配置两台F5做LTM+GTM的方式至少网通需要3个可用公网IP才能实现,不得以只能试着在F5前端放一台防火墙,做地址映射,虽然违背了F5的设计理念,但细想了一下,理论上也是可以实现的,值得尝试。
系统拓扑图:
主要配置实现:
1) 电信防火墙由于可用IP足够可直接配置透明模式,这样公网IP都配置在F5上,按照常规的步骤配置就行。
2) 网通防火墙配置成路由模式,外网使用cnc的地址112.xxx.xxx.xxx,内网和F5的cnc_vlan之间都使用私网段2.2.2.0/24,F5上的VS配置2.2.2.5,网关指向防火墙内网。
3) 因为需要GTM对网通来源的解析,需要在防火墙上映射公网IP的53端口到CNC的浮动IP 2.2.2.2 ,应用访问需要开放什么端口就映射公网IP到VS 2.2.2.5。
4) 因为需要GTM的智能DNS解析返回网通的地址,所以还是需要在F5上配置VS为联通的公网地址112.xxx.xxx.xxx,作为wideip调用pool中的VS,但是GTM中pool的健康状态,除了VS本身(取决于LTM中调用pool),还需要相应网段的link状态。所以如果不建立网通的link,解析还是无法返回正确的公网IP. 因次用cnc的网关112.xxx.xxx.xxx作为link地址,monitor方式只能使用gateway_icmp,无法使用bigip_link
主要技术实现:
5) 由于没有交换机扩展,需要在防火上拉2根网线分别接到主备F5,juniper防火墙上配置是接口为Redundant模式,同时绑定2个内网口,带来的问题是默认情况下只有1个口可以工作,这样当F5发生手动failover切换时,端口无法跟着切换,需要手动disables F5的接口状态才能切换,当硬件宕机时发生failover,接口自动down掉,可以自动切换。
6) 通过icontrol设置软件故障比如TMM进程重启引起的failover切换,防火墙接口也切换
1.在备机上添加文件soapreq_set_disabled.txt ,通过icontrol,disable interface。
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<m:set_enabled_state xmlns:m="urn:iControl:Networking/Interfaces">
<interfaces xsi:type="tns:Common.StringSequence">
<interface>1.1</interface>
</interfaces>
<states xsi:type="tns:Common.EnabledStateSequence">
<state type="tns:Common.EnabledState">STATE_DISABLED</state>
</states>
</m:set_enabled_state>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
2.在备机上添加shell脚本,通过SNMP来判断主机是否发生HA切换
# vi autodisable.sh
#!/bin/bash
while true; do
A=`snmpwalk -c public -v2c 1.1.1.2 -On 1.3.6.1.4.1.3375.2.1.1.1.1.19.0 | awk '{print $4}'`
if [ $A -eq 0 ]; then
curl --data-binary @soapreq_set_disabled.txt https://admin:[email protected]/iControl/iControlPortal.cgi --insecure
fi
sleep 10
done
3)设置后台执行脚本,不挂断的运行命令,
nohup ./autodisable.sh >/dev/null 2>&1 &
转载于:https://blog.51cto.com/ydt619/455991