■ 湖南工業大學現代教育技術中心 郭兆宏
編者按:某一天筆者遇到用戶反映說其映射的HTTP服務在外網不能打開了,因此筆者針對此進行了一系列排查工作。

圖1 加入NAT地址池前后路由跟蹤對比
某用戶反映他們的映射的
HTTP服務不能打開了,檢查出口設備的配置是正常的,此端口映射的內網地址可以正常打開,公網地址+端口號在單位內網也可以打開,說明服務器、內網是正常的,但用www.17CE.com測試不能打開,于是開始了網絡、安全方面的排查。
首先查到此映射在內網地址,在自己電腦上可以正常打開此映射的內網IP:172.x.x.11 + 8080端口號,再次打開映射的公網IP地址:218.x.x.121 + 8080端口號也正常,這說明此映射的服務器、服務、內網是正常運行的。但用www.17CE.com測試不能打開,用www.17CE.com測試單位網站用公網 IP:218.x.x.116 方式的打開正常,而用www.17CE.com的路由跟蹤是無法跟蹤218.x.x.116的,只能跟蹤到網關。再測試打開2個常用的映射也用公網IP地址+端口號的方式也是正常的,說明網絡正常、出口設備運行是正常的。感覺哪里有卡此映射的服務,于是開始檢查安全設備。
因有多臺安全設備是串聯在核心網絡線路上的,且每分鐘都有多條數據被攔截,于是一個個檢查日志,未查到此映射內網IP及公網IP的記錄,基本確認安全設備正常沒有卡此映射,但準備實在不行把線路跳過安全設備,因有多臺安全設備且不在同一個機柜中,跳線有點麻煩,不到最后不搞這步。
再次檢查出口設備的映射配置及流過濾的ACL,此映射的公網IP+端口全部放通的,映射配置正確。出口的帶寬正常,會話數正常,內網IP:172.x.x.11的流量基本沒有。
出口設備配置中有一項免費ARP請求:網關會定期向局域網PC通告自己的IPMAC地址,避免內網PC被ARP欺騙,同時在被欺騙后仍能及時的學習到正確的網關地址,這個選項只能對內網不能對外網。因安全設備沒有查出問題,只可能是出口設備有問題了就把出口設備重啟了,故障依舊。出口設備前還有2臺安全設備也給重啟了,故障依舊。出口設備前有臺交換機接運營商的線路,配置有空端口可以接筆記本用公網IP地址的,但因當時筆記本被借走了,暫時沒用公網IP測試。
因為此映射出去的是8080端口,怕被運營商禁止端口了,就增加一個映射換了一個不常見的端口號,還是不行,再換另一個公網IP+另一個端口號,新公網IP:218.x.x.116是單位網站的,用www.17CE.com測試可以正常打開,感覺是IP:218.x.x.121是被運營商給封殺了,于是聯系運營商,過一段時間反饋回來是運營商沒有封殺任何IP地址及端口號,只能再查自己的設備。
在出口上用命令“sh ip nat translations |include 218.x.x.121”查此映射公網IP的NAT表及sh ip fpm flows | include 218.x.x.121查流表過濾,全部沒有任何數據。再檢查此映射公網IP上面其他幾個映射,有幾個映射的內網都打不開,有2個映射的內網服務可以打開,但用www.17CE.com測試也打不開,把這2個映射內網IP+端口再做2個映射到單位網站的公網IP:218.x.x.116+端 口,用www.17CE.com測試全可以打開,把單位網站映射到此公網IP:218.x.x.121+非80端口號,用www.17CE.com測試打不開。判斷就是此映射的公網IP:218.x.x.121地址有問題。
感 覺 此 公 網IP:218.x.x.121肯定是哪里卡了,可能在安全設備上,想跳開安全設備,但又有些麻煩,且以前運行也是正常的。也可能在出口設備上,在出口設備上沒有查到此公網IP:218.x.x.121的流表,增加流表如何?于是把此映射的公網IP:218.x.x.121加到NAT地址池,在出口設備查NAT轉換表過濾,馬上看到此公網IP:218.x.x.121的 很 多 數據,再用www.17CE.com測試此 映 射:218.x.x.121:8080可以打開了,此映射正常了!再查看流表過濾,此映射的公網IP+端口號的數據都有了,至此故障解決了。
應是運營商學習不到此公網IP:218.x.x.121的MAC地址。因為單位網絡NAT地址池里IP地址是專用NAT的,不做端口映射的;而做端口映射的公網IP是不做NAT地址池的。且這些地址都不能ping通的,也無法跟蹤路由,更不是接口地址。
首先在上網行為日志里檢查此映射內網IP:172.x.x.11的記錄,最近30天一天平均就幾百個訪問,此映射 公 網 IP:218.x.x.121上面其它幾個映射的內網有幾個沒訪問量(內網服務根本就打不開),一個偶有訪問量且最多只有幾十個,而單位網站的訪問量一天平均都是10+萬次的訪問量。估計此公網IP:218.x.x.121的訪問量太少,且在一段時間內就沒有訪問量,且此IP只用端口映射沒有NAT地址,也不是接口地址,且不能ping通,所以運營商有段時不知道此IP的MAC地址,也就無法找到此IP地址,因此在外網不可能打開此映射的。其實以前有過此公網IP一個映射也無法訪問,當時給換到另一個公網IP上面的映射了,可以正常使用后就沒有深入找原因。
把單位網站的再做一個從未使用的公網IP:218.x.x.117上面的的映射,用www.17CE.com測試無法打開,在出口設備上把禁止ping、訪問限制等安全配置全放開,路由跟蹤也無法找到這個從未使用的公網IP,在出口設備上查流表也無法查出這個從未使用IP的數據。
過一段時間把這個從未使用的公網IP也加入到NAT地址池中,再用www.17CE.com測試可以正常打開了,在出口設備上查sh ip fpm flows | include 218.x.x.121流表,立即查出這個從未使用IP的數據對應打開單位網站內網的數據了,路由跟蹤也可以到網關了。
此故障雖然與安全設備無關,但也要檢查下安全設備,因為每分鐘都有安全設備的阻斷行為,檢查可以防萬一。因為IP:218.x.x.121訪問量太少,且有一段時間就沒有訪問量,這個公網IP地址對應的MAC地址在運營商設備上找不到,所以在外網上無法找到此公網IP地址。
把此映射的公網IP加入到NAT地址池后,有大量NAT轉換表,運營商設備上可以找到此IP的MAC地址,也就能找到此IP地址,映射也就可以正常打開了。其實如果能與運營商有良好的技術溝通可以很快發現此IP:218.x.x.121與MAC是否在運營商設備上看到,這方面要加強。NAT地址池的IP與端口映射的IP,這個配置也要調整。