ROS网通电信双线网络可能存在的问题及解决方案
點擊小圖打開大圖
??? 在上圖示的雙線中,網通和電信直接相連的路由器以及左側用戶接入用的雙線路由器中,均會針對網通和電信IP端做路由表。當網通用戶請求訪問最左側的雙線路由器及其內部服務器的電信IP時, 請求通信數據包到達“網通骨干路由器”時,由于目的地址是電信網絡段上的,因此將數據包交付給與自己相連的“電信骨干路由器”,最終網通用戶請求訪問雙線 路由器及其內部服務器的電信IP的通信的路徑為上圖紅色箭頭所示路徑。雙線路由器應答這個來自網通用戶的請求時,應答數據包的目的地址為網通網絡段(網通 用戶的IP),由于雙線路由器上有策略路由,因此應答時的數據通信路徑為上圖紫色箭頭所示路徑。
??? 這樣,訪問通信就不是“從哪里來,還從哪里回”了。
????從哪里來,卻不從那里回,對于包通信來說,這并沒有什么問題。互聯網網際層正是利用包傳遞可多路徑性來保證某些鏈路失效時,包仍然可以選擇另外一條鏈路來完成通信的。
??? 但實際中為什么會遇到通信不能完成的情況呢,產生的原因可能如下:
????1、網通駐地路由器上做了禁止數據包的源IP地址為電信網段的包通過網通路由器。
????????? 一般,在骨干網絡上,路由設備不會對包通信做任何限制或者檢測,骨干網上的路由器會根據路由表對包做盡可能快的轉發。訪問控制,一般都發生在駐地網設備上。
??? 2、網通或電信路由設備上的路由表,缺少了某些到達彼此網絡的路由條目。
??????????此種情況會發生在有“中國特色”的網絡中(多家運營商之間惡性競爭,相互限制)。
??? 3、應答通信經過的線路中,某些設備開啟了“狀態保持(檢測)”功能,發現“沒從我這兒進,缺想從我這兒出”的通信就禁止掉。
???????? 此種情況也一般發生在駐地網設備中。
??? 4、包途中經過的網絡設備做了三層、四層的過濾。
??????? 此種情況一般發生在網絡邊緣。
??? 總上述,如果駐地網做了上述的任何一種配置,要想保證通信的完成,就需要雙線路由器記住:請求從哪里來,應答就得從哪里回。也就是記住外部主動連接的狀態(一般記錄這種狀態的方法是根據IP+端口),以便有此連接的應答通信時,還走原路。
一、發布內部的服務器:
????在?【原創之NAT】在ROS中做NAT時指明IP或接口和不指定時的差異?一文中我們知道,當向外發布內部服務器時,外部與內部之間的數據包的源和目的IP地址可能經過多次更改,這樣就給記錄某個連接帶來了難度(記錄連接基于IP+端口,通信由于NAT包的IP會多次變化,使得連接狀態變化多次,不利于記錄)【2011年9月10日后記:上述關于NAT時,連接變化,NAT后返回的連接與先前的標記不一致的說法是錯誤的,NAT時連接有變化,但正是由于NAT映射條目的存在,NAT條目記錄對應了此變化,當連接返回到NAT設備時,連接將恢復為先前的連接】。此時,我們可以通過給內部服務器和雙線路由器配置兩套內部IP地址,一套內部地址對應發布到一個公網IP,外部與內部服務器間的通信細化到兩個獨立的通信體系中,每個通信體系按照常規的發布服務器配置即可。在ROS中的具體配置如下:
1、給服務器和ROS的LAN接口配置兩套內部IP地址(也可以使用一個網段的兩個不同IP):
?????服務器:192.168.1.11/24和192.168.10.11/24
???? ROS的LAN:192.168.1.1/24和192.168.10.1/24
2、發布ROS的網通IP服務器,共兩條NAT:
???? 1)DST-NAT配置:
DST-NAT,Dst address 為ROS網通公網地址 in interface為接網通線路接口
DST-NAT,映射到內部服務器IP
??????? 2)SRC-NAT配置:?
SRC-NAT,Dst-add為內部服務器IP,In-Interface為ROS的LAN
SRC-NAT,TO address為ROS對應于發布服務器IP的那組內部地址
?????? 上述SRC-NAT配置方式,是為了將外部與內部服務器間的通信,變為由ROS代理,這樣內部服務器可不配置網關,對于內部服務器來說,它不能主動的與外部通信,只能被動的與ROS通信。內部服務器與外部的通信全變為與ROS之間的通信,這樣可增強服務器的安全性。此問題在?【原創之NAT】通過NAT技術來增強內部服務器的安全性(應用舉例:ISA)?一文中有詳細說明。
?3、發布電信線路上的服務器:
?????上 面是針對發布到網通公網IP的配置,使用的內部地址組為192.168.1.0/24,發布到電信公網IP的配置,將192.168.1.1用 192.168.10.1代替,192.168.11用192.168.10.11代替即可(如果使用一個網段的兩個IP,就分別代替原來的IP即可)。
4、針對兩套地址的服務器應答外部的通信,做策略路由,注意,只對源端口為80的服務器通信做路由,這樣可避免服務器與外部其他通信受其影響。如果服務器使用一個網段的兩個IP,那么src address就是服務器設置的那兩個IP。
??????做策略路由時,應該按“新建連接”做,不可按如下圖直接對服務器的80通信做,如果這樣做的話,會導致策略路由表無限止的增大,產生性能問題。
路由標記:針對發布到網通線路的服務器的通信(注:此配置為說明問題的錯誤方式)
做路由標記(注:此配置為說明問題的錯誤方式)
??????正確的配置如下:
連接狀態選擇:new; In .Interface選擇 電信出口 (后記:上圖抓圖時弄錯了,應該選in interface為LAN) 對新建連接標記連接
?對標記連接的包做標記路由
????上幾圖中為了精確標記隨后策略路由所作用的接口,應指定 in. Iterface接口。Connection State應該選擇:new
本策略路由的目的是:增加一個優先級比網通電信靜態路由表優先級高的策略路由,以便讓外部電信用戶訪問內部網通服務器的本應從電信接口出去的應答數據走網通出口,因此路由作用的接口應該是電信接口,也就是in. Interface選擇TEL電信。
做策略路由
?二、雙線路由器上的服務與外部通信
????????? 外部到路由器的通信較單一,可以很明確的標記出某個連接,且此連接不會經過ROS變換。下面展示了ROS中,不管電信或網通用戶都可以使用ROS的電信或網通IP遠程連接到WINBOX的配置。
注:上圖請務必要選擇Connection State:new,否則可能會因為大量策略路由導致ROS性能問題
到ROS的通信,chain 要選擇input,根據IP-端口對連接做標記
從ROS出站的通信,Chain選擇 output
上圖中如果選Out.Interface,應該選電信接口(原因在上面已經說明)
對原來做過標記的連接做路由標記
上面幾圖中,雖然沒有指定In. Interface和Out.Interface,但不影響結果。實際上,在做路由標記時,應該指定相應的In. Interface和Out.Interface。針對上圖的標記路由,接口應該選擇電信。
最后將做了路由標記的數據包送到指定的網關中:
上面是針對外部用戶通過網通IP來訪問ROS上的服務時做到“從哪里來就從哪里回”的配置。外部用戶通過電信IP來訪問ROS上的服務的配置和上面一樣,只要更改對應的電信IP即可。
本文轉自 h2appy? 51CTO博客,原文鏈接:http://blog.51cto.com/h2appy/779863,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的ROS网通电信双线网络可能存在的问题及解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 每日科技分享-代码翻译神器
- 下一篇: 虹科分享|如何解决勒索软件安全漏洞