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

話說VLAN Tag 的“來龍去脈”

網絡 通信技術
自從上篇文章《三層交換機的工作原理》發布后,有很多的網絡愛好者私底下與我取得了聯系,針對當前的TCP/IP網絡做了很多的探討,本文主要來闡述TCP/IP中Vlan的基本原理—Vlan Tag的“來龍去脈”。

前言

自從上篇文章《三層交換機的工作原理》發布后,有很多的網絡愛好者私底下與我取得了聯系,針對當前的TCP/IP網絡做了很多的探討,從這些愛好者身上我也學習到了很多,正所謂活到老,學到老;看這些愛好者對網絡的技術的那種熱愛與激情,也給我們寫作者增加了不少的動力。

無論我們現在的技術發展到什么地步,最基本最核心的思想仍然不會發生變化;當前我們還在使用傳統的路由器、交換機構建數據中心,但當前的網絡技術也在不斷的革新,另一種網絡時代的格局即將到來,例如現在SDN(軟件定義網絡)、SDS(軟件定義存儲)、SDW(軟件定義廣域網)、SDS(軟件定義軟件)等,從本質上看SDN是將網絡轉發過程中的控制層面與數據層面分離,兩個層面獨自開發運作,也可以說這是將控制層面從分布式部署變成集中式部署,但無論怎樣改變其底層還是使用TCP/IP協議,這就叫千變萬變,萬變不離其宗。但是我們也不得不承認TCP/IP協議也存在很多的缺點,其功能的復雜性和安全問題層出不窮,無論你是什么網站只要掛載到Internet上,你都從不敢說它很安全。本文主要來闡述TCP/IP中Vlan的基本原理—Vlan Tag的“來龍去脈”。

[[216427]]

一、Vlan tag

無論在傳統物理交換機、路由器,還是在Openstack Neutron網絡、SDN網絡中其工作原理仍然不會發生變化,網絡上對此解釋層出不窮,追本溯源還需研究其代碼的實現方式;首先來回顧一下帶有Vlan tag的Ethernet Frame封裝格式:

Vlan tag的Ethernet Frame封裝格式

其4字節的Tag字段有12bit是Vlan ID位,總共支持的VLAN數為2^12。

二、數據轉發,Vlan標簽如何動作

針對于這樣的數據幀在我們傳統的交換機,或者Vswitch里面是怎樣被轉發的呢?我們用兩個例子來解釋,如下圖:

1和A通信,標簽如何“動作”(本例中省略Native vlan的解釋)

1).1主機發送普通的數據幀;

2).switch1收到此幀首先需要對其解封裝,查看二層幀頭部幀目的MAC地址;

3).從CAM表中查找其目的MAC地址對應的VLAN ID與接收該幀的接口對應的VLAN ID 是否相同,如果相同則找到對應的出接口,如果不同則丟棄該幀;

4).找到出接口后,打上對應的VLAN 標簽,封裝成802.1Q的幀,從Trunk接口發送出去;

5).到達switch2后,解封裝查看幀頭部的目的MAC地址;

6).從CAM表中查找其目的MAC地址對應的VLAN ID與接收該幀頭部的VLAN ID是否匹配,如果匹配,則查找對應的出接口,如果不同則丟棄該幀;

7).找到出接口后,封裝成原始的幀,從相應端口轉發出去。

注意:vlan tag動作打不打標簽不是基于接口的概念,而是基于其查表,cpu計算,背板的功能,我看過太多的文章,也聽過很多人在描述交換機轉發數據包是說的一句話“Access 口用來去標簽,Trunk口用來打標簽,”或是“Access口和Trunk口具有打標簽和剝離標簽的功能”,這樣的描述都是錯的。如果這樣做的話,交換機太傻了,這樣的代碼實現也是非常低級的。例如,我們再看一種情況:

主機1和主機2通信,問在交換機內部有打標簽和剝離標簽的動作嗎?1和2 在相同的vlan中,他們之間通信經過交換機如果需要打標簽的話,那豈不是加重交換機的計算負載嗎,所以像這樣的兩個主機在相互通信的時候,僅僅是查看CAM表,而不需要執行打標簽和剝離標簽的動作。

三、Openstack Neutron網絡中vlan 的工作原理

Openstack Neutron網絡中vlan 的工作原理

情景1——vm03 與 vm 04 通信

由于vm03 和 vm 04 分別在兩臺不同的物理服務器上,所以他們之間通信必須要經過外界物理交換機的幫助;

a. vm03 從eth0發送常規ethernet frame經過qbrccc到qvoccc;

