(课堂笔记)第十一章:F5 BIG-IP outbound配置


------outbound Traffic链路负载分析----------
1.1 传统出口ISP选路思路
1.2 注意事项
------outbound Traffic链路负载配置----------
2.1 创建outbound Gateway负载池
2.2 Gateway Pool Monitor优化
2.3 创建outbound选路策略iRules
2.4 创建outbound SNAT Pool
2.5 SNAT pool参数优化
2.6 创建outbound SNAT策略iRules
2.7 创建outbound virtual Server
------Inbound Traffic IP过滤配置------------
3.1 创建iRules Data group
3.2 创建iRules
3.3 将iRules调用去Virtual Server


 
------outbound Traffic链路负载分析----------
 1.1 传统出口ISP选路思路:等价路由——>选网关——>使用对应公网IP做SNAT
 1.2 注意事项:
    《1》掌握运营商线路状况及IP和网关;
    《2》了解希望想要的outbound策略:
        a 用户访问公网ISP1资源时,选择ISP1出口
        b 用户访问公网ISP2资源时,选择ISP2出口
        c 用户访问公网非ISP1-ISP2资源时,随机选择出口
        d 两条出口链路间互为冗余备份
        e 是否有邮件服务器或其他需要单独绑定出口或NAT ip的客户端
    《3》基于目的地址做链路选择的话,则前提需要有全球Geolocation地址库。
        a F5与第三方地址库 neustar(Quova)合作,定期更新地址库信息,需要手动进行地址库更新;    
        b BIG-IP设备不支持自动更新库,需要到官网登录账号后,选择BIG-IP后下载;

          c 演示在LTM如何更新Geolocation地址库及查询:
        (1)将官网下载的ip-geolocation-v2-2.0.0-20201005.468.0.zip传入LTM内(这里以/tmp目录为例)
        (2)解压文件:#unzip ip-geolocation-v2-2.0.0-20201005.468.0.zip
        (3)安装rpm包以便更新:#geoip_update_date -f + 解压后的三个文件名,轮流安装;
                V12版本后安装后的目录在/shared/GeoIP/v2,V12版本前的在/shared/GeoIP
        (4)查询IP:
        #cd
        #cd /share/Geoip/v2,目录下 #geoip_lookup -f /shared/GeoIP/v2/F5GeoIPOrg.dat +要查询的IP
        
        [root@DC2-F5-LTM:Active:Standalone] v2 # geoip_lookup -f /shared/GeoIP/v2/F5GeoIPOrg.dat 114.114.114.114
        Will attempt to lookup ip '114.114.114.114'
        opening database in /shared/GeoIP/v2/F5GeoIPOrg.dat
        size of geoip database = 205901316, segments = 13511842, version = Copyright (c) F5 Networks Inc, All Rights Reserved GEOIP2 v1, 20201005
        geoip_seek = 000da0be
        geoip record ip = 114.114.114.114
        name = nanjing xinfeng information technologies inc.
        Scope = 16
        [root@DC2-F5-LTM:Active:Standalone] v2 #

 

 

 

 




------outbound Traffic链路负载配置----------
    (DC2-F5-DNS)
 2.1 创建outbound Gateway负载池
    ”Local traffic“-”POOL"-“POOL list”-“news pool”
    
    name填写"ISP1P2S "
    active选择“gateway_icmp"
    prioity Group Activation选择“less than”
    New Members选择“New Node”
    Node name填写“ISP1-GW”
    Address填写“62.129.0.1”
    Service Port选择“ALL Services”
    Prioity填写“10”,点击“Add”
    New Members选择“New Node”
    Node name填写“ISP2-GW”
    Address填写“129.62.0.1”
    Service Port选择“ALL Services”
    Prioity填写“5”,点击“Add"最后点击Finish完成
    
    name填写"ISP2P1S "
    active选择“gateway_icmp"
    prioity Group Activation选择“less than”
    New Members选择“New Node”
    Node name填写“ISP1-GW”
    Address填写“62.129.0.1”
    Service Port选择“ALL Services”
    Prioity填写“5”,点击“Add”
    New Members选择“New Node”
    Node name填写“ISP2-GW”
    Address填写“129.62.0.1”
    Service Port选择“ALL Services”
    Prioity填写“10”,点击“Add"最后点击Finish完成
    
    name填写"non-ISP1-ISP2"
    active选择“gateway_icmp"
    New Members选择“New Node”
    Node name填写“ISP1-GW”
    Address填写“62.129.0.1”
    Service Port选择“ALL Services”,点击“Add”
    New Members选择“New Node”
    Node name填写“ISP2-GW”
    Address填写“129.62.0.1”
    Service Port选择“ALL Services”,点击“Add"最后点击Finish完成
    
    
