EG在开启应用缓存功能,且配置了缓存的地址例如苹果商店的URL: iosapps.itunes.apple.com,配置域名后EG便会开始找DNS进行解析出IP。

 

在通常情况下一个URL有可能对应多个地址,如下:

iosapps.itunes.apple.com --->地址1

iosapps.itunes.apple.com --->地址2

iosapps.itunes.apple.com --->地址3

iosapps.itunes.apple.com --->地址4

……

 

EG针对这类URL的处理机制是:30s时间内不停的去针对这个iosapps.itunes.apple.com解析,此时会将所有解析出来的地址存到EG本地的dy rules 规则中。

在EG上面可以通过show dy rules 查看解析地址

具体如下:

EG#show dy ru 这个是设备的dy rule规则,可以用来查看EG解析出来的地址

Rule   Type  App   O  Source Addr      Source port  Dest Addr        Dest port    Module       Aging       

1      auto  http  N  0.0.0.0          0            122.228.84.27   80           1            7158        

2      auto  http  N  0.0.0.0          0            219.238.2.188    80           1            7158       

 

红色字体的IP地址即为EG解析出来的IP,形成dy rule规则表。

手机用户A发送向苹果商店的TCP报文。EG通过设置的规则(如dy-rule规则)拦截该报文,然后送往EG缓存模块.

 

提问:EG是如何匹配拦截这个报文呢?

 

EG对TCP报文进行拦截,获取到的报文的目的IP会与本地的规则(如dy-rule规则或者ip-path)进行匹配,根据是否匹配中来EG判断是否拦截该报文。

 

备注:值得注意的是部分运营商存在特殊性,他们使用的DNS解析iosapps.itunes.apple.com出来的IP地址会经常性的变化,因此会造成与用户的DNS解析出来的IP不一致,导致无法匹配dy rule 规则。