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 规则。