2.2 Gateway Pool Monitor优化
    transparent icmp monitors:传统ping测防火墙IP来检测防火墙状态,而透明icmp检测通过ping测远程IP(经过防火墙)来间接检验防火墙功能是否正常运行,而避免出现防火墙上联出问题而防火墙IP正常的情况下LTM不切换;
    
    配置:DC2-F5-DNS上
    ”Local traffic“-“Monitors”-“New Monitors”
    name填写“transparent-icmp”
    Type选择“Gateway icmp”
    transparent选择“Yes”
    Alias Address填写监控的远程IP”8.8.8.8“
    最后点击Finish完成

    ”Local traffic“-“Pools”-“Pool list ”中,针对《1》新增三个”ISP1P2S“、”ISP2P1S“、"non-ISP1-ISP2"中的其中2个”ISP1P2S“、”ISP2P1S“操作如下:
    点击进去,查找configurations中Health Monitors子项内,在原有的《1》“Gateway_icmp"新增加“transparent_icmp”
    
2.3 创建outbound选路策略iRules
    使用iRules将去往63.130开头的流量走ISP1;去往130.63开头的流量走向IPS2。
    针对本次拓扑用不到全球Geolocation地址库,对现有拓扑规划的外网地址分配,使用iRules的Date Group功能;
    配置:DC2-F5-DNS上
    ”Local traffic“-“Date Group”-“Add“
    name填写“ISP1”
    Type选择“Address”
    Address Records中Address填写“63.130.0.0/24”,并点击“Add”及“Finishi“完成
    
    name填写“ISP2”
    Type选择“Address”
    Address Records中Address填写“130.63.0.0/24”,并点击“Add”及“Finishi“完成
    
    “Local Traffic”-“iRule List”-“New iRule”
    name填写“LB-GW”
    

when CLIENT_ACCEPTED {
 if{[class match [IP::local_addr] equals ISP1] }{
 pool ISP1P2S} 
 elseif {class match [IP::local_addr] equals ISP2] }{
 pool ISP2P1S}
 else {pool not-isp1-isp2}
 }

   
    最后点击Finish完成
    
2.4 创建outbound SNAT Pool
    ”Local traffic“-”Address Translation"-“SNAT POOL list”-"Add"
    name填写"ISP1-62-129-0-6"
    Member list中IP address填写62.129.0.6,点击“Add”,点击Repeat下一个;
    
    name填写"ISP2-129-62-0-6"
    Member list中IP address填写129.62.0.6,点击“Add”,最后点击Finish完成
    

2.5 SNAT pool参数优化
    
    插入知识点:ISP线路流量切换因素-SNAT表项存活时间
    
    F5双ISP时,当流量走ISP时,发生端口断开,但会话将不会自动切换到ISP2上,而是等待SNAT表项存活时间结束后
    SNAT表项存活时间。
    SNAT表项存活时间定义是根据协议来定,不同的协议存活时间也不同,默认为:
    udp and ip层包 300s
    TCP 136years
    
    配置:
    ”Local traffic“-”Address Translation"-“SNAT traslation list”-点击刚才新创建的2个snat pool池的IP(62.129.0.6及129.62.0.6):
    ”UDP idle timeout“选择“specify”,120S(针对本次实验)
    IP idle timeout选择“specify”,120S(针对本次实验)
    
    
