『壹』 Linux上的物理網卡與虛擬網路設備
通過 ip link add 可以創建多種類型的虛擬網路設備,在 man ip link 中可以得知有以下類型的device:
Virtual Ethernet Port Aggregator。它是HP在虛擬化支持領域對抗Cisco的VN-Tag的技術。
解決了虛擬機之間網路通信的問題,特別是位於同一個宿主機內的虛擬機之間的網路通信問題。
VN-Tag在標準的協議頭中增加了一個全新的欄位,VEPA則是通過修改網卡驅動和交換機,通過發夾彎技術回注報文。
TUN是Linux系統里的虛擬網路設備,它的原理和使用在 Kernel Doc 和 Wiki 做了比較清楚的說明。
TUN設備模擬網路層設備(network layer),處理三層報文,IP報文等,用於將報文注入到網路協議棧。
應用程序(app)可以從物理網卡上讀寫報文,經過處理後通過TUN回送,或者從TUN讀取報文處理後經物理網卡送出。
創建:
創建之後,使用 ip addr 就會看見一個名為」tun-default」的虛擬網卡
可以對tun-default設置IP:
使用open/write等文件操作函數從fd中進行讀取操作,就是在收取報文,向fd中寫入數據,就是在發送報文。
TAP是Linux系統里的虛擬網路設備,它的原理和使用在 Kernel Doc 和 Wiki 做了比較清楚的說明。
不同於TUN的是,TAP設備模擬鏈路層設備(link layer),處理二層報文,乙太網幀等。
TAP設備的創建過程和TUN類似,在ioctl設置的時候,將類型設置為IFF_TAP即可。
TAP設備與TUN設備的區別在於:
有時我們可能需要一塊物理網卡綁定多個 IP 以及多個 MAC 地址,雖然綁定多個 IP 很容易,但是這些 IP 會共享物理網卡的 MAC 地址,可能無法滿足我們的設計需求,所以有了 MACVLAN 設備,其工作方式如下:
MACVLAN 會根據收到包的目的 MAC 地址判斷這個包需要交給哪個虛擬網卡。單獨使用 MACVLAN 好像毫無意義,但是配合之前介紹的 network namespace 使用,我們可以構建這樣的網路:
採摘
創建一個基於eth0的名為macv1的macvlan網卡:
macvlan支持三種模式,bridge、vepa、private,在創建的時候設置「mode XXX」:
bridge模式,macvlan網卡和物理網卡直接可以互通,類似於接入到同一個bridge。
vepa模式下,兩個macvlan網卡直接不能直接通信,必須通過外部的支持「發夾彎」交換機才能通信。
private模式下,macvlan發出的廣播包(arp等)被丟棄,即使接入了支持「發夾彎」的交換機也不能發現其它macvlan網卡,除非手動設置mac。
MACVTAP 是對 MACVLAN的改進,把 MACVLAN 與 TAP 設備的特點綜合一下,使用 MACVLAN 的方式收發數據包,但是收到的包不交給 network stack 處理,而是生成一個 /dev/tapX 文件,交給這個文件:
由於 MACVLAN 是工作在 MAC 層的,所以 MACVTAP 也只能工作在 MAC 層,不會有 MACVTUN 這樣的設備。
ipvlan和macvlan的區別在於它在ip層進行流量分離而不是基於mac地址,同屬於一塊宿主乙太網卡的所有ipvlan虛擬網卡的mac地址都是一樣的。
[圖片上傳失敗...(image-d98b6f-1597455459947)]
veth設備是成對創建的:
創建之後,執行 ip link 就可以看到新創建的veth設備:
注意veth設備前面的ID, 58: 和 59: ,一對veth設備的ID是相差1的,並且系統內全局唯一。可以通過ID找到一個veth設備的對端。
veth設備理解
Intermediate Functional Block device,連接 ifb 中做了很詳細的介紹。
『貳』 什麼叫物理網路,什麼叫虛擬網路(要求通俗點)
物理網路:
TCP廠把計算機硬體介質「聯接」成的網路稱為物理網路(physics web)。
虛擬網路:
虛擬網路分為VLAN和VPN
VLAN建立在交換技術的基礎上,將網路結點按工作性質與需要劃分成若干個「邏輯工作組」,一個「邏輯工作組」即一個虛擬網路。VLAN的實現技術有四種:用交換機埠(Port)號定義虛擬網路、用MAC地址定義虛擬網路、IP廣播組虛擬網路、用網路層地址定義虛擬網路。「邏輯工作組」的劃分與管理由軟體來實現。通過劃分虛擬網,可以把廣播限制在各個虛擬網的范圍內,從而減少整個網路范圍內廣播包的傳輸,提高了網路的傳輸效率;同時各虛擬網之間不能直接進行通訊,而必須通過路由器轉發,為高級的安全控制提供了可能,增強了網路的安全性。
VPN是指在共用網路上建立專用網路的技術。之所以稱為虛擬網主要是因為整個 VPN網路的任意兩個結點之間的連接並沒有傳統專網建設所需的點到點的物理鏈路,而是架構在公用網路服務商ISP所提供的網路平台之上的邏輯網路。用戶的數據是通過ISP在公共網路(Internet)中建立的邏輯隧道(Tunnel),即點到點的虛擬專線進行傳輸的。通過相應的加密和認證技術來保證用戶內部網路數據在公網上安全傳輸,從而真正實現網路數據的專有性。
『叄』 hyper-v怎麼設置虛擬機和物理機同時上網
Windows 8中內置的Hyper-V管理器可以說給許多人帶來了驚喜!在Hyper-V管理器強大的同時,也同樣面臨著設置中一些不可避免的麻煩。有人說,Hyper-V虛擬機聯網麻煩,其實,只要掌握了技巧,也只是舉手之勞。x0dx0a任何一台計算機,如果不能與網路連通,可以說已經失去了大部分的功能,Windows 8尤是如此,虛擬機亦是如此。x0dx0aHyper-V並不能對物理機的網卡進行識別,所以需要藉助虛擬網卡通過物理機的網路共享實現網路鏈接。x0dx0a在關閉Hyper-V虛擬機的情況下,選擇Hyper-V管理界面中的「虛擬交換機管理器」。x0dx0a在彈出的對話框中「新建虛擬網路交換機」,選擇「內部」,點擊「創建虛擬交換機」。x0dx0a為虛擬交換機命名後點擊「應用」。稍事等待後即可在左側看到新添加的虛擬交換機。x0dx0a此時,在控制面板-網路和Internet-網路和共享中心中,可以看到如下未識別的鏈接:x0dx0a在「更改適配器設置」下面也可以見到如下設備:x0dx0a這就是剛剛創建出來的虛擬交換機。x0dx0a雖然有了虛擬設備,但是此時虛擬機仍不能正常鏈接。x0dx0a在網路與共享中心下面點擊現有的Internet鏈接:x0dx0a在彈出的對話框中選擇「屬性」:x0dx0a切換到「共享」標簽下,勾選「允許其他網路用戶通過此計算機的Internet連接來連接」並在下方「家庭網路連接」中選擇剛剛創建的虛擬交換機——vEthernet (Hyper-V Switch),點擊「確定」。x0dx0a此時,在管理員模式運行的命令提示符(在屏幕左下角右鍵,選擇「命令提示符 管理員」)中輸入「route print」後會在IPv4路由表中找到關於192.168.137.1的信息:x0dx0a接下來,進入到Hyper-V虛擬機設置界面,在「硬體」下的「網路適配器」中,設置「虛擬交換機」為剛剛設置好的Hyper-V Switch虛擬交換機,點擊「確定」。x0dx0a此時再重新啟動Hyper-V虛擬機,在對應的網路連接下面的TCP/IP協議中設置為「自動獲取IP地址」和「自動獲取DNS伺服器」,則可進行網路連接。x0dx0a若使用手動設置,則設置IP地址為「192.167.137.X」,X為2~255任意數字,子網掩碼為「255.255.255.0」,默認網關為 「192.168.137.1」,DNS伺服器設置為「192.168.137.1」。注意此處的網關與DNS伺服器為微軟默認,沒有需要請勿更改。x0dx0a確定之後會發現虛擬機已經可以進行網路連接了!x0dx0a若在此後更換了物理機的網路連接,需要重新設置共享,共享方式不變。x0dx0a此外,如果發現虛擬機中的鏈接變為「未識別的網路連接」,在網路圖標上帶有黃色的嘆號,可以按照前文在命令提示符中查看路由表是否正常,若不包含192.168.137.1內容(如下圖)則說明網路共享不正常,可以先禁用網路共享再按照前文重新開啟即可。x0dx0a除了採用共享式的內部網路連接,還可以使用外部網路連接,但是此時物理機若只含有一個網卡設備,則物理機網路連接將會斷開。(一塊網卡在同一時間只支持一條網路連接,虛擬機也相當於一台計算機,故不能兩者同時使用。)
『肆』 如何在虛擬機的linux里設置共享文件夾與物理主機互通
通過安裝虛擬機增強模式插件,達到共享文件夾的效果。
不過有時候虛擬機在linux共享文件夾模塊編譯不過去。
如果你linux開桌面,裝完增強功能的插件就可以直接在
屏幕里來回拖拽。是在不行,你直接用sshsecureshellclient
上傳下載軟體把。或者開個ftp
『伍』 要怎麼確認Vmware 虛擬機 和本機網路互通
你在虛擬機上ping你本機IP地址看看通不通不就曉得了
VM安裝的時候,網路設置這里有三個選項:橋接、NAT、主機模式
你選擇主機模式,讓你的虛擬機和你本機在同一個網段就可以互通了《Linux就該這么學》動手安裝部署VM的步驟,主機模式含義就是僅讓虛擬機的系統與物理主機通信,不能訪問外網;在物理機中對應的物理網卡是VMnet1。
你本來就是單機游戲不用聯網。
『陸』 關於VM虛擬機訪問物理主機和外網的設置--NAT模式
對於VM選擇的網路模式,共有三種,橋接模式、NAT模式、僅僅主機模式。關於三種的模式選擇,可以自行網路。網路上有許多的方法,但是適合自己的才是最好的。本文記錄個人操作筆記,使用NAT模式下,虛擬機Linux、物理主機、外網能夠互通的解決方案。
--->准備工作<---:0、查看當前的物理主機的ip,cmd打開,輸入ipconfig /all,能夠查看物理主機對應的ip地址信息,網關,以及子網掩碼。
1、移除VMnet0(橋接模式)和VMnet1(僅僅主機模式),只保留VMnet8,如下圖:
2、需要將VMnet8模式的子網設置成與物理主機ip不在同一子網下,如圖:
3、Net設置下,設置虛擬主機的網關網段與物理主機的不在同一網段下,確定保存,如下圖:
4、虛擬機設置為NAT模式,如下圖:
5、 設置linux的固定ip,打開路徑為:vim /etc/sysconfig/network-scripts/ifcfg-ens33 (ifcfg-ens33不一定存在,請看具體的虛擬機配置文件),如圖:
注意:BOOTPROTO="static"
6、重啟網路:systemctl restart network.隨後使用xshell連接,試試能虛擬機與物理主機互通(能連接上xshell就說明互通 ),虛擬機ping下網路,ok......
--- 更新2020年11月23日
關於ssh工具連接虛擬機慢的問題:
1、vi /etc/ssh/sshd_config
2、更改UseDNS yes,改為UseDNS no
3、重啟ssh服務
service sshd restart
systemctl restart sshd.service