為什么要用namespace封裝router,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
創新互聯公司專業提供成都主機托管四川主機托管成都服務器托管四川服務器托管,支持按月付款!我們的承諾:貴族品質、平民價格,機房位于中國電信/網通/移動機房,四川服務器托管服務有保障!
今天探討為什么要用 namespace 封裝 router
我們需要討論一個深層次的問題: 為什么不直接在 tape17162c5-00 和 tapd568ba1a-74 上配置 Gateway IP,而是引入一個 namespace,在 namespace 里面配置 Gateway IP 呢?
首先考慮另外一個問題: 如果不用 namespace,直接 Gareway IP 配置到 tape17162c5-00 和 tapd568ba1a-74 上,能不能連通 subnet_172_16_100_0 和 subnet_172_16_101_0 呢?
答案是可以的,只要控制節點上配置了類似下面的路由。
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.100.0 * 255.255.255.0 U 0 0 0 tapd568ba1a-74
172.16.101.0 * 255.255.255.0 U 0 0 0 tape17162c5-00
既然不需要 namespace 也可以路由,為什么還要加一層 namespace 增加復雜性呢? 其根本原因是:為了支持網絡重疊。
云環境下,租戶可以按照自己的規劃創建網絡,不同租戶的網絡是可能重疊的。 將路由功能放到 namespace 中,就能隔離不同租戶的網絡,從而支持網絡重疊。
下面通過例子進一步解釋。
Tenant A vlan100 subnet A-1: 10.10.1.0/24 {"start": "10.10.1.1", "end": "10.10.1.254"}
Tenant A vlan101 subnet A-2: 10.10.2.0/24 {"start": "10.10.2.1", "end": "10.10.2.254"}Tenant B vlan102 subnet B-1: 10.10.1.0/24 {"start": "10.10.1.1", "end": "10.10.1.254"}
Tenant B vlan103 subnet B-2: 10.10.2.0/24 {"start": "10.10.2.1", "end": "10.10.2.254"}
A,B 兩個租戶定義了完全相同的兩個 subnet,網絡完全重疊。
如果不使用 namespace:
其特征是網關 IP 配置在 TAP interface 上。 因為沒有 namespace 隔離,router_100_101 和 router_102_103 的路由條目都只能記錄到控制節點操作系統(root namespace)的路由表中,內容如下:
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.1.0 * 255.255.255.0 U 0 0 0 tap1
10.10.2.0 * 255.255.255.0 U 0 0 0 tap2
10.10.1.0 * 255.255.255.0 U 0 0 0 tap3
10.10.2.0 * 255.255.255.0 U 0 0 0 tap4
這樣的路由表是無法工作的。 按照路由表優先匹配原則,Tenant B 的數據包總是錯誤地被 Tenant A 的 router 路由。 例如 vlan102 上有數據包要發到 vlan103。 選擇路由時,會匹配路由表的第二個條目,結果數據被錯誤地發到了 vlan101。
如果使用 namespace:
其特征是網關 IP 配置在 namespace 中的 veth interface 上。 每個 namespace 擁有自己的路由表。
router_100_101 的路由表內容如下:
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.1.0 * 255.255.255.0 U 0 0 0 qr-1
10.10.2.0 * 255.255.255.0 U 0 0 0 qr-2
router_102_103 的路由表內容如下:
Destination Gateway Genmask Flags Metric Ref Use Iface
10.10.1.0 * 255.255.255.0 U 0 0 0 qr-3
10.10.2.0 * 255.255.255.0 U 0 0 0 qr-4
這樣的路由表是可以工作的。
例如 vlan102 上有數據包要發到 vlan103。 選擇路由時,會查看 router_102_103 的路由表, 匹配第二個條目,數據通過 qr-4 被正確地發送到 vlan103。
同樣當 vlan100 上有數據包要發到 vlan101時,會匹配 router_100_101 路由表的第二個條目,數據通過 qr-2 被正確地發送到 vlan101。
可見,namespace 使得每個 router 有自己的路由表,而且不會與其他 router 沖突,所以能很好地支持網絡重疊。
好了,目前我們已經搞清楚了 Neutron 內部 subnet 之間是如何通信的了。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創新互聯行業資訊頻道,感謝您對創新互聯的支持。
網站題目:為什么要用namespace封裝router
URL標題:http://www.2m8n56k.cn/article28/jojijp.html
成都網站建設公司_創新互聯,為您提供品牌網站制作、品牌網站設計、外貿網站建設、網頁設計公司、建站公司、網站策劃
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