单个公网IP实现LTM+GTM的HA

由于在电信机房,可分配的网通IP奇缺,只有1个可用的网通公网IP,如果正常配置两台F5LTM+GTM的方式至少网通需要3个可用公网IP才能实现,不得以只能试着在F5前端放一台防火墙,做地址映射,虽然违背了F5的设计理念,但细想了一下,理论上也是可以实现的,值得尝试。

系统拓扑图:

 

单个公网IP实现LTM+GTM的HA_第1张图片

    主要配置实现:

1)  电信防火墙由于可用IP足够可直接配置透明模式,这样公网IP都配置在F5上,按照常规的步骤配置就行。

2)  网通防火墙配置成路由模式,外网使用cnc的地址112.xxx.xxx.xxx,内网和F5cnc_vlan之间都使用私网段2.2.2.0/24F5上的VS配置2.2.2.5,网关指向防火墙内网。

3)  因为需要GTM对网通来源的解析,需要在防火墙上映射公网IP53端口到CNC的浮动IP 2.2.2.2 ,应用访问需要开放什么端口就映射公网IPVS 2.2.2.5

4)  因为需要GTM的智能DNS解析返回网通的地址,所以还是需要在F5上配置VS为联通的公网地址112.xxx.xxx.xxx,作为wideip调用pool中的VS,但是GTMpool的健康状态,除了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 ,通过icontroldisable 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 &

 

 

你可能感兴趣的:(F5,职场,休闲,Juinper)