欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種在交換機(jī)上實(shí)現(xiàn)虛擬設(shè)備的方法和裝置制造方法

文檔序號(hào):7983499閱讀:165來(lái)源:國(guó)知局
一種在交換機(jī)上實(shí)現(xiàn)虛擬設(shè)備的方法和裝置制造方法
【專利摘要】本發(fā)明公開(kāi)了一種在交換機(jī)上實(shí)現(xiàn)虛擬設(shè)備的方法和裝置,方案為:為交換機(jī)中各VD的每個(gè)轉(zhuǎn)發(fā)芯片配置二層隔離表;當(dāng)在轉(zhuǎn)發(fā)芯片的外部端口接收到的報(bào)文并從轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文時(shí),在報(bào)文中攜帶源端口;當(dāng)在轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到報(bào)文時(shí),根據(jù)報(bào)文的源端口以及為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于該轉(zhuǎn)發(fā)芯片所在VD,根據(jù)判斷結(jié)果確定對(duì)報(bào)文的出端口進(jìn)行過(guò)濾或不過(guò)濾,使報(bào)文只能從同VD進(jìn)出。本發(fā)明能夠滿足交換機(jī)對(duì)VD間的流量隔離的需求,擴(kuò)展了交換機(jī)的應(yīng)用場(chǎng)景。
【專利說(shuō)明】一種在交換機(jī)上實(shí)現(xiàn)虛擬設(shè)備的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及通信【技術(shù)領(lǐng)域】,特別涉及一種在交換機(jī)上實(shí)現(xiàn)虛擬設(shè)備(VirtualDevice, VD)的方法和裝置。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)設(shè)備虛擬化可以把一臺(tái)大的物理設(shè)備虛擬成多臺(tái)小設(shè)備,也即虛擬設(shè)備。各VD對(duì)于用戶來(lái)說(shuō)就像一臺(tái)獨(dú)立的小設(shè)備,有自己獨(dú)立運(yùn)行的路由進(jìn)程、二三層協(xié)議、轉(zhuǎn)發(fā)表項(xiàng)、接口、可以添加自己的用戶、可以獨(dú)自重啟并讀取自己的配置文件。各VD間的資源可以通過(guò)命令來(lái)進(jìn)行分配管理,互不影響,當(dāng)VD占用的資源超過(guò)分配的資源限制時(shí),將不能搶占其他的VD資源。
[0003]設(shè)備支持VD功能后,整臺(tái)物理設(shè)備就是一個(gè)VD,稱為缺省VD,當(dāng)用戶登錄物理設(shè)備時(shí),實(shí)際登錄的就是缺省VD。用戶在物理設(shè)備上的配置實(shí)質(zhì)就是對(duì)缺省VD的配置。缺省VD的編號(hào)為1,不需要?jiǎng)?chuàng)建,不能被刪除。與缺省VD相對(duì)應(yīng)的是非缺省VD,即在該物理設(shè)備上新創(chuàng)建的VD。
[0004]產(chǎn)品要支持VD特性,需要在同一塊單板上同時(shí)下發(fā)多個(gè)VD的配置,并同時(shí)生效;具體的,從不同端口進(jìn)入的報(bào)文,根據(jù)端口所在VD,去匹配該VD的配置和轉(zhuǎn)發(fā)表項(xiàng)進(jìn)行處理。對(duì)于路由器產(chǎn)品,一般通過(guò)CPU、NP等實(shí)現(xiàn)報(bào)文轉(zhuǎn)發(fā),可以通過(guò)軟件方式靈活設(shè)置,各VD的不同配置可以在同一塊單板上共存,不會(huì)有沖突。而絕大多數(shù)的交換機(jī)由于受芯片制約,不同VD的配置可能是沖突的,例如L2_entry, Fib等,不能做到?jīng)_突的表項(xiàng)同時(shí)下發(fā)、分別匹配。
[0005]為了解決不同VD的配置沖突問(wèn)題,交換機(jī)通常按照芯片來(lái)劃分VD端口,規(guī)定同一芯片的所有外部端口只屬于一個(gè)VD,這個(gè)VD成為有效VD時(shí),在此芯片上只下發(fā)和這個(gè)VD相關(guān)的配置和轉(zhuǎn)發(fā)表項(xiàng),可以解決不同VD之間可能的配置沖突問(wèn)題。此外,要實(shí)現(xiàn)按芯片劃分VD端口,還需要解決VD間流量隔離、板間通信、Mac地址學(xué)習(xí)等諸多問(wèn)題。

【發(fā)明內(nèi)容】

[0006]為了達(dá)到上述目的,本發(fā)明的目的在于提供一種在交換機(jī)上實(shí)現(xiàn)虛擬設(shè)備的方法,該方法能夠解決交換機(jī)對(duì)VD特性的需求,擴(kuò)展了交換機(jī)的應(yīng)用場(chǎng)景。
[0007]為了達(dá)到上述目的,本發(fā)明提供了一種在交換機(jī)上實(shí)現(xiàn)虛擬設(shè)備的方法,所述交換機(jī)以轉(zhuǎn)發(fā)芯片為加入和退出VD的最小單元,并建立有轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系;該方法包括:
[0008]根據(jù)轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為當(dāng)前VD中每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非當(dāng)前VD的報(bào)文的二層隔離表;
[0009]當(dāng)前VD在自身的任一轉(zhuǎn)發(fā)芯片的外部端口接收到報(bào)文時(shí),確定報(bào)文的出端口,對(duì)屬于該轉(zhuǎn)發(fā)芯片的外部端口的每個(gè)出端口,從該出端口轉(zhuǎn)發(fā)報(bào)文;對(duì)不屬于該轉(zhuǎn)發(fā)芯片的外部端口的每個(gè)出端口,將接收?qǐng)?bào)文的端口作為報(bào)文的源端口攜帶在報(bào)文中并通過(guò)該轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文;
[0010]當(dāng)前VD在自身的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到攜帶源端口的報(bào)文時(shí),確定報(bào)文的出端口,根據(jù)報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于當(dāng)前VD,如果是,則從確定的出端口轉(zhuǎn)發(fā)報(bào)文,否則,濾除報(bào)文的出端口中屬于該轉(zhuǎn)發(fā)芯片的外部端口,從濾除后剩下的出端口轉(zhuǎn)發(fā)報(bào)文。
[0011]本發(fā)明還提供了一種虛擬設(shè)備VD,應(yīng)用于交換機(jī),所述交換機(jī)以轉(zhuǎn)發(fā)芯片為加入和退出VD的最小單元,并建立有轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系;該VD包括:配置單元、接收單元、處理單元、發(fā)送單元;
[0012]所述配置單元,用于根據(jù)所述交換機(jī)建立的轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為本VD中每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非本VD的報(bào)文的二層隔離表;
[0013]所述接收單元,用于在本VD的任一轉(zhuǎn)發(fā)芯片的外部端口接收?qǐng)?bào)文;用于在本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收攜帶源端口的報(bào)文;
[0014]所述處理單元,用于接收單元在本VD的任一轉(zhuǎn)發(fā)芯片的外部端口接收到報(bào)文時(shí),確定報(bào)文的出端口,對(duì)屬于該轉(zhuǎn)發(fā)芯片的外部端口的每個(gè)出端口,通知發(fā)送單元從該出端口轉(zhuǎn)發(fā)報(bào)文;對(duì)不屬于該轉(zhuǎn)發(fā)芯片的外部端口的每個(gè)出端口,通知發(fā)送單元將接收?qǐng)?bào)文的端口作為報(bào)文的源端口攜帶在報(bào)文中并通過(guò)該轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文;用于接收單元本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到攜帶源端口的報(bào)文時(shí),確定報(bào)文的出端口,根據(jù)報(bào)文的源端口和配置單元為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于本VD,如果是,則通知發(fā)送單元從確定的出端口轉(zhuǎn)發(fā)報(bào)文,否則,濾除報(bào)文的出端口中屬于該轉(zhuǎn)發(fā)芯片的外部端口,并通知發(fā)送單元從濾除后剩下的出端口轉(zhuǎn)發(fā)報(bào)文。
[0015]由上面的技術(shù)方案可知,本發(fā)明通過(guò)為交換機(jī)中各VD的每個(gè)轉(zhuǎn)發(fā)芯片配置二層隔離表并根據(jù)接收?qǐng)?bào)文的端口是轉(zhuǎn)發(fā)芯片的內(nèi)部端口或外部端口而對(duì)報(bào)文執(zhí)行不同處理流程:當(dāng)在轉(zhuǎn)發(fā)芯片的外部端口接收到的報(bào)文并從轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文時(shí),在報(bào)文中攜帶源端口 ;當(dāng)在轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到報(bào)文時(shí),根據(jù)報(bào)文的源端口以及為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于該轉(zhuǎn)發(fā)芯片所在VD,根據(jù)判斷結(jié)果確定對(duì)報(bào)文的出端口進(jìn)行過(guò)濾或不過(guò)濾,并據(jù)此執(zhí)行報(bào)文轉(zhuǎn)發(fā),使報(bào)文只能從同VD進(jìn)出。本發(fā)明能夠滿足交換機(jī)對(duì)VD間的流量隔離的需求,擴(kuò)展了交換機(jī)的應(yīng)用場(chǎng)景。
【專利附圖】

