PVID就是PORT VID,當(dāng)一個PORT屬于多個VLAN時,當(dāng)它收到不帶TAG的數(shù)據(jù)時,
它 就給數(shù)據(jù)加上TAG,其中VID=PVID.
FID就是FILTERING ID.在SHARE LEARNING環(huán)境中,共享地址學(xué)習(xí)的VLAN用一個FID來標(biāo)識.
下面這篇短文是中興的工程師給我的,重點是介紹ZTE二層交換機中的FID
==========
以太網(wǎng)交換機中FID的概念和作用
本文介紹以太網(wǎng)交換機中的一個新的概念FID,首先我們回顧一下通過vlan進(jìn)行端口隔離的配置,及存在的一個問題,最后通過FID的設(shè)置解決這個問題。
還 記得以前介紹的vlan端口隔離配置嗎?
創(chuàng)建vlan1, 包含1, 24口
創(chuàng)建vlan2, 包含2, 24口
...
創(chuàng) 建vlan23, 包含23,24口
創(chuàng)建vlan100,包含1,2,...,23,24口
這樣配置以后,端口1,2,...,23之間 是隔離的,不能互相訪問,24口上行,可以和1-23通信
但實事證明存在這樣一個問題,24口在轉(zhuǎn)發(fā)用戶下行數(shù)據(jù)時是廣播方式轉(zhuǎn)發(fā)到1-23口。抓包可以發(fā)現(xiàn)端口1用戶的下行數(shù)據(jù)在2-23口都能抓到包(上行未能抓到),說明隔離的是上行數(shù)據(jù),下行卻變成了一個HUB。
那么為什么會出現(xiàn)這種情況能?讓我們來分析一下。
二層交換機有這樣一張轉(zhuǎn)發(fā)表:mac ->port,對于每個vlan而言,每個vlan都有一張這個表
當(dāng)PC1(端口1下的PC)發(fā)出上行包后,交換機的vlan1學(xué)到如下的一個條目
vlan1mac-> port
PC1-mac -> 1
當(dāng)上行口三層設(shè)備(R1)回復(fù)PC1 的數(shù)據(jù)時,交換機的vlan100學(xué)到如下條目
vlan100mac-> port
R1-mac -> 24
當(dāng)它在vlan100中要轉(zhuǎn)發(fā)給PC1時,vlan100轉(zhuǎn)發(fā)表中只有這樣的條目
vlan100mac-> port
R1-mac -> 24
可見并沒有滿足PC1 mac地址的條目,于是它在vlan100里的端口(1-23口)廣播。
當(dāng)PC1第二個數(shù)據(jù)包發(fā)出后,下行時是否還會在1-23口廣播呢?答案是YES,重復(fù)上面的過程,始終無法在vlan100中形成PC1的mac條目,所以以后每次通信,下行是都會在每個端口廣播。
于是,我們以前用的用戶端口隔離的配置,并沒有真正意義上起到端口隔離的作用——僅僅上行數(shù)據(jù)隔離,下行就變成了一個HUB(其實上行也是廣播方式,只不過只廣播到一個24口)。
那么怎樣解決這個問題呢?先介紹一個新的概念——FID,即Filtering DatabaseIdentifier,是指相同F(xiàn)ID的VLAN可以共享轉(zhuǎn)發(fā)表的條目。
FID并不是新鮮事物,在交換機內(nèi)部其實一直 都有fid,大多數(shù)廠家并不會提供fid的設(shè)置,而是缺省的讓fid=vid。
在公司自研的以太網(wǎng)交換機中,提供fid的設(shè)置,現(xiàn)在用 2826E舉例說明,fid的作用。
首先在2826E上配置端口隔離(注意先把缺省vlan1里的端口刪掉)
set vlan 1 add port 1,24 untag
set vlan 2 add port 2,24 untag
...
set vlan 23 add port 23,24 untag
set vlan 100 add port 1-24 untag
!
set vlan 1 enable
set vlan 2 enable
...
set vlan 23 enable
set vlan 100 enable
!
set port 1 pvid 1
set port 2 pvid 2
...
set port 23 pvid 23
set port 24 pvid 100
此時show vlan可以看到每個vlan的fid都缺省的等于各自的vid。
這時通過sniffer抓包可以發(fā)現(xiàn),1口的下行包,在2-23口都能被抓到, 也就如同之前一樣,下行數(shù)據(jù)在1-23口廣播。
我們再增加一條命令set vlan 1-23 fid100,再抓包,發(fā)現(xiàn)1口的下行包,在2-23口都抓不到了,下行數(shù)據(jù)不再廣播到每個端口了,是什么原因呢?這就不得不研究fid的作用了。
前面提到相同fid的vlan可以共享轉(zhuǎn)發(fā)表的條目,那么又是如何實現(xiàn)的呢?請看
zte(cfg)#show fdb 可以看到這樣一張表
MacAddressFid PortId Type
----------------- ---- ------ -------
00.08.02.d7.a0.8141dynamic
...
排 除type不管,這張表由mac,fid,port構(gòu)成
當(dāng)PC1(端口1下的PC)發(fā)出上行包后,交換機學(xué)到如下的一個條目(此時 vlan1的fid已設(shè)為100)
mac,fid -> port
PC1-mac, 100 -> 1
數(shù) 據(jù)在vlan1廣播,從24口出去
當(dāng)上行口三層設(shè)備(R1)回復(fù)PC1的數(shù)據(jù)時,根據(jù)fid規(guī)則,交換機學(xué)到如下條目
mac,fid -> port
R1-mac, 100 -> 24
當(dāng)它在vlan100中要轉(zhuǎn)發(fā)給PC1時,fid相同 的vlan共享如下條目
mac,fid -> port
PC1-mac, 100 -> 1
R1-mac, 100 -> 24
于是從1口單播出去
PC1第二次發(fā)包,查找已經(jīng)形成的fdb轉(zhuǎn)發(fā)表,從24口單播出去,再由1口單播 回來。
到了這里,我突然想到,如果端口2的PC2發(fā)包,形成如下fdb表
mac,fid -> port
PC1-mac, 100 -> 1
PC2-mac, 100 -> 2
R1-mac, 100 -> 24
那么PC1和PC2還能隔離嗎?
PC1的數(shù)據(jù)從端口1收到后,在vlan1里轉(zhuǎn)發(fā),雖然vlan1共享了fid=100的轉(zhuǎn)發(fā)表,但PC2所在的端口2不屬于vlan1,所以仍然不會轉(zhuǎn)發(fā)到端口2去。
回過頭再看,fid缺 省時等于vid的情況,經(jīng)過不斷的學(xué)習(xí),交換機內(nèi)部最終形成這樣一張fdb表
mac,fid -> port
PC1-mac, 1 ->1
PC2-mac, 2 ->2
...
PC23-mac,23 -> 2
R1-mac, 100 -> 24
由于fid不同,每個vlan都只享有與自己fid對應(yīng)的一個條目,和本文最先說的每個vlan的轉(zhuǎn)發(fā)表其實是一會事。不管交換機是否可以設(shè)置fid,fdb這張表在交換機內(nèi)部始終存在著的,而且交換機是依照這張表進(jìn)行轉(zhuǎn)發(fā)的。
通過 對fid的研究,我們對以太網(wǎng)交換機有了更深入的了解,讓我們把fid的概念和作用總結(jié)一下:
1、RFC 802.1Q中關(guān)于FID的原文
Filtering Database ID (FID)
Addressing information that the device learns about a VLAN isstored in
the filtering database assigned to that VLAN. Several VLANs canbe
assigned to the same FID to allow those VLANs to shareaddressing
information. This enables the devices in the different VLANsto
communicate with each other when the individual(個別的) ports havebeen
configured to allow communication to occur. The configurationis
accomplished using the Local Management VLAN Forwarding
Configuration screen. By default a VLAN is assigned to the FIDthat
matches its VLAN ID.
2、交換機內(nèi)部存在這樣一個數(shù)據(jù)庫filteringdatabase,存放著每個vlan的mac地址信息,fid是這個數(shù)據(jù)庫的字段之一
3、相同fid的vlan共享著mac地址信息,使得個別的端口可以和其它vlan的端口互相通信(即我們常做的vlan端口隔離的上行口,可以和其它端口通信)
4、每個vlan都有一個fid屬性,缺 省情況下,vlan的fid和它的vid相同
5、在2826E等提供fid設(shè)置的交換機下,通過fid的靈活設(shè)置,真正意義上做到了vlan的端口隔離,有效避免了在交換機端口的廣播
6、Fid在上面的例子中,可以不等于100,經(jīng)實驗等于110或其它值也是可以的
到此, 我查閱了資料和通過實驗對FID的概念和作用進(jìn)行了一些研究,可能帶有個人觀點,不當(dāng)之處請各位指出。
愛華網(wǎng)


