成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解:Linux網絡虛擬化技術

云計算 虛擬化
Linux的網絡虛擬化是LXC項目中的一個子項目,LXC包括文件系統虛擬化,進程空間虛擬化,用戶虛擬化,網絡虛擬化,等等,這里使用LXC的網絡虛擬化來模擬多個網絡環境。

 Linux的網絡虛擬化是LXC項目中的一個子項目,LXC包括文件系統虛擬化,進程空間虛擬化,用戶虛擬化,網絡虛擬化,等等,這里使用LXC的網絡虛擬化來模擬多個網絡環境。

[[271592]]

本文從基本的網絡設備講起,到具體實驗環節,希望能對 Linux 本身的虛擬網絡環境有一個宏觀的了解。

TUN 設備

TUN 設備是一種虛擬網絡設備,通過此設備,程序可以方便得模擬網絡行為。先來看看物理設備是如何工作的:

 

 

詳解:Linux網絡虛擬化技術

 

所有物理網卡收到的包會交給內核的 Network Stack 處理,然后通過 Socket API 通知給用戶程序。下面看看 TUN 的工作方式:

 

 

詳解:Linux網絡虛擬化技術

 

普通的網卡通過網線收發數據包,但是 TUN 設備通過一個文件收發數據包。所有對這個文件的寫操作會通過 TUN 設備轉換成一個數據包送給內核;當內核發送一個包給 TUN 設備時,通過讀這個文件可以拿到包的內容。

如果我們使用 TUN 設備搭建一個基于 UDP VPN,那么整個處理過程就是這樣:

 

 

詳解:Linux網絡虛擬化技術

 

數據包會通過內核網絡棧兩次。但是經過 App 的處理后,數據包可能已經加密,并且原有的 ip 頭被封裝在 udp 內部,所以第二次通過網絡棧內核看到的是截然不同的網絡包。

TAP 設備

TAP 設備與 TUN 設備工作方式完全相同,區別在于:

TUN 設備的 /dev/tunX 文件收發的是 IP 層數據包,只能工作在 IP 層,無法與物理網卡做 bridge,但是可以通過三層交換(如 ip_forward)與物理網卡連通。

TAP 設備的 /dev/tapX 文件收發的是 MAC 層數據包,擁有 MAC 層功能,可以與物理網卡做 bridge,支持 MAC 層廣播

MACVLAN

有時我們可能需要一塊物理網卡綁定多個 IP 以及多個 MAC 地址,雖然綁定多個 IP 很容易,但是這些 IP 會共享物理網卡的 MAC 地址,可能無法滿足我們的設計需求,所以有了 MACVLAN 設備,其工作方式如下:

 

 

詳解:Linux網絡虛擬化技術

 

MACVLAN 會根據收到包的目的 MAC 地址判斷這個包需要交給哪個虛擬網卡。單獨使用 MACVLAN 好像毫無意義,但是配合之前介紹的 network namespace 使用,我們可以構建這樣的網絡:

 

詳解:Linux網絡虛擬化技術

由于 macvlan 與 eth0 處于不同的 namespace,擁有不同的 network stack,這樣使用可以不需要建立 bridge 在 virtual namespace 里面使用網絡。

MACVTAP

MACVTAP 是對 MACVLAN的改進,把 MACVLAN 與 TAP 設備的特點綜合一下,使用 MACVLAN 的方式收發數據包,但是收到的包不交給 network stack 處理,而是生成一個 /dev/tapX 文件,交給這個文件:

 

 

詳解:Linux網絡虛擬化技術

 

 

 

由于 MACVLAN 是工作在 MAC 層的,所以 MACVTAP 也只能工作在 MAC 層,不會有 MACVTUN 這樣的設備。

創建虛擬網絡環境

使用命令

  1. $ ip netns add net0 

可以創建一個完全隔離的新網絡環境,這個環境包括一個獨立的網卡空間,路由表,ARP表,ip地址表,iptables,ebtables,等等。總之,與網絡有關的組件都是獨立的。

使用命令

  1. $ ip netns list 
  2. net0 

可以看到我們剛才創建的網絡環境

進入虛擬網絡環境

使用命令

  1. $ ip netns exec net0  
  2. `command` 

我們可以在 net0 虛擬環境中運行任何命令

 

 

詳解:Linux網絡虛擬化技術

 

這樣我們可以在新的網絡環境中打開一個shell,可以看到,新的網絡環境里面只有一個lo設備,并且這個lo設備與外面的lo設備是不同的,之間不能互相通訊。

連接兩個網絡環境

新的網絡環境里面沒有任何網絡設備,并且也無法和外部通訊,就是一個孤島,通過下面介紹的這個方法可以把兩個網絡環境連起來,簡單的說,就是在兩個網絡環境之間拉一根網線。

  1. $ ip netns add net1 