【附圖說(shuō)明】
[0016]圖1是本發(fā)明實(shí)施例在交換機(jī)中實(shí)現(xiàn)VD的廣播報(bào)文處理流程示意圖;
[0017]圖2是本發(fā)明實(shí)施例在交換機(jī)中實(shí)現(xiàn)VD的已知單播報(bào)文處理流程示意圖;
[0018]圖3是本發(fā)明實(shí)施例在交換機(jī)中實(shí)現(xiàn)VD的已知組播報(bào)文處理流程示意圖;
[0019]圖4是本發(fā)明實(shí)施例提供的虛擬設(shè)備的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0020]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,下面結(jié)合附圖并舉實(shí)施例,對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。
[0021]本發(fā)明中,為了便于描述,將轉(zhuǎn)發(fā)芯片上的用于連接該轉(zhuǎn)發(fā)芯片所在交換機(jī)以外的網(wǎng)絡(luò)設(shè)備的端口稱為轉(zhuǎn)發(fā)芯片的外部端口 ;將轉(zhuǎn)發(fā)芯片上用于連接該轉(zhuǎn)發(fā)芯片所在的交換機(jī)中的其它轉(zhuǎn)發(fā)芯片的端口稱為轉(zhuǎn)發(fā)芯片的內(nèi)部端口 ;將轉(zhuǎn)發(fā)芯片上的用于連接該轉(zhuǎn)發(fā)芯片所在單板上的CPU的端口稱為CPU端口。
[0022]為了在交換機(jī)中實(shí)現(xiàn)VD,本發(fā)明按照轉(zhuǎn)發(fā)芯片來(lái)劃分VD,在交換機(jī)中以轉(zhuǎn)發(fā)芯片為加入和退出VD的最小單元,并建立轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系;根據(jù)轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為各VD的每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非該VD的報(bào)文的二層隔離表;VD在自身的任一轉(zhuǎn)發(fā)芯片的外部端口接收到報(bào)文時(shí),如果需要轉(zhuǎn)發(fā)報(bào)文到其它轉(zhuǎn)發(fā)芯片,則將接收?qǐng)?bào)文的端口作為報(bào)文的源端口攜帶在報(bào)文中并通過(guò)該轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā),通過(guò)報(bào)文的源端口標(biāo)識(shí)報(bào)文所屬VD ;VD在自身的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到攜帶源端口的報(bào)文時(shí),根據(jù)報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于該VD,當(dāng)報(bào)文不屬于該VD時(shí),不允許報(bào)文從該轉(zhuǎn)發(fā)芯片的外部端口轉(zhuǎn)發(fā),使得非該VD的報(bào)文不會(huì)從該VD的任一轉(zhuǎn)發(fā)芯片的外部端口轉(zhuǎn)發(fā)出去,能夠?qū)崿F(xiàn)VD間的二層流量隔離。
[0023]上述根據(jù)轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為各VD的每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非該VD的報(bào)文的二層隔離表的方法有以下兩種:
[0024]第一種:將不屬于該VD的所有轉(zhuǎn)發(fā)芯片的外部端口添加到為該轉(zhuǎn)發(fā)芯片的外部端口配置的二層隔離表。這種情況下,根據(jù)報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于該VD的方法為:如果報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的外部端口,則可以確定報(bào)文不屬于該VD,否則,確定報(bào)文屬于該VD。
[0025]第二種:將屬于該VD的所有轉(zhuǎn)發(fā)芯片的外部端口添加到為該轉(zhuǎn)發(fā)芯片的外部端口配置的二層隔離表。這種情況下,根據(jù)報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于該VD的方法為:如果報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的外部端口,則確定報(bào)文屬于該VD,否則,確定報(bào)文不屬于該VD。
[0026]上述報(bào)文包括廣播報(bào)文、單播報(bào)文(包括已知單播報(bào)文和未知單播報(bào)文),組播報(bào)文(包括已知組播報(bào)文和未知單播報(bào)文),報(bào)文不同,VD的處理流程也不相同,下面結(jié)合圖1、圖2和圖3分別進(jìn)行說(shuō)明。
[0027]首先對(duì)廣播報(bào)文的處理流程進(jìn)行說(shuō)明:
[0028]為了在交換機(jī)中實(shí)現(xiàn)VD,需要對(duì)VD間的廣播報(bào)文進(jìn)行二層隔離。為此,需要為各VD的每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非該轉(zhuǎn)發(fā)芯片所在VD的報(bào)文的二層隔離表,為各VD的每個(gè)轉(zhuǎn)發(fā)芯片配置二層隔離表的方法可以是上述兩種配置方法的任意一種。另外,由于同一VD可以包括多個(gè)轉(zhuǎn)發(fā)芯片,從其中一個(gè)轉(zhuǎn)發(fā)芯片的外部端口進(jìn)入VD的廣播報(bào)文,需要從該VD的所有轉(zhuǎn)發(fā)芯片的外部端口(接收端口除外)轉(zhuǎn)發(fā)出去,這就需要跨轉(zhuǎn)發(fā)芯片轉(zhuǎn)發(fā)廣播報(bào)文,為了能夠跨轉(zhuǎn)發(fā)芯片轉(zhuǎn)發(fā)廣播報(bào)文,需要將交換機(jī)中各轉(zhuǎn)發(fā)芯片的內(nèi)部端口加入交換機(jī)中所有VD的VLAN中,使得各轉(zhuǎn)發(fā)芯片的內(nèi)部端口能夠允許所有廣播報(bào)文通過(guò)。上述設(shè)置可以實(shí)現(xiàn)廣播報(bào)文在VD之間的二層隔離。
[0029]參見(jiàn)圖1,圖1是本發(fā)明實(shí)施例在交換機(jī)中實(shí)現(xiàn)VD的廣播報(bào)文處理流程示意圖,包括以下步驟:
[0030]步驟101、VD在自身的任一轉(zhuǎn)發(fā)芯片接收廣播報(bào)文。
[0031]步驟102、判斷接收廣播報(bào)文的端口,如果接收廣播報(bào)文的端口是該轉(zhuǎn)發(fā)芯片的外部端口,則執(zhí)行步驟103 ;如果接收廣播報(bào)文的端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則執(zhí)行步驟104。[0032]步驟103、接收廣播報(bào)文的端口是該轉(zhuǎn)發(fā)芯片的外部端口,查找VLAN廣播表確定報(bào)文的出端口,針對(duì)每個(gè)出端口,如果該出端口是該轉(zhuǎn)發(fā)芯片的外部端口,則從該出端口轉(zhuǎn)發(fā)廣播報(bào)文,如果該出端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則將接收廣播報(bào)文的外部端口作為廣播報(bào)文的源端口攜帶在廣播報(bào)文中并從該出端口轉(zhuǎn)發(fā)廣播報(bào)文。
[0033]在轉(zhuǎn)發(fā)芯片的外部端口接收到的廣播報(bào)文的出端口包括該轉(zhuǎn)發(fā)芯片中加入廣播報(bào)文所屬VLAN的所有端口(接收端口除外),可以是該轉(zhuǎn)發(fā)芯片的外部端口和/或內(nèi)部端口。由于該轉(zhuǎn)發(fā)芯片的內(nèi)部端口加入了交換機(jī)中所有VD的VLAN中,轉(zhuǎn)發(fā)芯片的所有內(nèi)部端口均是廣播報(bào)文的出端口 ;另外,該轉(zhuǎn)發(fā)芯片上加入到廣播報(bào)文所屬VLAN的所有外部端口也是廣播報(bào)文的出端口。
[0034]對(duì)于廣播報(bào)文的屬于該轉(zhuǎn)發(fā)芯片的外部端口的每個(gè)出端口,只需從該出端口轉(zhuǎn)發(fā)廣播報(bào)文。對(duì)于廣播報(bào)文的屬于該轉(zhuǎn)發(fā)芯片的內(nèi)部端口的每個(gè)出端口,則需要將接收廣播報(bào)文的外部端口作為廣播報(bào)文的源端口以標(biāo)識(shí)廣播報(bào)文所屬VD,并從該內(nèi)部端口轉(zhuǎn)發(fā)廣播報(bào)文,使得連接到該內(nèi)部端口上的鄰居轉(zhuǎn)發(fā)芯片可以接收和轉(zhuǎn)發(fā)該廣播報(bào)文。
[0035]步驟104、接收廣播報(bào)文的端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,查找VLAN廣播表確定廣播報(bào)文的出端口,根據(jù)廣播報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播報(bào)文是否屬于該轉(zhuǎn)發(fā)芯片所屬VD,如果是,則從每個(gè)出端口轉(zhuǎn)發(fā)廣播報(bào)文,否則,將所有出端口中屬于該轉(zhuǎn)發(fā)芯片的外部端口濾除,從濾除后剩下的每個(gè)出端口轉(zhuǎn)發(fā)廣播報(bào)文。
[0036]在轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到的廣播報(bào)文的出端口包括該轉(zhuǎn)發(fā)芯片中加入廣播報(bào)文所述VLAN的所有端口(接收端口除外),可以是該轉(zhuǎn)發(fā)芯片的外部端口和/或內(nèi)部端口。由于該轉(zhuǎn)發(fā)芯片的內(nèi)部端口加入了交換機(jī)中所有VD的VLAN中,轉(zhuǎn)發(fā)芯片的所有內(nèi)部端口均是廣播報(bào)文的出端口 ;另外,該轉(zhuǎn)發(fā)芯片上加入到廣播報(bào)文所屬VLAN的所有外部端口也是廣播報(bào)文的出端口。
[0037]在轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到的廣播報(bào)文攜帶有源端口。當(dāng)根據(jù)廣播報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播報(bào)文屬于該轉(zhuǎn)發(fā)芯片所屬VD時(shí),允許從該轉(zhuǎn)發(fā)芯片的外部端口轉(zhuǎn)發(fā)廣播報(bào)文,因此不需要對(duì)廣播報(bào)文的出端口進(jìn)行過(guò)濾,從所有出端口轉(zhuǎn)發(fā)廣播報(bào)文即可。當(dāng)根據(jù)廣播報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播報(bào)文不屬于該轉(zhuǎn)發(fā)芯片所屬VD時(shí),不允許從該轉(zhuǎn)發(fā)芯片的外部端口轉(zhuǎn)發(fā)廣播報(bào)文,因此需要將廣播報(bào)文的所有出端口屬于該轉(zhuǎn)發(fā)芯片的外部端口濾除,從濾除后剩下的所有出端口轉(zhuǎn)發(fā)廣播報(bào)文。
[0038]從圖1所示本發(fā)明實(shí)施例中可以看出,VD在自身的轉(zhuǎn)發(fā)芯片的外部端口接收到廣播報(bào)文時(shí),將接收廣播報(bào)文的外部端口作為廣播報(bào)文的源端口來(lái)標(biāo)識(shí)廣播報(bào)文所屬VD,使得其他轉(zhuǎn)發(fā)芯片接收到該廣播報(bào)文時(shí),能夠根據(jù)廣播報(bào)文的源端口和為所述其他轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播報(bào)文是否屬于所述其他轉(zhuǎn)發(fā)芯片所屬VD,進(jìn)而根據(jù)判斷結(jié)果選擇過(guò)濾所述其他轉(zhuǎn)發(fā)芯片的外部端口或不過(guò)濾所述其他轉(zhuǎn)發(fā)芯片的外部端口,以使報(bào)文從同VD進(jìn)出,實(shí)現(xiàn)VD間廣播報(bào)文的二層隔離。需要說(shuō)明的是,VD對(duì)未知單播報(bào)文、未知組播報(bào)文的處理流程與對(duì)廣播報(bào)文的處理流程相同,可以實(shí)現(xiàn)VD間未知單播報(bào)文和未知組播報(bào)文的二層隔離,不再贅述。
[0039]在實(shí)際應(yīng)用中,當(dāng)VD在自身的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到報(bào)文(包括廣播報(bào)文、未知單播報(bào)文和未知組播報(bào)文)時(shí),還需要對(duì)報(bào)文進(jìn)行MAC地址學(xué)習(xí)。VD在自身的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到的報(bào)文,根據(jù)報(bào)文所屬VD分為兩種情況:
[0040]一,報(bào)文屬于該轉(zhuǎn)發(fā)芯片所在VD。這種情況下,需要對(duì)報(bào)文進(jìn)行MAC地址學(xué)習(xí),學(xué)習(xí)報(bào)文的源MAC地址到報(bào)文的源端口,生成源MAC地址對(duì)應(yīng)的MAC表項(xiàng),以指導(dǎo)后續(xù)接收到的目的MAC地址該源MAC地址的單播報(bào)文的轉(zhuǎn)發(fā)。
[0041]二,報(bào)文不屬于該轉(zhuǎn)發(fā)芯片所述VD。這種情況下,需要禁止對(duì)報(bào)文進(jìn)行MAC地址學(xué)習(xí),以避免不同VD的MAC表項(xiàng)沖突和減少各VD生成的MAC表項(xiàng)個(gè)數(shù)。
[0042]其次,對(duì)已知單播報(bào)文的處理流程進(jìn)行說(shuō)明:
[0043]為了在交換機(jī)中實(shí)現(xiàn)VD,需要對(duì)VD間的已知單播報(bào)文進(jìn)行二層隔離。為此,需要為各VD的每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非該轉(zhuǎn)發(fā)芯片所在VD的報(bào)文的二層隔離表,為各VD的每個(gè)轉(zhuǎn)發(fā)芯片配置二層隔離表的方法可以是上述兩種配置方法的任意一種。另外,由于同一 VD可以包括多個(gè)轉(zhuǎn)發(fā)芯片,從其中一個(gè)轉(zhuǎn)發(fā)芯片的外部端口進(jìn)入VD的已知單播報(bào)文,可能需要從該VD的另一轉(zhuǎn)發(fā)芯片的外部端口轉(zhuǎn)發(fā)出去,這就需要跨轉(zhuǎn)發(fā)芯片轉(zhuǎn)發(fā)已知單播報(bào)文,為了能夠跨轉(zhuǎn)發(fā)芯片轉(zhuǎn)發(fā)已知單播報(bào)文,需要將交換機(jī)中各轉(zhuǎn)發(fā)芯片的內(nèi)部端口加入交換機(jī)中所有VD的VLAN中,使得各轉(zhuǎn)發(fā)芯片的內(nèi)部端口能夠允許所有已知單播報(bào)文通過(guò)。上述設(shè)置可以實(shí)現(xiàn)已知單播報(bào)文在VD之間的二層隔離。
[0044]參見(jiàn)圖2,圖2是本發(fā)明實(shí)施例在交換機(jī)中實(shí)現(xiàn)VD的已知單播報(bào)文處理流程示意圖,包括以下步驟:
[0045]步驟201、VD在自身的任一轉(zhuǎn)發(fā)芯片接收已知單播報(bào)文。
[0046]步驟202、判斷接收已知單播報(bào)文的端口,如果接收已知單播報(bào)文的端口是該轉(zhuǎn)發(fā)芯片的外部端口,則執(zhí)行步驟203 ;如果接收?qǐng)?bào)文的端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則執(zhí)行步驟204。
[0047]步驟203、接收已知單播報(bào)文的端口是該轉(zhuǎn)發(fā)芯片的外部端口,查找MAC轉(zhuǎn)發(fā)表確定報(bào)文的出端口,如果該出端口是該轉(zhuǎn)發(fā)芯片的外部端口,則從該出端口轉(zhuǎn)發(fā)已知單播報(bào)文,如果該出端口是其它轉(zhuǎn)發(fā)芯片的外部端口,則將接收已知單播報(bào)文的外部端口、查找得到的出端口以及該出端口所在的轉(zhuǎn)發(fā)芯片分別作為已知單播報(bào)文的源端口、目的出端口、目的轉(zhuǎn)發(fā)芯片攜帶在已知單播報(bào)文中并通過(guò)該轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā)已知單播報(bào)文。
[0048]在轉(zhuǎn)發(fā)芯片的外部端口接收到的已知單播報(bào)文的出端口可以是該轉(zhuǎn)發(fā)芯片的其他外部端口或同VD的其它轉(zhuǎn)發(fā)芯片的外部端口,可以通過(guò)查找MAC轉(zhuǎn)發(fā)表確定。當(dāng)已知單播報(bào)文的出端口是該轉(zhuǎn)發(fā)芯片的外部端口時(shí),可以從該出端口轉(zhuǎn)發(fā)已知單播報(bào)文。當(dāng)已知單播報(bào)文的出端口是其他轉(zhuǎn)發(fā)芯片的外部端口時(shí),需要將已知單播報(bào)文的外部端口作為已知單播報(bào)文的源端口攜帶在已知單播報(bào)文中,另外,還需要將已知單播報(bào)文的出端口、已知單播報(bào)文的出端口所在轉(zhuǎn)發(fā)芯片分別作為已知單播報(bào)文的目的出端口、目的轉(zhuǎn)發(fā)芯片攜帶在已知單播報(bào)文中,然后通過(guò)該轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā)已知單播報(bào)文。
[0049]在實(shí)際應(yīng)用中,轉(zhuǎn)發(fā)芯片中存儲(chǔ)有芯片轉(zhuǎn)發(fā)映射表,其中包括多個(gè)芯片轉(zhuǎn)發(fā)映射表項(xiàng),芯片轉(zhuǎn)發(fā)映射表項(xiàng)中包括目的轉(zhuǎn)發(fā)芯片信息和內(nèi)部端口信息,表示轉(zhuǎn)發(fā)芯片需要將報(bào)文轉(zhuǎn)發(fā)到目的轉(zhuǎn)發(fā)芯片時(shí),需要從轉(zhuǎn)發(fā)芯片的哪個(gè)內(nèi)部端口轉(zhuǎn)發(fā)出去。
[0050]本步驟中,當(dāng)確定已知單播報(bào)文的出端口是其它轉(zhuǎn)發(fā)芯片的外部端口時(shí),需要將報(bào)文轉(zhuǎn)發(fā)所述其它轉(zhuǎn)發(fā)芯片,這就需要通過(guò)查找轉(zhuǎn)發(fā)芯片映射表來(lái)確定所述其它轉(zhuǎn)發(fā)芯片對(duì)應(yīng)的內(nèi)部端口,從而將已知單播報(bào)文從該內(nèi)部端口轉(zhuǎn)發(fā)出去,連接到該內(nèi)部端口鄰居轉(zhuǎn)發(fā)芯片接收到該已知單播報(bào)文后,可以根據(jù)已知單播報(bào)文中攜帶的源端口、目的出端口和目的轉(zhuǎn)發(fā)芯片,執(zhí)行確定已知單播報(bào)文的出端口、判斷已知單播報(bào)文所屬VD以及轉(zhuǎn)發(fā)已知單播報(bào)文等操作。
[0051]步驟204、接收已知單播報(bào)文的端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,確定已知單播報(bào)文的出端口為已知單播報(bào)文的目的出端口,根據(jù)已知單播報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷已知單播報(bào)文是否屬于該轉(zhuǎn)發(fā)芯片所屬VD,如果是,則從該出端口轉(zhuǎn)發(fā)已知單播報(bào)文,否則,濾除已知單播報(bào)文的出端口中屬于該轉(zhuǎn)發(fā)芯片的外部端口,若已知單播報(bào)文的出端口未被濾除,則通過(guò)該轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā)已知單播報(bào)文。
[0052]這里,通過(guò)該轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā)已知單播報(bào)文的方法與步驟203中的轉(zhuǎn)發(fā)方法相同,均是查找轉(zhuǎn)發(fā)芯片映射表來(lái)確定已知單播報(bào)文的目的轉(zhuǎn)發(fā)芯片對(duì)應(yīng)的內(nèi)部端口,然后從該內(nèi)部端口轉(zhuǎn)發(fā)已知單播報(bào)文。
[0053]在轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到的已知單播報(bào)文攜帶有源端口、目的出端口、目的轉(zhuǎn)發(fā)芯片,其中,已知單播報(bào)文攜帶的目的出端口即為已知單播報(bào)文的出端口。當(dāng)在轉(zhuǎn)發(fā)芯片接收到的已知單播報(bào)文屬于該轉(zhuǎn)發(fā)芯片所屬VD時(shí),允許從該轉(zhuǎn)發(fā)芯片的外部端口轉(zhuǎn)發(fā)已知單播報(bào)文,因此不需要對(duì)已知單播報(bào)文的出端口進(jìn)行過(guò)濾,從已知單播報(bào)文的出端口轉(zhuǎn)發(fā)已知單播報(bào)文即可。當(dāng)在轉(zhuǎn)發(fā)芯片接收到的已知單播報(bào)文不屬于該轉(zhuǎn)發(fā)芯片所屬VD時(shí),不允許從該轉(zhuǎn)發(fā)芯片的外部端口轉(zhuǎn)發(fā)已知單播報(bào)文,需要將已知單播報(bào)文的出端口進(jìn)行過(guò)濾,如果已知單播報(bào)文的出端口是該轉(zhuǎn)發(fā)芯片的外部端口,則會(huì)被過(guò)濾掉,否則,不會(huì)被過(guò)濾掉。
[0054]從圖2所示本發(fā)明實(shí)施例中可以看出,VD在自身的轉(zhuǎn)發(fā)芯片的外部端口接收到已知單播報(bào)文且已知單播報(bào)文的出端口是其它轉(zhuǎn)發(fā)芯片的外部端口時(shí),將接收已知單播報(bào)文的外部端口、已知單播報(bào)文的出端口、已知單播報(bào)文的出端口所在轉(zhuǎn)發(fā)芯片分別作為已知單播報(bào)文的源端口、目的出端口、目的轉(zhuǎn)發(fā)芯片攜帶在報(bào)文中轉(zhuǎn)發(fā),使得接收到該已知單播報(bào)文的轉(zhuǎn)發(fā)芯片能夠根據(jù)已知單播報(bào)文中攜帶的源端口、目的出端口和目的轉(zhuǎn)發(fā)芯片,執(zhí)行確定已知單播報(bào)文的出端口、判斷已知單播報(bào)文所屬VD以及轉(zhuǎn)發(fā)已知單播報(bào)文等操作,實(shí)現(xiàn)VD間的已知單播報(bào)文的二層隔離。
[0055]另夕卜,VD在自身的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到已知單播報(bào)文時(shí),如果已知單播報(bào)文屬于該轉(zhuǎn)發(fā)芯片所在VD,則還需要對(duì)已知單播報(bào)文進(jìn)行MAC地址學(xué)習(xí),刷新相應(yīng)的MAC表項(xiàng),如果已知單播報(bào)文不屬于該轉(zhuǎn)發(fā)芯片所在VD,則還需要禁止對(duì)已知單播報(bào)文進(jìn)行MAC地址學(xué)習(xí)。
[0056]最后,對(duì)已知組播報(bào)文的處理流程進(jìn)行說(shuō)明:
[0057]為了在交換機(jī)中實(shí)現(xiàn)VD,需要對(duì)VD間的已知組播報(bào)文進(jìn)行二層隔離。為此,需要為各VD的每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非該轉(zhuǎn)發(fā)芯片所在VD的報(bào)文的二層隔離表,為各VD的每個(gè)轉(zhuǎn)發(fā)芯片配置二層隔離表的方法可以是上述兩種配置方法的任意一種。另外,由于同一 VD可以包括多個(gè)轉(zhuǎn)發(fā)芯片,從其中一個(gè)轉(zhuǎn)發(fā)芯片的外部端口進(jìn)入VD的已知組播報(bào)文,需要從該VD的所有轉(zhuǎn)發(fā)芯片的外部端口中已加入到該已知組播報(bào)文所屬組播組的所有端口(接收端口除外)轉(zhuǎn)發(fā)出去,這就需要跨轉(zhuǎn)發(fā)芯片轉(zhuǎn)發(fā)已知組播報(bào)文,為了能夠跨轉(zhuǎn)發(fā)芯片轉(zhuǎn)發(fā)已知組播報(bào)文,需要將交換機(jī)中各轉(zhuǎn)發(fā)芯片的內(nèi)部端口加入到所有組播組對(duì)應(yīng)的組播表項(xiàng)的出端口列表中,使得各轉(zhuǎn)發(fā)芯片的內(nèi)部端口能夠允許所有已知組播報(bào)文通過(guò)。上述設(shè)置可以實(shí)現(xiàn)已知組播報(bào)文在VD之間的二層隔離。
[0058]參見(jiàn)圖3,圖3是本發(fā)明實(shí)施例在交換機(jī)中實(shí)現(xiàn)VD的已知組播報(bào)文處理流程示意圖,包括以下步驟:
[0059]步驟301、VD在自身的任一轉(zhuǎn)發(fā)芯片接收已知組播報(bào)文。
[0060]步驟302、判斷接收已知組播報(bào)文的端口,如果接收已知組播報(bào)文的端口是該轉(zhuǎn)發(fā)芯片的外部端口,則執(zhí)行步驟303 ;如果接收已知組播報(bào)文的端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則執(zhí)行步驟304。
[0061]步驟303、接收已知組播報(bào)文的端口是該轉(zhuǎn)發(fā)芯片的外部端口,查找已知組播報(bào)文所述組播組對(duì)應(yīng)的組播表項(xiàng)的出接口列表確定報(bào)文的出端口,針對(duì)每個(gè)出端口,如果該出端口是該轉(zhuǎn)發(fā)芯片的外部端口,則從該出端口轉(zhuǎn)發(fā)已知組播報(bào)文,如果該出端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則將接收已知組播報(bào)文的外部端口作為已知組播報(bào)文的源端口攜帶在已知組播報(bào)文中并從該出端口轉(zhuǎn)發(fā)已知組播報(bào)文。
[0062]在轉(zhuǎn)發(fā)芯片的外部端口接收到的已知組播報(bào)文的出端口包括該轉(zhuǎn)發(fā)芯片中加入已知組播報(bào)文所屬組播組的所有端口(接收端口除外),可以是該轉(zhuǎn)發(fā)芯片的外部端口和/或內(nèi)部端口。由于該轉(zhuǎn)發(fā)芯片的內(nèi)部端口已加入到所有組播組對(duì)應(yīng)的組播表項(xiàng)的出接口列表中,因此,轉(zhuǎn)發(fā)芯片的所有內(nèi)部端口均是已知組播報(bào)文的出端口 ;另外,該轉(zhuǎn)發(fā)芯片上加入到已知組播報(bào)文所屬組播組對(duì)應(yīng)的組播表項(xiàng)的出接口列表的所有外部端口也是已知組播報(bào)文的出端口。
[0063]對(duì)于已知組播報(bào)文的屬于該轉(zhuǎn)發(fā)芯片的外部端口的每個(gè)出端口,只需從該出端口轉(zhuǎn)發(fā)已知組播報(bào)文。對(duì)于已知組播報(bào)文的屬于該轉(zhuǎn)發(fā)芯片的內(nèi)部端口的每個(gè)出端口,則需要將接收已知組播報(bào)文的外部端口作為已知組播報(bào)文的源端口以標(biāo)識(shí)已知組播報(bào)文所屬VD,并從該內(nèi)部端口轉(zhuǎn)發(fā)已知組播報(bào)文,使得連接到該內(nèi)部端口上的鄰居轉(zhuǎn)發(fā)芯片可以接收和轉(zhuǎn)發(fā)該已知組播報(bào)文。
[0064]步驟304、接收已知組播報(bào)文的端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,查找已知組播報(bào)文所述組播組對(duì)應(yīng)的組播表項(xiàng)的出接口列表確定報(bào)文的所有出端口,根據(jù)已知組播報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷已知組播報(bào)文是否屬于該轉(zhuǎn)發(fā)芯片所屬VD,如果是,則從每個(gè)出端口轉(zhuǎn)發(fā)已知組播報(bào)文,否則,將所有出端口中屬于該轉(zhuǎn)發(fā)芯片的外部端口濾除,從濾除后剩下的每個(gè)出端口轉(zhuǎn)發(fā)已知組播報(bào)文。
[0065]在轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到的已知組播報(bào)文的出端口包括該轉(zhuǎn)發(fā)芯片中加入已知組播報(bào)文所屬組播組的所有端口(接收端口除外),可以是該轉(zhuǎn)發(fā)芯片的外部端口和/或內(nèi)部端口。由于該轉(zhuǎn)發(fā)芯片的內(nèi)部端口已加入到所有組播組對(duì)應(yīng)的組播表項(xiàng)的出接口列表中,因此,轉(zhuǎn)發(fā)芯片的所有內(nèi)部端口均是已知組播報(bào)文的出端口 ;另外,該轉(zhuǎn)發(fā)芯片上加入到已知組播報(bào)文所屬組播組對(duì)應(yīng)的組播表項(xiàng)的出接口列表的所有外部端口也是已知組播報(bào)文的出端口。
[0066]在轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到的已知組播報(bào)文攜帶有源端口。當(dāng)根據(jù)已知組播報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷已知組播報(bào)文屬于該轉(zhuǎn)發(fā)芯片所屬VD時(shí),允許從該轉(zhuǎn)發(fā)芯片的外部端口轉(zhuǎn)發(fā)已知組播報(bào)文,因此不需要對(duì)已知組播報(bào)文的出端口進(jìn)行過(guò)濾,從所有出端口轉(zhuǎn)發(fā)已知組播報(bào)文即可。當(dāng)根據(jù)已知組播報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷已知組播報(bào)文不屬于該轉(zhuǎn)發(fā)芯片所屬VD時(shí),不允許從該轉(zhuǎn)發(fā)芯片的外部端口轉(zhuǎn)發(fā)已知組播報(bào)文,因此需要將已知組播報(bào)文的所有出端口屬于該轉(zhuǎn)發(fā)芯片的外部端口濾除,從濾除后剩下的所有出端口轉(zhuǎn)發(fā)已知組播報(bào)文。
[0067]從圖1所示本發(fā)明實(shí)施例中可以看出,VD在自身的轉(zhuǎn)發(fā)芯片的外部端口接收到已知組播報(bào)文并從內(nèi)部端口轉(zhuǎn)發(fā)已知組播報(bào)文時(shí),將接收已知組播報(bào)文的外部端口作為已知組播報(bào)文的源端口來(lái)標(biāo)識(shí)已知組播報(bào)文所屬VD,使得其他轉(zhuǎn)發(fā)芯片接收到該已知組播報(bào)文時(shí),能夠根據(jù)已知組播報(bào)文的源端口和為所述其他轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷已知組播報(bào)文是否屬于所述其他轉(zhuǎn)發(fā)芯片所屬VD,進(jìn)而根據(jù)判斷結(jié)果選擇過(guò)濾所述其他轉(zhuǎn)發(fā)芯片的外部端口或不過(guò)濾所述其他轉(zhuǎn)發(fā)芯片的外部端口,以使已知組播報(bào)文從同VD進(jìn)出,實(shí)現(xiàn)VD間已知組播報(bào)文的二層隔離。
[0068]另外,VD在自身的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到已知組播報(bào)文時(shí),如果已知組播報(bào)文屬于該轉(zhuǎn)發(fā)芯片所在VD,則還需要對(duì)已知組播報(bào)文進(jìn)行MAC地址學(xué)習(xí),刷新相應(yīng)的MAC表項(xiàng),如果已知組播報(bào)文不屬于該轉(zhuǎn)發(fā)芯片所在VD,則還需要禁止對(duì)已知組播報(bào)文進(jìn)行MAC地址學(xué)習(xí)。
[0069]上述圖1、圖2、圖3所示本發(fā)明實(shí)施例對(duì)VD在自身的任一轉(zhuǎn)發(fā)芯片接收到的廣播報(bào)文、已知單播報(bào)文、已知組播報(bào)文的處理流程進(jìn)行了詳細(xì)說(shuō)明。實(shí)際上,VD作為一個(gè)邏輯設(shè)備,也可以主動(dòng)向外發(fā)送廣播協(xié)議報(bào)文,廣播協(xié)議報(bào)文由CPU主動(dòng)生成并發(fā)送的VD的任一轉(zhuǎn)發(fā)芯片的CPU端口,并最終經(jīng)由VD的各轉(zhuǎn)發(fā)芯片的外部端口發(fā)送出去,而不允許從其它VD的轉(zhuǎn)發(fā)芯片的外部端口發(fā)送出去,這就需要對(duì)交換機(jī)中各VD的每個(gè)轉(zhuǎn)發(fā)芯片的CPU端口進(jìn)行二層隔離設(shè)置。
[0070]為了區(qū)分各VD主動(dòng)發(fā)送的廣播協(xié)議報(bào)文,可以預(yù)先為每個(gè)VD分配一個(gè)CPU源端口。如果采用第一種為轉(zhuǎn)發(fā)芯片配置二層隔離表的方法,則在將不屬于該VD的所有轉(zhuǎn)發(fā)芯片的外部端口添加到為該轉(zhuǎn)發(fā)芯片的外部端口配置的二層隔離表時(shí),還同時(shí)將為除該VD外其它每個(gè)VD預(yù)先分配的CPU源端口添加到為該轉(zhuǎn)發(fā)芯片配置的二層隔離表。如果采用第二種為轉(zhuǎn)發(fā)芯片配置二層隔離表的方法,則在將屬于該VD的所有轉(zhuǎn)發(fā)芯片的外部端口添加到為該轉(zhuǎn)發(fā)芯片的外部端口配置的二層隔離表時(shí),還同時(shí)將為該VD預(yù)先分配的CPU源端口添加到為該轉(zhuǎn)發(fā)芯片配置的二層隔離表。
[0071]這樣,當(dāng)VD在自身的任一轉(zhuǎn)發(fā)芯片的CPU端口接收到廣播協(xié)議報(bào)文時(shí),可以查找VLAN廣播表確定報(bào)文的所有出端口,針對(duì)每個(gè)出端口,如果該出端口是該轉(zhuǎn)發(fā)芯片的外部端口,則將廣播協(xié)議報(bào)文從該出端口轉(zhuǎn)發(fā),如果該出端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則將預(yù)先為該VD分配的CPU源端口作為廣播協(xié)議報(bào)文的源端口攜帶在廣播協(xié)議報(bào)文以標(biāo)識(shí)廣播協(xié)議報(bào)文所屬VD,并從該出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文。
[0072]當(dāng)VD在自身的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到攜帶源端口的廣播協(xié)議報(bào)文時(shí),可以查找VLAN廣播表確定廣播協(xié)議報(bào)文的所有出端口,并根據(jù)廣播協(xié)議報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播協(xié)議報(bào)文是否屬于該VD,如果是,則從所有出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文,否則,將所有出端口中屬于該轉(zhuǎn)發(fā)芯片的外部端口過(guò)濾,從過(guò)濾后的所有出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文。
[0073]其中,當(dāng)采用第一種為轉(zhuǎn)發(fā)芯片配置二層隔離表的方法時(shí),根據(jù)廣播協(xié)議報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播協(xié)議報(bào)文是否屬于該VD的方法為:如果廣播協(xié)議報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的CPU源端口,則確定廣播協(xié)議報(bào)文不屬于該VD,否則,確定廣播協(xié)議報(bào)文屬于該VD ;
[0074]當(dāng)采用第二種為轉(zhuǎn)發(fā)芯片配置二層隔離表的方法時(shí),根據(jù)廣播協(xié)議報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播協(xié)議報(bào)文是否屬于該VD的方法為:如果廣播協(xié)議報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的CPU源端口,則確定廣播協(xié)議報(bào)文屬于該VD,否則,確定廣播協(xié)議報(bào)文不屬于該VD。
[0075]通過(guò)上述VD對(duì)在自身的任一轉(zhuǎn)發(fā)芯片的CPU端口或內(nèi)部端口接收到的廣播協(xié)議報(bào)文的處理過(guò)程,可以使VD主動(dòng)發(fā)送的廣播協(xié)議報(bào)文只能夠從該VD的各轉(zhuǎn)發(fā)芯片的外部端口轉(zhuǎn)發(fā)出去,而不能從其它VD的轉(zhuǎn)發(fā)芯片的外部端口轉(zhuǎn)發(fā)出去,可以實(shí)現(xiàn)各VD主動(dòng)發(fā)送的廣播協(xié)議報(bào)文的在VD之間的二層隔離。
[0076]此外,從上述為VD的每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非該VD的報(bào)文的二層隔離表的方法可以看出,本發(fā)明并未對(duì)各轉(zhuǎn)發(fā)芯片的CPU端口之間進(jìn)行二層隔離設(shè)置,因此,各轉(zhuǎn)發(fā)芯片的CPU端口之間可以互通板間通信報(bào)文,實(shí)現(xiàn)板間通信。
[0077]以上對(duì)本發(fā)明實(shí)施例的方法進(jìn)行了詳細(xì)說(shuō)明,本發(fā)明還給出了一種虛擬設(shè)備,應(yīng)用于交換機(jī)。
[0078]參見(jiàn)圖4,圖4是本發(fā)明實(shí)施例提供的虛擬設(shè)備的結(jié)構(gòu)示意圖,應(yīng)用于交換機(jī),所述交換機(jī)以轉(zhuǎn)發(fā)芯片為加入和退出VD的最小單元,并建立有轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系;該VD包括:配置單元401、接收單元402、處理單元403、發(fā)送單元404 ;其中,
[0079]配置單元401,用于根據(jù)所述交換機(jī)建立的轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為本VD中每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非本VD的報(bào)文的二層隔離表;
[0080]接收單元402,用于在本VD的任一轉(zhuǎn)發(fā)芯片的外部端口接收?qǐng)?bào)文;用于在本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收攜帶源端口的報(bào)文;
[0081]處理單元403,用于接收單元402在本VD的任一轉(zhuǎn)發(fā)芯片的外部端口接收到報(bào)文時(shí),確定報(bào)文的出端口,對(duì)屬于該轉(zhuǎn)發(fā)芯片的外部端口的每個(gè)出端口,通知發(fā)送單元404從該出端口轉(zhuǎn)發(fā)報(bào)文;對(duì)不屬于該轉(zhuǎn)發(fā)芯片的外部端口的每個(gè)出端口,通知發(fā)送單元404將接收?qǐng)?bào)文的端口作為報(bào)文的源端口攜帶在報(bào)文中并通過(guò)該轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文;用于接收單元402本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到攜帶源端口的報(bào)文時(shí),確定報(bào)文的出端口,根據(jù)報(bào)文的源端口和配置單元401為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于本VD,如果是,則通知發(fā)送單元404從確定的出端口轉(zhuǎn)發(fā)報(bào)文,否則,濾除報(bào)文的出端口中屬于該轉(zhuǎn)發(fā)芯片的外部端口,并通知發(fā)送單元404從濾除后剩下的出端口轉(zhuǎn)發(fā)報(bào)文。
[0082]上述VD中,所述發(fā)送單元404在將接收?qǐng)?bào)文的端口作為報(bào)文的源端口攜帶在報(bào)文中并通過(guò)該轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文時(shí),用于:如果該出端口為該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則將接收?qǐng)?bào)文的端口作為報(bào)文的源端口攜帶在報(bào)文中并從該出端口轉(zhuǎn)發(fā)報(bào)文;如果該出端口是其它轉(zhuǎn)發(fā)芯片的外部端口,則將接收?qǐng)?bào)文的端口、該出端口、該出端口所在轉(zhuǎn)發(fā)芯片分別作為報(bào)文的源端口、目的出端口、目的轉(zhuǎn)發(fā)芯片攜帶在報(bào)文中,并查找轉(zhuǎn)發(fā)芯片映射表確定報(bào)文的目的轉(zhuǎn)發(fā)芯片對(duì)應(yīng)的內(nèi)部端口,從確定的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文;
[0083]所述發(fā)送單元404在從濾除后剩下的出端口轉(zhuǎn)發(fā)報(bào)文時(shí),用于:針對(duì)濾除后剩下的每個(gè)出端口,如果該出端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則從該出端口轉(zhuǎn)發(fā)報(bào)文,如果該出端口是其它轉(zhuǎn)發(fā)芯片的外部端口,則查找轉(zhuǎn)發(fā)芯片映射表確定報(bào)文的目的轉(zhuǎn)發(fā)芯片對(duì)應(yīng)的內(nèi)部端口,從確定的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文。
[0084]所述配置單元401在根據(jù)轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為本VD中每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非本VD的報(bào)文的二層隔離表時(shí),進(jìn)一步將該轉(zhuǎn)發(fā)芯片的每個(gè)內(nèi)部端口加入到所述交換機(jī)中所有VD的VLAN中,并將該內(nèi)部端口加入到所有組播組對(duì)應(yīng)的組播表項(xiàng)的出端口列表中;
[0085]所述處理單元403在確定接收單元402在本VD的任一轉(zhuǎn)發(fā)芯片的外部端口接收到的報(bào)文的出端口時(shí),用于:如果報(bào)文是單播報(bào)文,則查找MAC轉(zhuǎn)發(fā)表確定報(bào)文的出端口,如果報(bào)文是組播報(bào)文,則查找報(bào)文所屬組播組對(duì)應(yīng)的組播表項(xiàng)的出接口列表確定報(bào)文的出端口,對(duì)于根據(jù)MAC轉(zhuǎn)發(fā)表未能確定出端口的單播報(bào)文、根據(jù)組播表項(xiàng)的出接口列表未能確定出端口的組播報(bào)文以及廣播報(bào)文,則查找VLAN廣播表確定報(bào)文的出端口 ;在確定接收單元402在本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到的報(bào)文的出端口時(shí),用于:如果報(bào)文是單播報(bào)文且攜帶目的出端口,則確定報(bào)文的出端口為該目的出端口,如果報(bào)文是組播報(bào)文,則查找報(bào)文所屬組播組對(duì)應(yīng)的組播表項(xiàng)的出接口列表確定報(bào)文的出端口,對(duì)于未攜帶目的出端口的未知單播報(bào)文、根據(jù)組播表項(xiàng)的出接口列表未能確定出端口的組播報(bào)文以及廣播報(bào)文,則查找VLAN廣播表確定報(bào)文的出端口。
[0086]上述VD中,所述處理單元403在確定接收單元402在本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到的報(bào)文屬于本VD之后,進(jìn)一步用于:學(xué)習(xí)該報(bào)文的源MAC地址到報(bào)文的源端口 ;在確定接收單元402在本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到的報(bào)文不屬于本VD之后,進(jìn)一步用于:禁止對(duì)該報(bào)文進(jìn)行MAC地址學(xué)習(xí)。
[0087]上述VD中,所述接收單元402,進(jìn)一步用于在本VD的任一轉(zhuǎn)發(fā)芯片的CPU端口接收廣播協(xié)議報(bào)文;進(jìn)一步用于在本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收攜帶源端口的廣播協(xié)議報(bào)文;
[0088]所述處理單元403,進(jìn)一步用于接收單元402在本VD的任一轉(zhuǎn)發(fā)芯片的CPU端口接收到廣播協(xié)議報(bào)文時(shí),查找VLAN廣播表確定報(bào)文的出端口,針對(duì)每個(gè)出端口,如果該出端口是該轉(zhuǎn)發(fā)芯片的外部端口,則通知發(fā)送單元404從該出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文,如果該出端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則通知發(fā)送單元404將預(yù)先為本VD分配的CPU源端口作為廣播協(xié)議報(bào)文的源端口攜帶在廣播協(xié)議報(bào)文,并從該出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文;進(jìn)一步用于接收單元402在本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到攜帶源端口的廣播協(xié)議報(bào)文時(shí),查找VLAN廣播表確定廣播協(xié)議報(bào)文的出端口,根據(jù)廣播協(xié)議報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播協(xié)議報(bào)文是否屬于本VD,如果是,則通知發(fā)送單元404從報(bào)文的出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文,否則,將報(bào)文的出端口中屬于該轉(zhuǎn)發(fā)芯片的外部端口過(guò)濾,并通知發(fā)送單元404從過(guò)濾后的出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文。
[0089]所述配置單元401在根據(jù)轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為本VD中每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非本VD的報(bào)文的二層隔離表時(shí),用于:將不屬于本VD的所有轉(zhuǎn)發(fā)芯片的外部端口添加到為該轉(zhuǎn)發(fā)芯片配置的二層隔離表,將為除本VD外其它每個(gè)VD預(yù)先分配的CPU源端口添加到為該轉(zhuǎn)發(fā)芯片配置的二層隔離表;
[0090]所述處理單元403在根據(jù)報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于本VD時(shí),用于:如果報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的外部端口,則確定報(bào)文不屬于本VD,否則,確定報(bào)文屬于本VD ;在根據(jù)廣播協(xié)議報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播協(xié)議報(bào)文是否屬于本VD時(shí),用于:如果廣播協(xié)議報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的CPU源端口,則確定廣播協(xié)議報(bào)文不屬于本VD,否則,確定廣播協(xié)議報(bào)文屬于本VD ;
[0091]或者,
[0092]所述配置單元401在根據(jù)轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為本VD中每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非本VD的報(bào)文的二層隔離表時(shí),用于:將屬于本VD的所有轉(zhuǎn)發(fā)芯片的外部端口添加到為該轉(zhuǎn)發(fā)芯片配置的二層隔離表,將為本VD預(yù)先分配的CPU源端口添加到為該轉(zhuǎn)發(fā)芯片配置的,二層隔離表;
[0093]所述處理單元403在根據(jù)報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于本VD時(shí),用于:如果報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的外部端口,則確定報(bào)文屬于本VD,否則,確定報(bào)文不屬于本VD ;在根據(jù)廣播協(xié)議報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播協(xié)議報(bào)文是否屬于本VD時(shí),用于:如果廣播協(xié)議報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的CPU源端口,則確定廣播協(xié)議報(bào)文屬于本VD,否則,確定廣播協(xié)議報(bào)文不屬于本VD。
[0094]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種在交換機(jī)上實(shí)現(xiàn)虛擬設(shè)備VD的方法,所述交換機(jī)以轉(zhuǎn)發(fā)芯片為加入和退出VD的最小單元,并建立有轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系;其特征在于,該方法包括: 根據(jù)轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為當(dāng)前VD中每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非當(dāng)前VD的報(bào)文的二層隔離表; 當(dāng)前VD在自身的任一轉(zhuǎn)發(fā)芯片的外部端口接收到報(bào)文時(shí),確定報(bào)文的出端口,對(duì)屬于該轉(zhuǎn)發(fā)芯片的外部端口的每個(gè)出端口,從該出端口轉(zhuǎn)發(fā)報(bào)文;對(duì)不屬于該轉(zhuǎn)發(fā)芯片的外部端口的每個(gè)出端口,將接收?qǐng)?bào)文的端口作為報(bào)文的源端口攜帶在報(bào)文中并通過(guò)該轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文; 當(dāng)前VD在自身的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到攜帶源端口的報(bào)文時(shí),確定報(bào)文的出端口,根據(jù)報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于當(dāng)前VD,如果是,則從確定的出端口轉(zhuǎn)發(fā)報(bào)文,否則,濾除報(bào)文的出端口中屬于該轉(zhuǎn)發(fā)芯片的外部端口,從濾除后剩下的出端口轉(zhuǎn)發(fā)報(bào)文。
2.根據(jù)權(quán)利要求1所述的在交換機(jī)上實(shí)現(xiàn)VD的方法,其特征在于, 所述對(duì)不屬于該轉(zhuǎn)發(fā)芯片的外部端口的每個(gè)出端口,將接收?qǐng)?bào)文的端口作為報(bào)文的源端口攜帶在報(bào)文中并通過(guò)該轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文的方法為:如果該出端口為該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則將接收?qǐng)?bào)文的端口作為報(bào)文的源端口攜帶在報(bào)文中并從該出端口轉(zhuǎn)發(fā)報(bào)文;如果該出端口是其它轉(zhuǎn)發(fā)芯片的外部端口,則將接收?qǐng)?bào)文的端口、該出端口、該出端口所在轉(zhuǎn)發(fā)芯片分別作為報(bào)文的源端口、目的出端口、目的轉(zhuǎn)發(fā)芯片攜帶在報(bào)文中,并查找轉(zhuǎn)發(fā)芯片映射表確定報(bào)文的目的轉(zhuǎn)發(fā)芯片對(duì)應(yīng)的內(nèi)部端口,從確定的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文; 所述從濾除后剩下的出端口轉(zhuǎn)發(fā)報(bào)文的方法為:針對(duì)濾除后剩下的每個(gè)出端口,如果該出端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則從該出端口轉(zhuǎn)發(fā)報(bào)文,如果該出端口是其它轉(zhuǎn)發(fā)芯片的外部端口,則查找轉(zhuǎn)發(fā)芯片映射表確定報(bào)文的目的轉(zhuǎn)發(fā)芯片對(duì)應(yīng)的內(nèi)部端口,從確定的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文。
3.根據(jù)權(quán)利要求2所述的在交換機(jī)上實(shí)現(xiàn)VD的方法,其特征在于, 所述根據(jù)轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為當(dāng)前VD中每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非當(dāng)前VD的報(bào)文的二層隔離表時(shí),進(jìn)一步將該轉(zhuǎn)發(fā)芯片的每個(gè)內(nèi)部端口加入到所述交換機(jī)中所有VD的VLAN中,并將該內(nèi)部端口加入到所有組播組對(duì)應(yīng)的組播表項(xiàng)的出端口列表中; 當(dāng)前VD在自身的任一轉(zhuǎn)發(fā)芯片的外部端口接收到報(bào)文時(shí),確定報(bào)文的出端口的方法為:如果報(bào)文是單播報(bào)文,則查找MAC轉(zhuǎn)發(fā)表確定報(bào)文的出端口,如果報(bào)文是組播報(bào)文,則查找報(bào)文所屬組播組對(duì)應(yīng)的組播表項(xiàng)的出接口列表確定報(bào)文的所有出端口,對(duì)于根據(jù)MAC轉(zhuǎn)發(fā)表未能確定出端口的單播報(bào)文、根據(jù)組播表項(xiàng)的出接口列表未能確定出端口的組播報(bào)文以及廣播報(bào)文,則查找VLAN廣播表確定報(bào)文的所有出端口 ; 當(dāng)前VD在自身的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到報(bào)文時(shí),確定報(bào)文的出端口的方法為:如果報(bào)文是單播報(bào)文且攜帶目的出端口,則確定報(bào)文的出端口為該目的出端口,如果報(bào)文是組播報(bào)文,則查找報(bào)文所屬組播組對(duì)應(yīng)的組播表項(xiàng)的出接口列表確定報(bào)文的所有出端口,對(duì)于未攜帶目的出端口的單播報(bào)文、根據(jù)組播表項(xiàng)的出接口列表未能確定出端口的組播報(bào)文以及廣播報(bào)文,則查找VLAN廣播表確定報(bào)文的所有出端口。
4.根據(jù)權(quán)利要求1所述的在交換機(jī)上實(shí)現(xiàn)VD的方法,其特征在于,當(dāng)前VD在任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到報(bào)文并確定報(bào)文屬于當(dāng)前VD之后,進(jìn)一步包括:學(xué)習(xí)該報(bào)文的源MAC地址到報(bào)文的源端口 ; 當(dāng)前VD在任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到報(bào)文并確定報(bào)文不屬于當(dāng)前VD之后,進(jìn)一步包括:禁止對(duì)該報(bào)文進(jìn)行MAC地址學(xué)習(xí)。
5.根據(jù)權(quán)利要求2-4任一權(quán)項(xiàng)所述的在交換機(jī)上實(shí)現(xiàn)VD的方法,其特征在于,該方法進(jìn)一步包括: 當(dāng)前VD在自身的任一轉(zhuǎn)發(fā)芯片的CPU端口接收到廣播協(xié)議報(bào)文時(shí),查找VLAN廣播表確定報(bào)文的所有出端口,針對(duì)每個(gè)出端口,如果該出端口是該轉(zhuǎn)發(fā)芯片的外部端口,則從該出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文,如果該出端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則將預(yù)先為當(dāng)前VD分配的CPU源端口作為廣播協(xié)議報(bào)文的源端口攜帶在廣播協(xié)議報(bào)文,并從該出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文; 當(dāng)前VD在自身的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到攜帶源端口的廣播協(xié)議報(bào)文時(shí),查找VLAN廣播表確定廣播協(xié)議報(bào)文的所有出端口,根據(jù)廣播協(xié)議報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播協(xié)議報(bào)文是否屬于當(dāng)前VD,如果是,則從所有出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文,否則,將所有出端口中屬于該轉(zhuǎn)發(fā)芯片的外部端口過(guò)濾,從過(guò)濾后的所有出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文。
6.根據(jù)權(quán)利要求5所述的在交換機(jī)上實(shí)現(xiàn)VD的方法,其特征在于, 所述根據(jù)轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為當(dāng)前VD中每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非當(dāng)前VD的報(bào)文的二層隔離表的方法為:將不屬于當(dāng)前VD的所有轉(zhuǎn)發(fā)芯片的外部端口添加到為該轉(zhuǎn)發(fā)芯片配置的二層隔離表,將為除當(dāng)前VD外其它每個(gè)VD預(yù)先分配的CPU源端口添加到為該轉(zhuǎn)發(fā)芯片配置的二層隔離表; 所述根據(jù)報(bào)文的源端口和為 該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于當(dāng)前VD的方法為:如果報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的外部端口,則確定報(bào)文不屬于當(dāng)前VD,否則,確定報(bào)文屬于當(dāng)前VD ; 所述根據(jù)廣播協(xié)議報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播協(xié)議報(bào)文是否屬于當(dāng)前VD的方法為:如果廣播協(xié)議報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的CPU源端口,則確定廣播協(xié)議報(bào)文不屬于當(dāng)前VD,否則,確定廣播協(xié)議報(bào)文屬于當(dāng)前VD ; 或者, 所述根據(jù)轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為當(dāng)前VD中每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非當(dāng)前VD的報(bào)文的二層隔離表的方法為:將屬于當(dāng)前VD的所有轉(zhuǎn)發(fā)芯片的外部端口添加到為該轉(zhuǎn)發(fā)芯片配置的二層隔離表,將為當(dāng)前VD預(yù)先分配的CPU源端口添加到為該轉(zhuǎn)發(fā)芯片配置的二層隔尚表; 所述根據(jù)報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于當(dāng)前VD的方法為:如果報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的外部端口,則確定報(bào)文屬于當(dāng)前VD,否則,確定報(bào)文不屬于當(dāng)前VD ; 所述根據(jù)廣播協(xié)議報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播協(xié)議報(bào)文是否屬于當(dāng)前VD的方法為:如果廣播協(xié)議報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的CPU源端口,則確定廣播協(xié)議報(bào)文屬于當(dāng)前VD,否則,確定廣播協(xié)議報(bào)文不屬于當(dāng)前VD。
7.一種虛擬設(shè)備VD,應(yīng)用于交換機(jī),所述交換機(jī)以轉(zhuǎn)發(fā)芯片為加入和退出VD的最小單元,并建立有轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系;其特征在于,該VD包括:配置單元、接收單元、處理單元、發(fā)送單元; 所述配置單元,用于根據(jù)所述交換機(jī)建立的轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為本VD中每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非本VD的報(bào)文的二層隔離表; 所述接收單元,用于在本VD的任一轉(zhuǎn)發(fā)芯片的外部端口接收?qǐng)?bào)文;用于在本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收攜帶源端口的報(bào)文; 所述處理單元,用于接收單元在本VD的任一轉(zhuǎn)發(fā)芯片的外部端口接收到報(bào)文時(shí),確定報(bào)文的出端口,對(duì)屬于該轉(zhuǎn)發(fā)芯片的外部端口的每個(gè)出端口,通知發(fā)送單元從該出端口轉(zhuǎn)發(fā)報(bào)文;對(duì)不屬于該轉(zhuǎn)發(fā)芯片的外部端口的每個(gè)出端口,通知發(fā)送單元將接收?qǐng)?bào)文的端口作為報(bào)文的源端口攜帶在報(bào)文中并通過(guò)該轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文;用于接收單元本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到攜帶源端口的報(bào)文時(shí),確定報(bào)文的出端口,根據(jù)報(bào)文的源端口和配置單元為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于本VD,如果是,則通知發(fā)送單元從確定的出端口轉(zhuǎn)發(fā)報(bào)文,否則,濾除報(bào)文的出端口中屬于該轉(zhuǎn)發(fā)芯片的外部端口,并通知發(fā)送單元從濾除后剩下的出端口轉(zhuǎn)發(fā)報(bào)文。
8.根據(jù)權(quán)利要求7所述的VD,其特征在于, 所述發(fā)送單元在將接 收?qǐng)?bào)文的端口作為報(bào)文的源端口攜帶在報(bào)文中并通過(guò)該轉(zhuǎn)發(fā)芯片的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文時(shí),用于:如果該出端口為該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則將接收?qǐng)?bào)文的端口作為報(bào)文的源端口攜帶在報(bào)文中并從該出端口轉(zhuǎn)發(fā)報(bào)文;如果該出端口是其它轉(zhuǎn)發(fā)芯片的外部端口,則將接收?qǐng)?bào)文的端口、該出端口、該出端口所在轉(zhuǎn)發(fā)芯片分別作為報(bào)文的源端口、目的出端口、目的轉(zhuǎn)發(fā)芯片攜帶在報(bào)文中,并查找轉(zhuǎn)發(fā)芯片映射表確定報(bào)文的目的轉(zhuǎn)發(fā)芯片對(duì)應(yīng)的內(nèi)部端口,從確定的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文; 所述發(fā)送單元在從濾除后剩下的出端口轉(zhuǎn)發(fā)報(bào)文時(shí),用于:針對(duì)濾除后剩下的每個(gè)出端口,如果該出端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則從該出端口轉(zhuǎn)發(fā)報(bào)文,如果該出端口是其它轉(zhuǎn)發(fā)芯片的外部端口,則查找轉(zhuǎn)發(fā)芯片映射表確定報(bào)文的目的轉(zhuǎn)發(fā)芯片對(duì)應(yīng)的內(nèi)部端口,從確定的內(nèi)部端口轉(zhuǎn)發(fā)報(bào)文。
9.根據(jù)權(quán)利要求8所述的VD,其特征在于, 所述配置單元在根據(jù)轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為本VD中每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非本VD的報(bào)文的二層隔離表時(shí),進(jìn)一步將該轉(zhuǎn)發(fā)芯片的每個(gè)內(nèi)部端口加入到所述交換機(jī)中所有VD的VLAN中,并將該內(nèi)部端口加入到所有組播組對(duì)應(yīng)的組播表項(xiàng)的出端口列表中; 所述處理單元在確定接收單元在本VD的任一轉(zhuǎn)發(fā)芯片的外部端口接收到的報(bào)文的出端口時(shí),用于:如果報(bào)文是已知單播報(bào)文,則查找MAC轉(zhuǎn)發(fā)表確定報(bào)文的出端口,如果報(bào)文是已知組播報(bào)文,則查找報(bào)文所屬組播組對(duì)應(yīng)的組播表項(xiàng)的出接口列表確定報(bào)文的出端口,對(duì)于根據(jù)MAC轉(zhuǎn)發(fā)表未能確定出端口的單播報(bào)文、根據(jù)組播表項(xiàng)的出接口列表未能確定出端口的組播報(bào)文以及或廣播報(bào)文,則查找VLAN廣播表確定報(bào)文的出端口 ;在確定接收單元在本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到的報(bào)文的出端口時(shí),用于:如果報(bào)文是單播報(bào)文且攜帶目的出端口,則確定報(bào)文的出端口為該目的出端口,如果報(bào)文是組播報(bào)文,則查找報(bào)文所屬組播組對(duì)應(yīng)的組播表項(xiàng)的出接口列表確定報(bào)文的出端口,對(duì)于未攜帶目的出端口的單播報(bào)文、根據(jù)組播表項(xiàng)的出接口列表未能確定出端口的組播報(bào)文以及廣播報(bào)文,則查找VLAN廣播表確定報(bào)文的出端口。
10.根據(jù)權(quán)利要求7所述的VD,其特征在于, 所述處理單元在確定接收單元在本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到的報(bào)文屬于本VD之后,進(jìn)一步用于:學(xué)習(xí)該報(bào)文的源MAC地址到報(bào)文的源端口 ;在確定接收單元在本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到的報(bào)文不屬于本VD之后,進(jìn)一步用于:禁止對(duì)該報(bào)文進(jìn)行MAC地址學(xué)習(xí)。
11.根據(jù)權(quán)利要求7-10任一權(quán)項(xiàng)所述的VD,其特征在于, 所述接收單元,進(jìn)一步用于在本VD的任一轉(zhuǎn)發(fā)芯片的CPU端口接收廣播協(xié)議報(bào)文;進(jìn)一步用于在本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收攜帶源端口的廣播協(xié)議報(bào)文; 所述處理單元,進(jìn)一步用于接收單元在本VD的任一轉(zhuǎn)發(fā)芯片的CPU端口接收到廣播協(xié)議報(bào)文時(shí),查找VLAN廣播表確定報(bào)文的出端口,針對(duì)每個(gè)出端口,如果該出端口是該轉(zhuǎn)發(fā)芯片的外部端口,則通知發(fā)送單元從該出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文,如果該出端口是該轉(zhuǎn)發(fā)芯片的內(nèi)部端口,則通知發(fā)送單元將預(yù)先為本VD分配的CPU源端口作為廣播協(xié)議報(bào)文的源端口攜帶在廣播協(xié)議報(bào)文,并從該出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文;進(jìn)一步用于接收單元在本VD的任一轉(zhuǎn)發(fā)芯片的內(nèi)部端口接收到攜帶源端口的廣播協(xié)議報(bào)文時(shí),查找VLAN廣播表確定廣播協(xié)議報(bào)文的出端口,根據(jù)廣播協(xié)議報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播協(xié)議報(bào)文是否屬于本VD,如果是,則通知發(fā)送單元從報(bào)文的出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文,否則,將報(bào)文的出端口中屬于該轉(zhuǎn)發(fā)芯片的外部端口過(guò)濾,并通知發(fā)送單元從過(guò)濾后的出端口轉(zhuǎn)發(fā)廣播協(xié)議報(bào)文。
12.根據(jù)權(quán)利要求11所述的VD,其特征在于, 所述配置單元在根據(jù)轉(zhuǎn)發(fā)芯片和`VD的對(duì)應(yīng)關(guān)系為本VD中每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非本VD的報(bào)文的二層隔離表時(shí),用于:將不屬于本VD的所有轉(zhuǎn)發(fā)芯片的外部端口添加到為該轉(zhuǎn)發(fā)芯片配置的二層隔離表,將為除本VD外其它每個(gè)VD預(yù)先分配的CPU源端口添加到為該轉(zhuǎn)發(fā)芯片配置的二層隔離表; 所述處理單元在根據(jù)報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于本VD時(shí),用于:如果報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的外部端口,則確定報(bào)文不屬于本VD,否則,確定報(bào)文屬于本VD ;在根據(jù)廣播協(xié)議報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播協(xié)議報(bào)文是否屬于本VD時(shí),用于:如果廣播協(xié)議報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的CPU源端口,則確定廣播協(xié)議報(bào)文不屬于本VD,否則,確定廣播協(xié)議報(bào)文屬于本VD ; 或者, 所述配置單元在根據(jù)轉(zhuǎn)發(fā)芯片和VD的對(duì)應(yīng)關(guān)系為本VD中每個(gè)轉(zhuǎn)發(fā)芯片配置用于隔離非本VD的報(bào)文的二層隔離表時(shí),用于:將屬于本VD的所有轉(zhuǎn)發(fā)芯片的外部端口添加到為該轉(zhuǎn)發(fā)芯片配置的二層隔離表,將為本VD預(yù)先分配的CPU源端口添加到為該轉(zhuǎn)發(fā)芯片配置的二層隔尚表; 所述處理單元在根據(jù)報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷報(bào)文是否屬于本VD時(shí),用于:如果報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的外部端口,則 確定報(bào)文屬于本VD,否則,確定報(bào)文不屬于本VD ;在根據(jù)廣播協(xié)議報(bào)文的源端口和為該轉(zhuǎn)發(fā)芯片配置的二層隔離表判斷廣播協(xié)議報(bào)文是否屬于本VD時(shí),用于:如果廣播協(xié)議報(bào)文的源端口是為該轉(zhuǎn)發(fā)芯片配置的二層隔離表中的CPU源端口,則確定廣播協(xié)議報(bào)文屬于本VD,否則,確定廣播協(xié)議報(bào)文不屬于本VD。
【文檔編號(hào)】H04L12/947GK103685082SQ201210356094
【公開(kāi)日】2014年3月26日 申請(qǐng)日期:2012年9月21日 優(yōu)先權(quán)日:2012年9月21日
【發(fā)明者】王明輝 申請(qǐng)人:杭州華三通信技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
会昌县| 涡阳县| 荥阳市| 灵武市| 普安县| 蒙阴县| 永寿县| 和龙市| 布尔津县| 乐都县| 大名县| 丹东市| 鹿泉市| 西昌市| 巴里| 方山县| 土默特左旗| 星座| 泸溪县| 棋牌| 襄垣县| 铜陵市| 高州市| 沙洋县| 类乌齐县| 娄底市| 天长市| 江津市| 威海市| 昌乐县| 溧水县| 青川县| 锦屏县| 莱阳市| 彭阳县| 漳州市| 建平县| 得荣县| 酉阳| 兴隆县| 雷波县|