網頁

2014年11月2日 星期日

[封包如何在子網域間流動 ?] subnet mask, network number, subnet mask

主題: 封包如何在子網域間流動 ?


環境:
     src:   10.13.20.127 (位於10.13.20.0 子網域下)
     dest:  10.13.18.54  (位於10.13.18.0的子網域下)
     subnet mask : 255.255.248.0


NOTE: 如果不記得 subnet設置方式的朋友可以先看 http://www.clyeh.org/ipsubnet/ipsubnet.htm 來複習一下。


主要的Policy:
    (ip & subnet mask) ===> network number
    network number必須在gateway的ip table上找到對應的interface

對就是上面兩句話就是子網域下傳送的方式


看一個範例好了

(src: 10.13.20.127, dest: 10.13.18.54) ---> gateway1

gateway1上面的routing table若是有

....
10.13.18.0  255.255.248.0  eth?
...
的record

那麼這個封包就會被傳送到 eth1,eth1一般會是10.13.18.0的gateway(gateway2)

因為10.13.18.54是gateway2下的一個node,gateway2自然就會把封包傳送到這一台node上

當然,當封包要回傳的時候就是相反的順序


換言之,gateway1和gateway2上面的routing table上要有互相的record封包發送的來回才不會出問題。

也就是 gateway2上面的routing table也要有
....
10.13.20.0  255.255.248.0  eth?
...
的record


結論: 雖然網域被切開了,但是封包的傳送只要routing table設定正確理論上都要可以正常的收發。

最後附上一張圖來表示這個概念:

NOTE: 也就是說穿就是一個將 dst ip 轉換成 interface的一個系統,當有一個dst ip,利用這樣的轉換就可以知道要送到哪個interface上,不管在 PC 、手機、switch、gateway、router上都會有一個這樣的系統,尤其一個有幾十個以上的interface的switch/gateway/router上這樣的routing table更是龐大。

NOTE: dst ip是input ,而ip mask/network number/interface則是是先先設定好的資訊(如何設定? 在linux/windows上可以查詢 'route' 這個指令)