深入理解NAT模式

2021-05-07 23:02:09 字數 2055 閱讀 7088

首先說明一下我所遇到的具體情況:本人在主機上安裝的是vmware workstation,在虛擬機器中安裝了ubuntu 8.10。主機上網方式是學校校園網,固定ip,繫結mac,使用的是銳捷客戶端。安裝vm後生成了2個虛擬網絡卡,分別為vmware virtual ethernet adapter for vmnet1和vmware virtual ethernet adapter for vmnet8,分別簡稱為vmnet1虛擬網絡卡和vmnet8虛擬網絡卡算了。由於官方銳捷會檢測到多網絡卡,會每隔一段時間自動斷網,提示我禁用掉多餘的網絡卡,無奈只好禁用掉了那兩個虛擬網絡卡。過了一段時間,我們學習linux,所以在虛擬機器中安裝了ubuntu 8.10,想讓ubuntu也上網。了解到nat模式配置最簡單,所以就用它了,在ubuntu中設定ip、dns都為自動獲取的方式,也就是dhcp吧,由於銳捷會檢測到多網絡卡,會每隔一段時間自動斷網,所以我很快啟用那個vmnet8虛擬網絡卡,可以在ubuntu中上網了,可是一會兒就斷了,就是因為銳捷原因啊!因此一直以來,我總是bs銳捷,不讓我用虛擬網絡卡,不能在虛擬機器中上網。可是又發生了乙個情況讓我稍微改變了對銳捷的態度,就是寢室的乙個哥們他禁用了那兩個虛擬網絡卡還能在虛擬機器中上網,當時我很驚奇啊,為什麼呢?我一直以來認為只有啟用那兩個虛擬網絡卡,虛擬機器才能上網,看來不是的啊,上網查資料吧,大概知道了,其實這裡面大有學問的,自己有好多都不知道啊,到現在還是有些疑問,就是我現在為什麼禁用了那兩個虛擬網絡卡,ubuntu設定為dhcp就能上網了,當然了,vmware的網路連線模式應該用nat的啊。

下面是網上的一些資料,裡面有一些本人的ps,現在主要來談談這nat模式:

在nat網路中,會用到vmware network adapter vmnet8虛擬網絡卡,主機上的vmware network adapter vmnet8虛擬網絡卡被直接連線到vmnet8虛擬交換機上與虛擬網絡卡進行通訊。

我認為上面的這個圖沒有畫出vmnet8虛擬網絡卡,

再來兩個圖,便於理解:

nat虛擬網絡卡ip位址

物理網絡卡ip位址

虛擬出來的網段和nat模式虛擬網絡卡的網段是一樣的,都為192.168.111.x,包括nat伺服器的ip位址也是這個網段。在安裝vmware之後同樣會生成乙個虛擬dhcp伺服器(它的ip位址也應該是在這個網段的吧,虛擬交換機連線的是同乙個網段的機器),為nat伺服器分配ip位址。

當主機和虛擬機器進行通訊的時候就會呼叫vmware network adapter vmnet8虛擬網絡卡(這個時候當然要啟用vmnet8虛擬網絡卡,我先還以為主機與虛擬機器通訊是通過本地連線的那個網絡卡,囧,不然幹嘛要虛擬個網絡卡出來),因為他們都在乙個網段,所以通訊就不成問題了。

實際上,vmware network adapter vmnet8虛擬網絡卡的作用就是為主機和虛擬機器的通訊提供乙個介面(我這樣理解:主機通過vmnet8虛擬網絡卡與虛擬機器通訊,在預設情況下,如果在虛擬機器中ping本地連線的那個網絡卡ip,肯定ping不通的,因為它們不在1個網段,它們之間也沒有路由器或具有路由功能的裝置,但可以ping通vmnet8虛擬網絡卡的ip,因為它們都在vmnet8這個網段中,我剛才又有這樣1個想法:虛擬機器既然能上網,那我通過網際網路為什麼不能ping通本地連線的ip呢,剛才查了資料:使用nat協議,區域網內的計算機可以訪問internet上的計算機,但internet上的計算機無法訪問區域網內的計算機,現在虛擬機器就像是vmnet8這個區域網內的計算機,但主機也是校園網這個區域網裡的計算機,所以通過internet還是不能相互ping通,綜上所述,只能通過vmnet8虛擬網絡卡實現主機與虛擬機器的通訊,不知道我理解得正不正確),即使主機的物理網絡卡(我認為這裡寫錯了,應該是vmnet8虛擬網絡卡,主機的物理網絡卡都關閉了,虛擬機器怎麼可能上網呢,虛擬機器不管用什麼方式上網都得通過主機的物理網絡卡吧,但如果關閉主機的物理網絡卡,vmnet8虛擬網絡卡啟用,主機和虛擬機器之間還能互訪,主機當然不能上網了啊)被關閉,虛擬機器仍然可以連線到internet,但是主機和虛擬機器之間就不能互訪了。這上面的應該就是我禁用vmntet8虛擬網絡卡,虛擬機器還能上網的原因吧,這裡面涉及到了好多的網路知識啊。寫這篇文章花了我將近2個多小時的時間,把裡面的一些疑問稍微理清了一些,不過還不是很晰,因為有好多網路知識沒有學習啊!以後還要來仔細體會體會。

看完這篇文章,你是被我弄糊塗了,還是有所收穫呢?

深入理解MVC模式

mvc即model,view,controller如上結構圖,分別對應模型,檢視,控制器。就目前而言,我們大多數人更傾向於將軟體的業務邏輯放在controller裡,將資料庫訪問操作的 放入model中,最終軟體的 結構是 view層是介面,controller是業務邏輯,model層神資料庫訪問。...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...