成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

這篇文章給大家分享的是有關(guān)linux虛擬網(wǎng)絡(luò)設(shè)備之vlan配置的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

為上思等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及上思網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、上思網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

簡介

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

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

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

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

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

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

借助vconfig來配置vlan:

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

查看一下vlan配置:

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

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

# tcpdump -i veth20 -nn -e
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on veth20, 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 >3001</span>, p 0, ethertype IPv4, <strong><span >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 ><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 >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 >172.16.30.22 > 172.16.30.2</span></strong>: ICMP echo reply, id 19473, seq 1, length 64

如果試圖從veth20.3001 去ping 172.16.30.22 是不能通的,因?yàn)槭遣煌膙lan呀:

# ping -I veth20.3001 172.16.30.22
PING 172.16.30.22 (172.16.30.22) from 172.16.30.1 veth20.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 veth20 name veth20.3001 type vlan id 3001

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

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

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

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

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

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

感謝各位的閱讀!關(guān)于“l(fā)inux虛擬網(wǎng)絡(luò)設(shè)備之vlan配置的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

分享標(biāo)題:linux虛擬網(wǎng)絡(luò)設(shè)備之vlan配置的示例分析
本文來源:http://jinyejixie.com/article18/gdpcdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃關(guān)鍵詞優(yōu)化定制網(wǎng)站、建站公司、網(wǎng)站收錄、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
恩平市| 邓州市| 台安县| 神池县| 噶尔县| 凤庆县| 山阳县| 昌宁县| 大竹县| 噶尔县| 广河县| 凤冈县| 崇仁县| 三河市| 米林县| 饶平县| 平塘县| 逊克县| 游戏| 永福县| 北宁市| 定结县| 兰考县| 湟源县| 浠水县| 错那县| 睢宁县| 广元市| 阜城县| 邳州市| 揭阳市| 吴川市| 长宁县| 盐源县| 绥江县| 富顺县| 松滋市| 河池市| 阳谷县| 海城市| 舟曲县|