欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

linux虛擬網(wǎng)絡(luò)設(shè)備之vlan配置詳解

 更新時間:2017年12月13日 11:54:32   投稿:daisy  
這篇文章主要給大家介紹了關(guān)于linux虛擬網(wǎng)絡(luò)設(shè)備之vlan配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

簡介

VLAN是網(wǎng)絡(luò)棧的一個附加功能,且位于下兩層。首先來學(xué)習(xí)Linux中網(wǎng)絡(luò)棧下兩層的實現(xiàn),再去看如何把VLAN這個功能附加上去。下兩層涉及到具體的硬件設(shè)備,日趨完善的Linux內(nèi)核已經(jīng)做到了很好的代碼隔離,對網(wǎng)絡(luò)設(shè)備驅(qū)動也是如此,如下圖所示:

這里要注意的是,Linux下的網(wǎng)絡(luò)設(shè)備net_dev并不一定都對應(yīng)實際的硬件設(shè)備,只要注冊一個struct net_device{}結(jié)構(gòu)體(netdevice.h)到內(nèi)核中,那么這個網(wǎng)絡(luò)設(shè)備就存在了。該結(jié)構(gòu)體很龐大,其中包含設(shè)備的協(xié)議地址(對于IP即IP地址),這樣它就能被網(wǎng)絡(luò)層識別,并參與路由系統(tǒng),最有名的當數(shù)loopback設(shè)備。不同的設(shè)備(包括硬件和非硬件)的ops操作方法各不相同,由驅(qū)動自己實現(xiàn)。一些通用性的、與設(shè)備無關(guān)的操作流程(如設(shè)備鎖定等)則被Linux提煉出來,我們稱為驅(qū)動框架。

linux虛擬網(wǎng)絡(luò)設(shè)備之vlan配置

我們通過一個網(wǎng)橋兩個設(shè)備對,來連接兩個網(wǎng)絡(luò)名字空間,每個名字空間中創(chuàng)建兩個vlan

借助vconfig來配置vlan:

#創(chuàng)建網(wǎng)橋
brctl addbr br-test-vlan 
#創(chuàng)建veth對兒
ip link add veth01 type veth peer name veth10
ip link add veth02 type veth peer name veth20 
#將veth對兒的一段添加到網(wǎng)橋
brctl addif br-test-vlan veth01
brctl addif br-test-vlan veth02 
#啟動設(shè)備
ip link set dev br-test-vlan up
ip link set dev veth01 up
ip link set dev veth02 up
ip link set dev veth10 up
ip link set dev veth20 up 
#創(chuàng)建網(wǎng)絡(luò)名字空間
ip netns add test-vlan-vm01
ip netns add test-vlan-vm02 
#將設(shè)備對兒的另一端添加到另個名字空間(其實在一個名字空間也能玩,只是兩個名字空間更加形象)
ip link set veth10 netns test-vlan-vm01
ip link set veth20 netns test-vlan-vm02 
#分別進入兩個名字空間創(chuàng)建vlan和配置ip
#配置名字空間test-vlan-vm01
ip netns exec test-vlan-vm01 bash
#配置vlan 3001 和 vlan 3002
vconfig add veth10 3001
vconfig add veth10 3002
#啟動兩個vlan的設(shè)備
ip link set veth10.3001 up
ip link set veth10.3002 up 
#分別在兩個vlan上配置ip (這里簡單起見,使用了同一個網(wǎng)段了IP,缺點是,需要了解一點兒路由的知識)
ip a add 172.16.30.1/24 dev veth10.3001
ip a add 172.16.30.2/24 dev veth10.3002 
#添加路由
route add 172.16.30.21 dev veth10.3001
route add 172.16.30.22 dev veth10.3002 
#配置名字空間test-vlan-vm02
ip netns exec test-vlan-vm02 bash
#配置vlan 3001 和 vlan 3002
vconfig add veth20 3001
vconfig add veth20 3002
#啟動兩個vlan的設(shè)備
ip link set veth20.3001 up
ip link set veth20.3002 up
#分別在兩個vlan上配置ip (這里簡單起見,使用了同一個網(wǎng)段了IP,缺點是,需要了解一點兒路由的知識)
ip a add 172.16.30.21/24 dev veth20.3001
ip a add 172.16.30.22/24 dev veth20.3002 
#添加路由
route add 172.16.30.1 dev veth20.3001
route add 172.16.30.2 dev veth20.3002

