F5社区-F5技术交流中心

F5售后服务一点通:topology负载应用问题

2020-06-22 22:09:17

F5小安

NoteF5售后服务“一点通”专栏,是由F5售后工程师主笔,收集和总结客户在实际工作中遇到的常见多发性问题,汇编成小技巧和知识点,通过F5官方微信号定期进行分享,希望有相同问题的客户从中得到解决问题的指导。“一点通”栏目的口号是“一点就通,痛并快乐的学习并解决问题!”。

作者:周铮 F5客户现场工程师

2010年加入F5售后技术团队,具有多年企业/运营商网络运维经验。  

F5 Certified Technology Specialist - LTM/GTM/APM

原文链接:https://mp.weixin.qq.com/s/gnLSFp_bOOPtAEgnMEXHlg



这次我们来聊一聊topology负载在实际应用中的注意问题。


基于Topology的负载均衡是基于物理临近度的一种负载均衡方法。

通俗点说就是DNS服务器根据客户端请求IP的不同来给客户端返回不同的服务器地址。

比如说电信用户访问www.xxx.edu.cn的时候,DNS服务器会返回给用户电信服务器,网通用户访问www.xxx.edu.cn的时候,DNS服务器会返回给用户网通服务器。

这样就解决了南北用户访问过慢的问题。


这个topology在BIG-IP DNS GUI和CLI里面分别是下面的样子


ldns(Request Source)表示来自于哪个ldns的请求
server(Destination)表示gtm将dns请求发送至的目的


BIG-IP DNS的topology负载均衡一般分为两个层级

1. WideIP对应多个Pool

2. Pool对应多个VS


以第二种为例,BIG-IP DNS会将Pool内的VS分别与LDNS组合成对。

只要给出LDNS, VS IP就可以在Topology表中找到对应的Score/Weight值。

然后将这个值作为对VS的评分,根据Score的高低,决定选择哪个VS。

如果分值相同则按照Round Robin轮询,因此实际配置中客户会根据自己偏好将某个topology分配更高的score。

需要注意,一旦命中了某条Topology记录,那么后面的记录就不会继续匹配。


在绝大多数用户的应用场景中,Topology基本上都能智能准确的返回地理接近度最高的地址匹配。

极少数的情况下,也有客户反应,绝大部分的客户端返回地址正确,个别客户端会返回错误的地址,例如联通地址的客户端被返回了电信的地址。

这样的情形通常一种可能性是Topology条目因设计原因导致预想之外的匹配,需要客户根据设计排查实验。很多客户为了节省时间,会将这种例外的情形,格外加一条精确匹配的topology保证解析准确。


另一种可能性,就是和BIG-IP内置geoip数据库的精确度有关系。

我们通常在GUI里面可以选择内置的各种ISP应用于region以及topology,比如:


gtm region /Common/region_CU { 
   region-members {      
   isp /Common/BeijingCNC { }
   isp /Common/CNC { }      
   isp /Common/ChinaMobilNetwork { }
   isp /Common/ChinaUnicom { }
   isp /Common/ShanghaiCNC { }
   gtm topology ldns: region /Common/region_CU server: subnet 122.144.142.240/32 {
order 1
score 50
}
gtm topology ldns: region /Common/region_CU server: subnet 122.144.142.155/32 {
order 2
score 50
}


上述,可以在GUI里面配置的这些个ISP是内置好的,它们存在于:


  /usr/local/gtm/include/gtm_base_region_isp.conf。


然而,这个内置的数据库是随版本发布的,而实际的网络运营商自己的ip地址段,每隔一段时间都会有变动或者微调,那这个内置的地址数据库难免有一部分的信息是过期的。

虽然仍然可以保证大部分的地理数据准确,但确实会发生之前提到的某些极少部分客户端解析不准确的问题。

如果想使用更为精确的地理数据库,需要到downloads.f5.com里面下载F5GeoIPISP.dat这个文件,并用它替换/shared/GeoIP/F5GeoIPISP.dat。

同时需要在GUI或者CLI当中用geoip-isp这个参数,而不是之前的isp参数,这里面推荐使用CLI,因为geoip-isp只能通过CLI查询出名称,GUI里面并不能从列表选择,只能手动输入。


下边来说一下应用geoip-isp的简单步骤

1. 首先确定出问题的客户端或者ldns的ip地址以后,这样就可以在F5GeoIPISP.dat当中确定其geoip-isp的名称

例如,出问题的ip是: 23.3.3.1 那么:


# geoip_lookup -f F5GeoIPISP.dat 23.3.3.1
   Will attempt to lookup ip '23.3.3.1'
   opening database in F5GeoIPISP.dat
   size of geoip database = 2934730, segments = 227446, version = GEO-148 20161206 Build 1 Copyright (c)     
   F5 Networks    Inc All Rights Reserved
   geoip_seek = 0003c738
  geoip record ip = 23.3.3.1
  name = akamai technologies inc.


2. 用这个名称创建topology记录


下面是geoip-isp的topology记录的参考格式:

# tmsh create /gtm topology ldns: geoip-isp <ISP_name> server:
   <continent|country|datacenter|geoip-isp|isp|not|
   pool|region|state|subnet> <value> score <score_value>


例如:

tmsh create /gtm topology ldns: geoip-isp "chinanet hubei province network" server: subnet 104.219.105.0/24 score 40


3. 如果已经配了某个region的topology,也可以将这个查询到的geoip-isp名称加入到已有的region当中,在topology中直接生效。


另外,F5目前还没有打开F5GeoIPISP.dat的官方工具,如果想查询里面的名字可以使用linux的命令,例如:


# strings F5GeoIPISP.dat | grep -i "akamai"
   akamai international b.v.
   akamai technologies inc.
   akamai technologies european
   # strings F5GeoIPISP.dat | grep -i "chinanet g"
   chinanet guangdong province network
  chinanet guizhou province network  
  chinanet gansu province network
   chinanet guangxi province network


你可能注意到,上面的例子里面一直用到akamai,并没有用到具体的精确的名字,比如,akamai international b.v.

是因为F5GeoIPISP.dat本身是支持字典索引匹配的,因此以上述查询结果为例,如果想添加关于akamai的topology记录,其实无须写三条:


tmsh create /gtm topology ldns: geoip-isp "akamai international b.v." server: subnet 104.219.105.0/24 score 40
 tmsh create /gtm topology ldns: geoip-isp "technologies inc." server: subnet 104.219.105.0/24 score 40
   tmsh create /gtm topology ldns: geoip-isp "akamai technologies european" server: subnet 104.219.105.0/24 score 40


我们只需下面一条,即可匹配所有含有akamai关键字的geoip-isp,为我们配置带来效率。


 tmsh create /gtm topology ldns: geoip-isp "akamai" server: subnet 104.219.105.0/24 score 40


希望对于topology这部分配置以及帮助客户理解有小小的帮助。



发布评论 加入社群

发布评论

相关文章

F5售后服务一点通:F5 Advanced WAF误报事件的基本排障

F5小安

2020-06-23 11:13:06 2191

F5售后服务一点通:关于BIG-IQ排错的些许问题

F5小安

2020-06-22 22:29:06 1957

Login

手机号
验证码
© 2019 F5 Networks, Inc. 版权所有。京ICP备16013763号-1