b. br-int 上的qvoccc接收到該幀之后,開始解封裝其數據包,查看ethernet頭部的dest mac字段;

c. 因為其發送的數據是從qvoccc接收到的,而qvoccc 接口已經被劃分到vlan 20中,如下配置:

d. 所以在查看vcam表的時候,需要查看mac/vlan id是否一致,如果一致則將數據封裝成802.1Q的frame從int-br-eth1發送到br-eth1上,如果不一致則丟棄;

e. 當br-eth1 從 phy-br-eth1 接收到ethernet frame 時,首先就去查看local-vlan 到 global-vlan的一個映射表,配置如下:

發現 local_vlan=20 需要將其轉換成vlan 120 ;

f. br-eth1 將會查看其vcam表,查找frame destmac address對應的vlan id是否為120 如果是,則將其封裝成802.1Q vlan 120的frame 從對應的接口(eth1)轉發出去;

g. 物理交換機中轉發過程此處不再熬述;

h. 此frame到達vm04所在的物理機br-eth1上時,將解封裝查看幀的dest mac 字段;

i. 然后查找vcam表地址對應的vlan tag與此幀的tag是否一致,如果一致則封裝之后從相應的接口(phy-br-eth1)轉發出去,如果不一致則丟棄(此處與傳統交換機并無差異);

j. 當vm04所在物理機的br-int的int-br-eth1接收到該幀的時候,首先解封裝查看幀的dest mac 字段;

k. 繼而查看vcam表,尋找該mac地址對應的vlan id 與該幀的vlan tag 是否匹配,如果匹配執行如下操作,如果不匹配丟棄;

l. 當匹配時,br-int上將會查看local_global vlan id 映射關系,配置如下:

vlan tag=120 需要轉換成 tag 20;注意:轉換是查表的一個過程中,而不是具體的一個操作,更不是在進入接口的時候;

m. 當查詢完成映射表之后將會再一次查找vcam表,尋找轉化后的vlan id與該表中 mac地址對應的vlan id是否匹配,如果匹配則封裝成常規的frame,從相應端口轉發出去,如果不匹配則丟棄。

情景2—vm01和vm02之間通信

和我們傳統的交換機是一樣的,在這個過程中,br-int是不做任何的打標簽,彈標簽的動作,就是普通的frame之間轉發數據,此處不再熬述。

責任編輯:趙寧寧 來源: SDNLAB
相關推薦

2022-06-28 18:32:45

物聯網IoT

2009-06-26 08:44:57

2017-12-28 14:51:01

AndroidView焦點

2021-05-13 10:12:55

Kubernetes 微服務軟件開發

2019-10-31 08:36:59

線程內存操作系統

2022-08-02 09:02:17

虛擬內存操作系統

2022-06-09 09:20:40

Linux語言編寫代碼

2021-01-19 11:40:40

Linux代碼程序編譯

2009-10-20 14:58:15

Javascript事

2020-04-12 22:23:45

Kubernetes容器網絡

2010-07-20 16:14:42

2018-02-24 13:21:02

2011-08-30 16:26:34

Hadoop

2009-09-16 13:05:32

C#組件開發

2019-08-02 08:59:21

Token認證服務器

2020-04-15 22:18:55

架構負載均衡分布式

2020-07-10 08:03:35

DNS網絡ARPAne

2011-05-18 13:45:30

MongoDB

2020-01-30 11:26:17

QinQVLAN協議

2010-03-16 16:36:54

無線網狀網
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 97在线观看 | 精品国产乱码久久久久久闺蜜 | 日韩高清黄色 | 操操日| 最近中文字幕免费 | 亚洲福利免费 | 日韩视频专区 | 亚洲精品无 | 亚洲第一女人av | 成年人精品视频在线观看 | 在线观看成人av | 夜操 | 中文字幕日韩欧美一区二区三区 | 中文字幕一区二区三区在线乱码 | 中文字字幕一区二区三区四区五区 | 中文在线视频 | 日日夜夜天天综合 | 日日碰狠狠躁久久躁96avv | 成人av久久| 精品区 | 久久久久综合 | 国产一区二 | 免费看片国产 | 国产在线视频一区二区 | 国产精品久久久久无码av | 国产午夜视频 | 国产一区免费视频 | 视频二区| 日本aa毛片a级毛片免费观看 | 色婷婷婷婷色 | 亚洲视频二 | 91中文视频 | 久久se精品一区精品二区 | 天天曰天天曰 | 日韩在线不卡视频 | 国产成人免费在线观看 | 国产免费一区二区三区免费视频 | www.4hu影院| 国产亚洲成av人在线观看导航 | 亚洲网视频| 成年人视频免费在线观看 |