查看一下vlan配置:

# cat /proc/net/vlan/config 
VLAN Dev name | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
veth10.3001 | 3001 | veth10
veth10.3002 | 3002 | veth10

現(xiàn)在,我們可以分別在兩個名字空間來ping另外一個名字空間的兩個IP,雖然兩個IP都能ping通,但是使用的源IP是不同的,走的vlan也是不同的,我們可以在veth01/veth10/veth02/veth20/br-test-vlan 任意一個上抓包,會看到vlan信息:

# tcpdump -i veth10 -nn -e
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on veth10, link-type EN10MB (Ethernet), capture size 262144 bytes
15:38:18.381010 82:f7:0e:2d:3f:62 > 9e:58:72:fa:11:15, ethertype 802.1Q (0x8100), length 102: vlan <span style="color: #ff0000;">3001</span>, p 0, ethertype IPv4, <strong><span style="color: #ff0000;">172.16.30.1 > 172.16.30.21</span></strong>: ICMP echo request, id 19466, seq 1, length 64
15:38:18.381183 9e:58:72:fa:11:15 > 82:f7:0e:2d:3f:62, ethertype 802.1Q (0x8100), length 102: vlan <span style="color: #ff0000;"><strong>3001</strong></span>, p 0, ethertype IPv4, 172.16.30.21 > 172.16.30.1: ICMP echo reply, id 19466, seq 1, length 64
15:38:19.396796 82:f7:0e:2d:3f:62 > 9e:58:72:fa:11:15, ethertype 802.1Q (0x8100), length 102: vlan 3001, p 0, ethertype IPv4, 172.16.30.1 > 172.16.30.21: ICMP echo request, id 19466, seq 2, length 64
15:38:19.396859 9e:58:72:fa:11:15 > 82:f7:0e:2d:3f:62, ethertype 802.1Q (0x8100), length 102: vlan 3001, p 0, ethertype IPv4, 172.16.30.21 > 172.16.30.1: ICMP echo reply, id 19466, seq 2, length 64
15:38:23.162052 82:f7:0e:2d:3f:62 > 9e:58:72:fa:11:15, ethertype 802.1Q (0x8100), length 102: vlan 3002, p 0, ethertype IPv4, 172.16.30.2 > <strong><span style="color: #ff0000;">172.16.30.22</span></strong>: ICMP echo request, id 19473, seq 1, length 64
15:38:23.162107 9e:58:72:fa:11:15 > 82:f7:0e:2d:3f:62, ethertype 802.1Q (0x8100), length 102: vlan 3002, p 0, ethertype IPv4, <strong><span style="color: #ff0000;">172.16.30.22 > 172.16.30.2</span></strong>: ICMP echo reply, id 19473, seq 1, length 64

如果試圖從veth10.3001 去ping 172.16.30.22 是不能通的,因為是不同的vlan呀:

# ping -I veth10.3001 172.16.30.22
PING 172.16.30.22 (172.16.30.22) from 172.16.30.1 veth10.3001: 56(84) bytes of data.
^C
--- 172.16.30.22 ping statistics ---
9 packets transmitted, 0 received, 100% packet loss, time 8231ms

不適用vconfig的解法:

ip link add link veth10 name veth10.3001 type vlan id 3001

另: vlan 一般以  設(shè)備名.vlanid 來命名,不過并非強制,如下命名為 vlan3003也是沒問題的

