標籤:路由器 1.2 int 子網 個數 為什麼 net 分配 interface
隨手記錄一下在子網分配中的心得。
之前在模擬資料中心網路拓撲中牽涉到一個問題,由於在後續工作中我想通過指定不同datacenter之間的網路延時或頻寬等參數的區別,因此需要讓每兩個datacenter之間存在一條鏈路(其實本來是兩條,對應上下行的不平等頻寬,但後來覺得這樣太複雜)簡化下來就如所示。
但是由於我的datacenter使用host類比路由器進行轉寄,而每一條串連到host上的鏈路都會引入一個新的interface。因此就牽涉到為每個interface分配IP地址的問題。最初我只是簡單的想讓datacenter的兩個interface為20.0.1.1/24和20.0.1.2/24,其他兩個也同理。但這樣就導致了每個datacenter的介面都分別處於不同的子網中,不能進行通訊。
然後我就把/24變為了/16。但這樣也就帶來了一個新的問題,由於三個資料中心都處於相同子網,那麼datacenter1在向datacenter2通訊成功以後會認為所有發往該子網的資料包從該interface流出就可以了,於是自然而然地也就吧應該從eth2發往datacenter3的資料包也從eth1發出,從而就導致了datacenter1和datacenter3互相無法通訊的問題。
這個問題糾結了好幾天,後來偶然間想到了一個辦法,那就是從IP地址入手。之前想當然的認為同一個datacenter對應的ip地址就應該為X.X.X.1和X.X.X.2,但是如果從每一條鏈路的角度考慮呢?事實上一個datacenter的多個interface又不需要互相通訊,為什麼要將他們劃歸為同一子網呢?
因此最後的解決辦法是,以每一條鏈路為線索進行IP地址的分配,如藍色鏈路兩端的兩個datacenter1和datacenter2的介面分別為20.0.1.1和20.0.1.2,以此類推,三個資料中心時間就可以互相通訊了。
【Mininet】畢設記錄:關於IP地址分配的問題