2.6 创建outbound SNAT策略iRules
    name填写“SNAT”
    

when LB_SELECTED {
if { [IP::addr [LB::server addr] equals 62.129.0.1 ] } {
log local0."Destion ip:[clientside {IP::local_addr}]"
log local0."Source ip:[clientside {IP::remote_addr}]"
log local0."Gw ip:[LB::server addr]"
snatpool ISP1-62-129-0-6
}
elseif {[Ip::addr [LB::server addr] equals 129.62.0.1] } {
    snatpool ISP2 129-62-0-6
} 
else {
    snat Automap
    }
}

   
    最后点击Finish完成
    
    另外一通过查询全球库Geo(可选):这里不演示
    
2.7 创建outbound virtual Server
    先到DC2-F5-DNS上删除掉原来给LAMP做的主动访问internet的公网SNAT list(62.129.0.5、129.62.0.5),以免有冲突。
    
    ”Local traffic“-”virtual Server"-"Add"
    name填写"Inter2Out"
    Type选择“Performance(Layer4)”
    sourece address填写“172.16.20.5”
    Destion Address/Mask填写“0.0.0.0/0”
    Service port选择“*ALL ports”
    protocol选择“ALL Protocols”
    VLAN and Tunnel Traffic选择“Enable on”
    VLANS and Tunnels选择LTM的上联口untag的vlan
    Source Address Translation选择“None”,因为后期要通过iRulse来做SNAT
    *(非常关键)拉上去configurations选择“Advanced(高级)”
        Addres translation 不勾;
        Port translation 不勾。
        (不勾是因为当server访问外网时,目的地址无论在哪个环节都不变;)
        (Performance(Layer4)默认是打开的,而IP Forwarding默认是关闭的)
    iRules先挂LB-GW,再挂SNAT
    
    最后点击Finish完成
    
验证环节:
《1》首选保证10.1.20.0/24的XP1上能ping通ISP1-XP1和ISP2-XP1;
《2》DC2-F5-DNS上查看SNAT表项:tmsh show sys connection virtual-server Inter2Out,找到《1》步骤中对icmp包转换的条目;
《3》DC2-F5-DNS上查看log日志:tail /var/log/ltm 查看在步骤《6》中写的IRules记录到系统的日志的记录;
《4》可调整NAT表项存活时间,或者手动清除NAT表项:tmsh delete sys connection virtual-server Inter2Out



------Inbound Traffic IP过滤配置------------
*需要提前DC2-F5-LTM安装geoip库
原理:利用geoip库,解析到ISP1 63.130为美国地区,行为记录并丢弃;而130.63为加拿大地区,则不影响访问

3.1 创建iRules Data group

    “Local Traffic”-"iRules"-"Add"
    name填写"US-IP"
    value填写“US”
    点击"Add",最后Update完成。
    

3.2 创建iRules

    “Local Traffic”-"iRules List"-"Add"
    nane填写“Block-USIP”

when CLIENT_ACCEPTED {
    set ipaddr [IP::client_addr]
    set clinentip [whereis $ipaddr country]
    if { [class match $clinentip equals US-IP] } {
        log local0. "Attacker IP [IP::client_addr]"  ;
        drop
    }
}

    点击Finish完成。
    参考文档:https://support.f5.com/csp/article/K43383890
    
3.3 将iRules调用去Virtual Server
    “Local Traffic”-"Virtual Servers"-"Virtual Server List"
    选择“http-server2”(172.16.20.4)-“Resources”-“iRules”-加上“Block-USIP”

验证环节:
1.ISP1主机63.130.0.100主机访问DC2 LAMP失败,ISP2主机130.63.0.100成功;
2.LTM的命令行下tail /var/log/ltm 发现有"Attacker IP”的日志;


posted on 2020-10-14 09:42  Key-Network  阅读(1702)  评论(0编辑  收藏  举报

导航