# ip link add link veth10 name vlan3003 type vlan id 3003

注意:一個主設(shè)備上相同vlan好的子設(shè)備最多只能有一個

# ip link add link veth10 name vlan3001 type vlan id 3001
 RTNETLINK answers: File exists

所以,正常來講,一般是這樣的:

參考: http://network.51cto.com/art/201504/473419.htm

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Linux svn的搭建與使用(圖文詳解)

    Linux svn的搭建與使用(圖文詳解)

    這篇文章主要介紹了Linux搭建SVN服務(wù)器,現(xiàn)在分享給大家,也給大家做個參考。有興趣的可以了解一下。
    2016-11-11
  • LuManager Linux/Unix服務(wù)器管理面板推薦之國產(chǎn)面板

    LuManager Linux/Unix服務(wù)器管理面板推薦之國產(chǎn)面板

    國外VPS 大多數(shù)是 Linux /Unix平臺,Linux/Unix平臺的優(yōu)點也很多,重點是它還是免費的,(用過美國VPS 的朋友都知道國外IDC 裝Windows是需要版權(quán)費的)國內(nèi)大型網(wǎng)站幾乎都是用Linux/Unix平臺
    2012-09-09
  • Ubuntu服務(wù)器常用命令匯總

    Ubuntu服務(wù)器常用命令匯總

    ubunt常用服務(wù)器命令操作,閑來無事,分享ubuntu服務(wù)器版常用命令,絕對有用。希望大家好好享受,但是不要拿自己的服務(wù)器做測試,建議您在windows下建立虛擬機再操作
    2020-10-10
  • 詳解Linux上svn命令行批量操作

    詳解Linux上svn命令行批量操作

    這篇文章主要介紹了詳解Linux上svn命令行批量操作的相關(guān)資料,linux上的svn命令行批量添加或刪除文件,需要的朋友可以參考下
    2017-07-07
  • Apache Pulsar 微信大流量實時推薦場景下實踐詳解

    Apache Pulsar 微信大流量實時推薦場景下實踐詳解

    這篇文章主要為大家介紹了Apache Pulsar 微信大流量實時推薦場景下實踐詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Linux中對lvm邏輯卷分區(qū)大小的調(diào)整教程(針對xfs與ext4不同文件系統(tǒng))

    Linux中對lvm邏輯卷分區(qū)大小的調(diào)整教程(針對xfs與ext4不同文件系統(tǒng))

    這篇文章主要給大家介紹了關(guān)于Linux中對lvm邏輯卷分區(qū)大小的調(diào)整教程(針對xfs與ext4不同文件系統(tǒng))的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • linux的基本命令mkdir使用詳解

    linux的基本命令mkdir使用詳解

    這篇文章主要介紹了linux的基本命令mkdir使用詳解的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • 關(guān)于CentOs系統(tǒng)自帶python和yum卸載后的解決辦法

    關(guān)于CentOs系統(tǒng)自帶python和yum卸載后的解決辦法

    前幾天因項目需要,在服務(wù)器上搭建python-mysql模塊,結(jié)果沒安裝好,于是乎想卸載重裝,遂在網(wǎng)上查詢卸載python的方法,結(jié)果一不小心直接把系統(tǒng)的python刪了個干凈,怎么處理呢,看看小編給大家?guī)淼谋酒坛贪?/div> 2018-11-11
  • Apache?ECharts介紹

    Apache?ECharts介紹

    Apache?ECharts?是一款基于?JavaScript?的數(shù)據(jù)可視化圖表庫,提供直觀、生動、可交互、可個性化定制的數(shù)據(jù)可視化圖表,本文給大家分享Apache?ECharts簡介,感興趣的朋友一起看看吧
    2023-11-11
  • linux中設(shè)置nexus開機自啟動的方法

    linux中設(shè)置nexus開機自啟動的方法

    這篇文章主要介紹了linux中設(shè)置nexus開機自啟動的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02

最新評論