(课堂笔记)第十一章: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) 编辑 收藏 举报