讀古今文學網 > OpenStack系統架構設計實戰 > 4.1.9 Network NameSpace >

4.1.9 Network NameSpace

Linux NameSpace是Linux提供的一種操作系統級虛擬化的方法。Linux NameSpace提供了PID、IPC、UTS、Mount、Network等系統資源的完全隔離機制。這種隔離機制是靠不同NameSpace中的進程彼此之間互不干擾實現的,即使是同樣的進程只要在不同的NameSpace中也不會產生衝突。

Network NameSpace為進程提供了一個完全獨立的網絡協議棧的視圖,包括網絡設備接口、IPv4和IPv6協議棧、IP路由表、防火牆規則、Sockets等。一個Network NameSpace可以是一個交換機、一個路由器,或者一個防火牆等,這就相當於Network NameSpace提供了一個完全的系統環境(這也是NameSpace的基本特性)。

在Network NameSpace中有兩個概念是實現Network NameSpace的全部網絡功能的關鍵,一個是虛擬接口,一個是虛擬網橋。

1)一個虛擬接口只能屬於一個Network NameSpace,但是可以從一個Network NameSpace轉移到另外一個Network NameSpace中,虛擬接口都是成對出現的,發給其中一個接口的數據另外一個接口也會接到。

2)一個虛擬網橋可以接多個虛擬接口,且網橋能使數據在這些虛擬接口上進行轉發。

虛擬網絡設備(Virtual Network Device)提供了一種類似管道的抽像,可以在不同的NameSpace之間建立隧道。利用虛擬化網絡設備,可以建立到其他NameSpace中的物理設備的橋接。當一個Network NameSpace被銷毀時,物理設備會被自動移回init Network NameSpace,即系統最開始的NameSpace。