一種主機路由表項生成方法及設備的制作方法
【專利摘要】本發明公開了一種主機路由表項生成方法及設備,具體內容為:在接收到終端發送的ARP請求報文時,根據該終端在認證過程中保存的認證信息直接生成主機路由表項。相對于現有技術中在根據ARP監測表項對ARP請求報文驗證通過后根據ARP表項生成主機路由表項的方案,本發明公開的該方案可減少資源消耗。
【專利說明】一種主機路由表項生成方法及設備
【技術領域】
[0001]本發明涉及網絡【技術領域】,尤其涉及一種主機路由表項生成方法及設備。
【背景技術】
[0002]為了節省IP地址資源,一種超級虛擬局域網(Super Virtual Local AreaNetwork, Super VLAN)技術應運而生,其網絡架構示意圖如圖1所示。一個Super VLAN可包含多個子虛擬局域網(Sub VLAN),不同Sub VLAN之間二層相互隔離,當不同Sub VLAN內的用戶終端需要進行三層通信時,將使用Super VLAN三層接口的IP地址作為網關地址,這樣多個Sub VLAN共用一個IP網段,從而節省了 IP地址資源。例如,圖1中的Sub VLANUSub VLAN2和Sub VLAN3共用同一個子網(1.1.1.0/24),屬于同一個網段。
[0003]為了實現不同Sub VLAN間的三層互通及Sub VLAN與其他網絡的互通,需要進行地址解析協議(Address Resolution Protocol,ARP)代理,通過ARP代理可以進行ARP請求和響應報文的轉發與處理,從而實現了二層隔離端口間的三層互通。例如,假設圖1中SubVLANl中的PCl要與Sub VLAN2中的PC3進行通信,則三層交換機中的ARP代理模塊進行ARP代理的過程為:
[0004]第一步:當PCl的ARP表項中沒有PC3的介質訪問控制(Midea Access Control,MAC)地址時,PCl將發送一個ARP請求報文,該ARP請求報文中包含PCl的源IP地址(假設為PC1_IP)、PCl的源MAC地址(假設為MAC_PC1)以及PC3的目的IP地址(假設為PC3_IP);
[0005]第二步:三層交換機中的ARP代理模塊接收到PCl發送的ARP請求報文后,根據自身存儲的ARP監測表項(根據認證信息生成,包含IP地址、MAC地址、VLAN標識號和端口號)對該ARP請求報文中的源IP地址、源MAC地址進行驗證。如果驗證出該ARP請求報文中的源IP地址和源MAC地址與存儲的某條ARP監測表項中的IP地址和MAC地址匹配一致,則生成PCl的ARP表項(該ARP表項中包含PCl的源IP地址、源MAC地址和VLAN標識號),并根據生成的ARP表項生成PCl的主機路由表項。之后,三層交換機將該ARP請求報文中的源MAC地址修改為三層交換機的MAC地址(假設為MAC_ARP)后,向Super VLAN下所有SubVLAN下的終端發送包含的源MAC地址為三層交換機的MAC地址的ARP請求報文;
[0006]第三步:PC3接收到ARP代理模塊發送的ARP請求報文之后,通過ARP應答報文將自己的MAC地址(假設為MAC_PC3)發送給ARP代理模塊;
[0007]第四步:ARP代理模塊接收到PC3發送的ARP應答報文后,根據基于PCl的ARP表項所生成的路由目的地為PCl的主機路由表項,將自己的MAC地址(MAC_ARP)通過ARP應答報文發送給PCl ;
[0008]第五步:PC1接收到ARP代理模塊發送的ARP應答報文后,會以為該ARP應答報文中的MAC (MAC_ARP)地址是PC3的MAC地址,從而之后將想要發送給PC3的數據包進行二層封裝(目的MAC地址是MAC_ARP)發送給ARP代理模塊,由ARP代理模塊轉發給PC3。
[0009]上述步驟執行完畢后,PCl和PC3之間就可以通過三層交換機的ARP代理模塊所生成的主機路由表項進行數據通信。
[0010]根據上述現有技術可知,三層交換機生成主機路由表項的過程為:在接收到終端發送的ARP請求報文時,利用事先存儲的ARP監測表項(根據終端的認證信息生成),對該ARP請求報文進行驗證,如果通過驗證,則根據該ARP請求報文生成ARP表項,并根據生成的ARP表項生成路由目的地為該終端的主機路由表項。上述過程中需事先生成ARP監測表項,并在接收到ARP請求報文時,對該ARP請求報文的合法性進行驗證,其執行過程需要耗費較多的處理資源。例如,在接收到ARP請求報文時,現有技術需通過三態內容尋址存儲器(Ternary Content Addressable Memory, TCAM)從 TCAM 存儲的 ARP 監測表項(該 ARP 監測表項同時存儲在RAM中)中查找與該ARP請求報文中的源IP地址相匹配的ARP監測表項信息,一方面對ARP監測表項的存儲會占用一定的存儲空間,如TCAM和RAM中都會存儲ARP監測表項;另一方面,對ARP請求報文的驗證會占用較多的TCAM資源,針對三層交換機下大量終端發送ARP請求報文的情況,對TCAM的容量和處理能力要求較高。
【發明內容】
[0011]本發明實施例提供了一種主機路由表項生成方法及設備,用以解決現有技術中生成主機路由表項的方式會耗費較多的處理資源的問題。
[0012]一種主機路由表項生成方法,所述方法包括:交換機獲得終端發送的地址解析協議ARP請求報文;所述交換機根據所述ARP請求報文中的源因特網協議IP地址,判斷所述交換機中是否存儲有包含所述源IP地址的認證信息;若判斷結果為是,則根據所述認證信息中包含的所述源IP地址、介質訪問控制MAC地址、虛擬局域網VLAN標識號以及端口號,在所述交換機所存儲的路由表中生成包含所述源IP地址、所述MAC地址、所述VLAN標識號以及所述端口號的第一主機路由表項。
[0013]從上述方案可以看出,在接收到終端發送的ARP請求報文時,直接根據該終端的認證信息生成主機路由表項,可有效避免ARP欺騙;且相對于現有技術中在根據ARP監測表項對ARP請求報文驗證通過后根據ARP表項生成主機路由表項的方案,可減少資源消耗。
[0014]可選地,所述方法還包括:若判斷結果為否,則根據所述ARP請求報文中包含的源IP地址、源MAC地址和VLAN標識號生成ARP表項;根據所述ARP表項在所述路由表中生成第二主機路由表項。
[0015]在沒有認證信息的情況下先生成主機路由表項的目的在于在終端進行認證前為終端分配IP地址,以便于終端能夠進行WEB認證。
[0016]所述方法還包括:在生成所述第二主機路由表項后,在所述第二主機路由表項中包含的IP地址相對應的終端通過認證時,根據所述IP地址相對應的終端的認證信息更新所述第二主機路由表項。
[0017]利用終端的認證信息更新主機路由表項,可確保將IP數據包發送給通過認證的合法的終端。
[0018]所述方法還包括:所述交換機根據所述ARP請求報文中的目的IP地址,從所述路由表包含的除包含所述交換機的IP地址的主機路由表項外的其他主機路由表項中,查找包含所述目的IP地址的主機路由表項;若查找到包含所述目的IP地址的主機路由表項,則向所述終端發送ARP應答報文;若查找不到包含所述目的IP地址的主機路由表項,則丟棄所述ARP請求報文。
[0019]根據事先生成的主機路由表項,在查找到包含目的IP地址的主機路由表項時,直接向發送ARP請求報文的終端發送ARP應答報文,而不向交換機下的其他終端廣播ARP請求報文,可減少交換機與其他終端的交互、減少ARP報文的處理過程,提升交換機性能。
[0020]在所述交換機根據所述IP地址,從所述其他主機路由表項中查找包含所述目的IP地址的主機路由表項之前,所述方法還包括:所述交換機確定出所述源IP地址和所述目的IP地址屬于所述交換機下的同一個Super VLAN。
[0021]如此,即可確保處于同一個Super VLAN下終端間才可進行通信。
[0022]與上述主機路由表項生成方法相對應,本發明的實施例還提供一種主機路由表項生成設備,所述設備包括:獲得模塊,用于獲得終端發送的ARP請求報文;判斷模塊,用于根據所述ARP請求報文中的源IP地址,判斷所述主機路由表項生成設備是否存儲有包含所述源IP地址的認證信息;主機路由表項生成模塊,用于在判斷模塊的判斷結果為存儲有包含所述源IP地址的認證信息時,根據所述認證信息中包含的所述源IP地址、MAC地址、VLAN標識號以及端口號,在所述主機路由表項生成設備所存儲的路由表中生成包含所述源IP地址、所述MAC地址、所述VLAN標識號以及所述端口號的第一主機路由表項。
[0023]采用該設備在接收到終端發送的ARP請求報文時,根據該終端的認證信息生成主機路由表項,可有效避免ARP欺騙;且相對于現有技術中在根據ARP監測表項對ARP請求報文驗證通過后根據ARP表項生成主機路由表項的方案,可減少資源消耗。
[0024]所述主機路由表項生成模塊,還用于判斷模塊的判斷結果為沒有存儲包含所述源IP地址的認證信息時,根據所述ARP請求報文中包含的源IP地址、源MAC地址和VLAN標識號生成ARP表項,并根據所述ARP表項在所述路由表中生成第二主機路由表項。
[0025]在沒有認證信息的情況下先生成主機路由表項的目的在于在終端進行認證前為終端分配IP地址,以便于終端能夠進行WEB認證。
[0026]所述主機路由表項生成模塊,還用于在生成所述第二主機路由表項后,在所述第二主機路由表項中包含的IP地址相對應的終端通過認證時,根據所述IP地址相對應的終端的認證信息更新所述第二主機路由表項。
[0027]利用終端的認證信息更新主機路由表項,可確保將IP數據包發送給通過認證的合法的終端。
[0028]所述設備還包括:主機路由表項查找模塊,用于從所述路由表包含的除包含所述主機路由表項生成設備的IP地址的主機路由表項外的其他主機路由表項中,查找包含所述目的IP地址的主機路由表項;響應模塊,用于在主機路由表項查找模塊查找到包含所述目的IP地址的主機路由表項時,向所述終端發送ARP應答報文;在主機路由表項查找模塊查找不到包含所述目的IP地址的主機路由表項時,丟棄所述ARP請求報文。根據事先生成的主機路由表項,在查找到包含目的IP地址的主機路由表項時,直接向發送ARP請求報文的終端發送ARP應答報文,可減少ARP報文的處理過程。
[0029]所述設備還包括:確定模塊,用于在主機路由表項查找模塊從所述其他主機路由表項中查找包含所述目的IP地址的主機路由表項之前,確定出所述源IP地址和所述目的IP地址屬于同一個Super VLAN。如此,即可確保處于同一個Super VLAN下終端間才可進行通信。【專利附圖】
【附圖說明】
[0030]圖1為現有技術中基于Super VLAN的網絡架構示意圖;
[0031]圖2為本發明實施例中基于Super VLAN的網絡架構示意圖;
[0032]圖3為本發明實施例一中主機路由表項生成方法的步驟示意圖;
[0033]圖4為本發明實施例二中對ARP請求報文進行應答的步驟示意圖;
[0034]圖5為本發明實施例三中主機路由表項生成設備的結構示意圖。
【具體實施方式】
[0035]本發明實施例的方案在接收到終端發送的ARP請求報文時,直接根據該終端的認證信息生成主機路由表項,可有效避免ARP欺騙。并且,相對于現有技術中在根據ARP監測表項對ARP請求報文驗證通過后根據ARP表項生成主機路由表項的方案,本發明實施例的方案可不生成ARP監測表項,因此,在達到有效避免ARP欺騙的技術效果的基礎上,可減少資源消耗。
[0036]本發明實施例中基于Super VLAN的網絡架構示意圖如圖2所示。本發明實施例方案中的交換機為三層交換機,且每個端口均配置為Trunk 口,可根據每個端口承載的用戶終端數動態為每個端口劃分VLAN,理論上每個端口最多可承載的用戶終端數量為4094個。為了保證不同用戶終端之間不能進行二層通信,本發明實施例的方案針對一個端口下的不同用戶終端分別配置不同的Sub VLAN。例如,圖2中交換機的端口 I下的4個終端分別處于4個不同的Sub VLAN中,因此,PC1、PC2、PC3、PC4之間均不能直接進行通信。
[0037]進一步地,為了防止兩個端口之間相同的VLAN標識號下的用戶終端(如圖2中的PCl和PC5)之間相互轉發報文,本發明實施例的方案設置端口之間不能二層轉發報文,由此可以確保Super VLAN下任何用戶終端之間的通信都需要通過交換機的認證,由交換機進行數據包的轉發。
[0038]按照圖2所示的網絡架構,本發明實施例的方案可根據端口號和VLAN標識號的組合唯一地標示每個用戶終端。
[0039]需要說明的是,本發明實施例方案中的交換機包含多個線路卡,每個線路卡上有一組端口,每個端口可承載上千個用戶終端,每個線路卡均攤整機的用戶終端數。
[0040]基于圖2的網絡架構,下面對本發明實施例的方案進行詳細描述,但本發明不局限于下面的實施例。
[0041]實施例一:
[0042]如圖3所示,為本發明實施例一中主機路由表項生成方法的步驟示意圖,所述方法主要包括以下步驟:
[0043]步驟101:交換機獲得終端發送的ARP請求報文。
[0044]本步驟101的具體實現方式為:
[0045]源終端在需要向目的終端發送數據包時,源終端通過查找自身存儲的ARP表項發現沒有目的終端的IP地址所對應的MAC地址,則向交換機發送一個ARP請求報文,該ARP請求報文中包含源IP地址(即源終端的IP地址,比如可以假設為IP_PC1)、源MAC地址(即源終端的MAC地址,比如可以假設為MAC_PC1 )、源終端所在VLAN的VLAN標識號(假設為VLANID_PC1)以及目的IP地址(即目的終端的IP地址,比如可以假設為IP_PC2)。
[0046]此時,交換機中的線路卡接收到源終端發送的ARP請求報文后,將該ARP請求報文發送至交換機的管理板。
[0047]步驟102:該交換機根據該ARP請求報文中的源IP地址,判斷該交換機中是否存儲有包含該源IP地址的認證信息,若是,則轉至步驟103 ;若否,則轉至步驟104。
[0048]在通過執行步驟101而實現交換機獲得源終端的ARP請求報文后,是由交換機的管理板根據該ARP請求報文中的源IP地址,判斷管理板中是否存儲有包含該源IP地址的認證信息。
[0049]具體地,上述認證信息一般是在終端通過交換機認證后保存下來的。所有通過認證的終端均會在交換機的管理板上生成一條認證信息。其中,該認證信息中包含通過認證的終端的MAC地址、為該終端分配的IP地址、VLAN標識號以及端口號,其具體認證方式不限于802.1X認證、WEB認證。
[0050]若交換機的管理板在存儲的認證信息中找到了包含有該ARP請求報文中的源IP地址的認證信息,表示發送該ARP請求報文的終端(即源終端)是之前已經通過認證的終端,則轉至步驟103 ;否則,轉至步驟104。例如,假設ARP請求報文中的源IP地址為IP_PC1,而交換機的管理板中有一條認證信息中包含:IP_PC1、MAC_PC1、VLAN ID_PC1、P0RT_PC1,則確定該交換機中存儲有包含該源IP地址的認證信息。
[0051]需要說明的是,本發明實施例的方案并不限于根據ARP請求報文中源IP地址查找與該源IP地址相匹配的認證信息,也可根據ARP請求報文中的源IP地址、VLAN標識號以及接收該ARP請求報文的端口的端口號查找與上述三者信息均匹配的認證信息。
[0052]步驟103:交換機根據該認證信息中包含的源IP地址、MAC地址、VLAN標識號以及端口號,在該交換機所存儲的路由表中生成包含該源IP地址、MAC地址、VLAN標識號以及端口號的第一主機路由表項。至此,完成對主機路由表項的生成,流程結束。
[0053]在步驟102中,當交換機在存儲的認證信息中找到了包含有該源IP地址的認證信息時,可以由交換機的管理板根據該認證信息,在存儲的路由表中生成與該認證信息相對應的主機路由表項。例如,假設該認證信息中包含:IP_PC1、MAC_PC1、VLAN ID_PC1、P0RT_PC1,則本次生成的主機路由表項中包含IP_PC1、MAC_PC1、VLAN ID_PC1、P0RT_PC1的信息。此時,交換機的管理板生成了源終端的主機路由表項,之后,如果有IP數據包需要發送給該終端,則交換機可根據該主機路由表項轉發該IP數據包給該終端。
[0054]需要說明的是,本步驟103在生成第一主機路由表項的同時,根據ARP請求報文中包含的源IP地址、源MAC地址和VLAN標識號生成ARP表項。
[0055]通過執行本步驟103,交換機的管理板存儲的路由表中包含了本次最新生成的第
一主機路由表項。
[0056]步驟104:交換機根據該ARP請求報文中包含的源IP地址、源MAC地址和VLAN標識號生成ARP表項,并根據該ARP表項在路由表中生成第二主機路由表項。至此,完成對主機路由表項的生成,流程結束。
[0057]在步驟102中,當交換機在存儲的認證信息中沒有找到包含有該源IP地址的認證信息時,可以由交換機的管理板根據該ARP請求報文中包含的源IP地址、源MAC地址和VLAN標識號生成ARP表項,并根據該ARP表項在路由表中生成第二主機路由表項。第二主機路由表項中包含該ARP表項中包含的源IP地址、源MAC地址和VLAN標識號,以及端口號。其中,該端口號是接收該ARP請求報文的端口的端口號,可以按照現有技術根據ARP表項中包含的源MAC地址和VLAN標識號獲得,也可以根據交換機接收該ARP請求報文的端口確定。
[0058]需要說明的是,本步驟104是可選步驟,本步驟104生成主機路由表項的目的在于在終端進行認證前為終端分配IP地址以便于終端能夠連接到WEB認證服務器進行WEB認證,因為WEB認證成功的前提是交換機中存儲有該終端的主機路由表項。
[0059]本步驟104是根據ARP表項生成第二主機路由表項的,為了確保主機路由表項中的信息是合法的,在生成第二主機路由表項后,后續如果有與該第二主機路由表項中包含的IP地址相對應的終端通過認證,交換機保存了該終端的認證信息,則根據該終端的認證
息更新第二主機路由表項。
[0060]需要說明的是,本發明實施例方案中的主機路由表項可用于IP數據包的轉發,但是如果交換機中當前沒有存儲該主機路由表項中的MAC地址所對應的終端的認證信息(即該終端沒有通過認證),則交換機還是不會把IP數據包發送給該終端。
[0061]本發明實施例一以終端的認證信息已添加或未添加,而此時接收到該終端發送的ARP請求報文的情況為例對主機路由表項的生成時機進行了詳細說明,其他情況可參考如表I所示的內容。其中,表I中的ARP表項是在接收到一條ARP請求報文后,根據該ARP請求報文中包含的源IP地址、源MAC地址和VLAN標識號生成的。
[0062]表1:
[0063]
【權利要求】
1.一種主機路由表項生成方法,其特征在于,所述方法包括: 交換機獲得終端發送的地址解析協議ARP請求報文; 所述交換機根據所述ARP請求報文中的源因特網協議IP地址,判斷所述交換機中是否存儲有包含所述源IP地址的認證信息; 若判斷結果為是,則根據所述認證信息中包含的所述源IP地址、介質訪問控制MAC地址、虛擬局域網VLAN標識號以及端口號,在所述交換機所存儲的路由表中生成包含所述源IP地址、所述MAC地址、所述VLAN標識號以及所述端口號的第一主機路由表項。
2.如權利要求1所述的主機路由表項生成方法,其特征在于,所述方法還包括: 若判斷結果為否,則·根據所述ARP請求報文中包含的源IP地址、源MAC地址和VLAN標識號生成ARP表項; 根據所述ARP表項在所述路由表中生成第二主機路由表項。
3.如權利要求2所述的主機路由表項生成方法,其特征在于,所述方法還包括: 在生成所述第二主機路由表項后,在所述第二主機路由表項中包含的IP地址相對應的終端通過認證時,根據所述IP地址相對應的終端的認證信息更新所述第二主機路由表項。
4.如權利要求1所述的主機路由表項生成方法,其特征在于,所述方法還包括: 所述交換機根據所述ARP請求報文中的目的IP地址,從所述路由表包含的除包含所述交換機的IP地址的主機路由表項外的其他主機路由表項中,查找包含所述目的IP地址的主機路由表項; 若查找到包含所述目的IP地址的主機路由表項,則向所述終端發送ARP應答報文; 若查找不到包含所述目的IP地址的主機路由表項,則丟棄所述ARP請求報文。
5.如權利要求4所述的主機路由表項生成方法,其特征在于,在所述交換機根據所述目的IP地址,從所述其他主機路由表項中查找包含所述目的IP地址的主機路由表項之前,所述方法還包括: 所述交換機確定出所述源IP地址和所述目的IP地址屬于所述交換機下的同一個Super VLAN。
6.一種主機路由表項生成設備,其特征在于,所述設備包括: 獲得模塊,用于獲得終端發送的ARP請求報文; 判斷模塊,用于根據所述ARP請求報文中的源IP地址,判斷所述主機路由表項生成設備是否存儲有包含所述源IP地址的認證信息; 主機路由表項生成模塊,用于在判斷模塊的判斷結果為存儲有包含所述源IP地址的認證信息時,根據所述認證信息中包含的所述源IP地址、MAC地址、VLAN標識號以及端口號,在所述主機路由表項生成設備所存儲的路由表中生成包含所述源IP地址、所述MAC地址、所述VLAN標識號以及所述端口號的第一主機路由表項。
7.如權利要求6所述的主機路由表項生成設備,其特征在于, 所述主機路由表項生成模塊,還用于判斷模塊的判斷結果為沒有存儲包含所述源IP地址的認證信息時,根據所述ARP請求報文中包含的源IP地址、源MAC地址和VLAN標識號生成ARP表項,并根據所述ARP表項在所述路由表中生成第二主機路由表項。
8.如權利要求7所述的主機路由表項生成設備,其特征在于,所述主機路由表項生成模塊,還用于在生成所述第二主機路由表項后,在所述第二主機路由表項中包含的IP地址相對應的終端通過認證時,根據所述IP地址相對應的終端的認證信息更新所述第二主機路由表項。
9.如權利要求6所述的主機路由表項生成設備,其特征在于,所述設備還包括: 主機路由表項查找模塊,用于從所述路由表包含的除包含所述主機路由表項生成設備的IP地址的主機路由表項外的其他主機路由表項中,查找包含所述目的IP地址的主機路由表項; 響應模塊,用于在主機路由表項查找模塊查找到包含所述目的IP地址的主機路由表項時,向所述終端發送ARP應答報文;在主機路由表項查找模塊查找不到包含所述目的IP地址的主機路由表項時,丟棄所述ARP請求報文。
10.如權利要求9所述的主機路由表項生成設備,其特征在于,所述設備還包括: 確定模塊,用于在主機路由表項查找模塊從所述其他主機路由表項中查找包含所述目的IP地址的主機路由表項之前,確定出所述源IP地址和所述目的IP地址屬于同一個Super VLAN。
【文檔編號】H04L12/741GK103441932SQ201310388895
【公開日】2013年12月11日 申請日期:2013年8月30日 優先權日:2013年8月30日
【發明者】黃米青 申請人:福建星網銳捷網絡有限公司