先創建另一個網絡環境net1,我們的目標是把net0與net1連起來。

 

詳解:Linux網絡虛擬化技術

 

這里創建連一對veth虛擬網卡,類似pipe,發給veth0的數據包veth1那邊會收到,發給veth1的數據包veth0會收到。就相當于給機器安裝了兩個網卡,并且之間用網線連接起來了。

  1. $ ip link set veth0 netns net0 
  2. $ ip link set veth1 netns net1 

這兩條命令的意思就是把veth0移動到net0環境里面,把veth1移動到net1環境里面,我們看看結果。

 

詳解:Linux網絡虛擬化技術

 

veth0 veth1已經在我們的環境里面消失了,并且分別出現在net0與net1里面。下面我們簡單測試一下net0與net1的聯通性。

 

詳解:Linux網絡虛擬化技術

 

分別配置好兩個設備,然后用ping測試一下聯通性:

詳解:Linux網絡虛擬化技術

一個稍微復雜的網絡環境

 

詳解:Linux網絡虛擬化技術

 

創建虛擬網絡環境并且連接網線。

  1. ip netns add net0 
  2. ip netns add net1 
  3. ip netns add bridge 
  4. ip link add type veth 
  5. ip link set dev veth0 name net0-bridge netns net0 
  6. ip link set dev veth1 name bridge-net0 netns bridge 
  7. ip link add type veth 
  8. ip link set dev veth0 name net1-bridge netns net1 
  9. ip link set dev veth1 name bridge-net1 netns bridge 

在bridge中創建并且設置br設備:

  1. ip netns exec bridge brctl addbr br 
  2. ip netns exec bridge ip link set dev br up 
  3. ip netns exec bridge ip link set dev bridge-net0 up 
  4. ip netns exec bridge ip link set dev bridge-net1 up 
  5. ip netns exec bridge brctl addif br bridge-net0 
  6. ip netns exec bridge brctl addif br bridge-net1 

然后配置兩個虛擬環境的網卡:

 

詳解:Linux網絡虛擬化技術

 

測試:

 

詳解:Linux網絡虛擬化技術

OK,以上便是今天的內容。

最后

NDK基礎開發流程—Linux流程大綱

 

詳解:Linux網絡虛擬化技術

 

 

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2019-05-13 16:37:35

Linux網絡虛擬化

2019-04-16 16:23:29

GPU虛擬化CPU

2015-10-10 15:46:02

融合網絡網絡虛擬化

2013-11-18 09:43:28

網絡虛擬化SDN

2019-11-12 14:48:00

Linux桌面虛擬化KVM

2011-03-28 18:25:03

ibmdwLinux

2012-03-18 21:41:40

linux虛擬化

2012-03-21 10:10:57

虛擬化網絡診斷

2009-12-25 10:05:00

Linux虛擬化Xen虛擬化

2015-10-09 17:01:08

數據中心網絡虛擬化

2011-04-21 09:20:28

IaaS網絡虛擬化

2009-12-28 21:12:05

網絡虛擬化IRF2H3C

2009-01-21 18:31:50

2018-02-28 14:29:18

2009-11-23 19:47:57

ibmdwLinux

2013-08-23 10:32:41

Linux服務器虛擬化

2015-10-15 10:06:40

網絡虛擬化虛擬化技術

2009-08-18 20:05:11

虛擬化技術虛擬交換機

2009-02-27 10:03:14

虛擬化網絡大會虛擬化技術

2009-05-26 16:53:20

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲一区在线日韩在线深爱 | 国产精品96久久久久久 | 久久香蕉网 | 国产一区高清 | 国产精品激情 | 日韩欧美在线观看 | 免费一级欧美在线观看视频 | 一级二级三级黄色 | 波多野结衣先锋影音 | 91精品国产综合久久福利软件 | 亚洲欧美激情国产综合久久久 | 亚洲第一色站 | 亚洲网站在线观看 | japanhdxxxx裸体 | av午夜电影 | 国产乱码精品1区2区3区 | 日韩久久久久久 | 午夜久久久久久久久久一区二区 | 亚洲www| av在线免费观看不卡 | 天天澡天天狠天天天做 | 国产一区二区三区在线 | 精品毛片在线观看 | 欧美精品一区二区在线观看 | 国产一区二区不卡 | 成人久久一区 | 一区二区久久 | 久久99精品久久久久久 | 国内自拍视频在线观看 | 狠狠爱视频 | 亚洲精品一区二区另类图片 | 日本福利视频 | 欧美黄色片 | 成人国产a| 免费激情网站 | 一区二区精品 | 国产精品久久久久久妇女6080 | 国产成人免费视频网站视频社区 | 爱草视频 | 色爱综合网 | 免费av直接看 |