【正文】
詳細(xì)的業(yè)務(wù)關(guān)系如圖 所示。接口管理和 Linux 內(nèi)核之間是通過虛擬網(wǎng)卡驅(qū)動(dòng)或 link socket 實(shí)現(xiàn)。應(yīng)用與應(yīng)用這是進(jìn)程或線程之間的通信多使用本地 socket。AX7000 從根本上說只有應(yīng)用、接口管理層面、Linux 內(nèi)核、硬件系統(tǒng)這四個(gè)方面。詳細(xì)的業(yè)務(wù)關(guān)系如圖 所示。這一業(yè)務(wù)的實(shí)現(xiàn)主要是通過硬件驅(qū)動(dòng)實(shí)現(xiàn)。兩個(gè)硬件在接口管理的軟件設(shè)計(jì)中被封裝成一個(gè)設(shè)備,給用戶的感覺只是面板上的端口編號(hào)不同而已。 用戶交互界面接口管理層面協(xié)議層面C a v i u m網(wǎng)卡L i n u x虛擬驅(qū)動(dòng)M a r v e l l芯片D B u sD B u s圖 用戶配置業(yè)務(wù)圖2. 接口管理處理報(bào)文。在這個(gè)業(yè)務(wù)處理過程中主要用到了 DBus 技術(shù)。根據(jù)不同的接口類型進(jìn)行設(shè)置時(shí),消息分發(fā)也是不同的,這期間有用戶命令直接到協(xié)議,有通過接口管理進(jìn)行轉(zhuǎn)發(fā)到協(xié)議或直接到硬件網(wǎng)卡驅(qū)動(dòng)和芯片。AX7000 要使用于各種網(wǎng)絡(luò)拓?fù)洌瑒t它需要處理多種配置。其他核上有自己的轉(zhuǎn)發(fā)軟件和控制命令行?;跓o線控制器的接口管理28…S y s t e m T a b l eService CoerShell RelayBuiltin HTTP GUIWirelessXORPBridging protocolsMarvell DriverD e b i a n S y s t e mC a v i u m P o r t N I CL i n u x K e r n e lM a r v e l lP o r t N I CForwarding SoftwareShellC a v i u m S i m p l eE x e c u t i v eForwarding SoftwareShellC a v i u m S i m p l eE x e c u t i v eUserSpaceKernelSpaceS h a r e M e m o r yA c c e s s圖 AX7000 軟件總體架構(gòu)上圖中可以看出,軟件的設(shè)計(jì)主要集中在 CPU 的一個(gè)控制核上。因此在測(cè)試時(shí)分成兩個(gè)步驟,首先是命令的縱向測(cè)試,看命令配置過程是否正確;其次是命令橫向測(cè)試,這主要是命令效果的測(cè)試,也就是這個(gè)命令對(duì)轉(zhuǎn)發(fā)的影響是否正確??v向功能就像是一個(gè)個(gè)的閥門,橫向就如同一個(gè)管道。根據(jù)接口實(shí)現(xiàn)上層的命令行,接口管理函數(shù),底層芯片操作,這是一個(gè)從上到下的縱向過程。命令行模塊肯定要以一個(gè)獨(dú)立的進(jìn)程存在,那么命令行和接口管理方面的通信就是一個(gè)大問題,Linux 下的 DBus 技術(shù)正好可以解決這個(gè)問題。在 Linux 操作系統(tǒng)的前提下,最終選用開源并且比較穩(wěn)定、安全的 Quagga 軟件來完成這方面的功能。由于 CPU 是MIPS 架構(gòu), 內(nèi)核完全可以支持這一架構(gòu),并且增強(qiáng)了對(duì)多核 CPU 的支持,修改了系統(tǒng)調(diào)度策略,而且是免費(fèi)使用減小開發(fā)成本,所以選用它來說很適合。P o r t V L A NI n t e r f a c e N a m eI n t e r f a c e A t t r i b u t e第四章 接口管理需求分析 27圖 接口與 Port 和 VLAN 之間的關(guān)系圖 接口管理建模AX7000 硬件結(jié)構(gòu)如第三章所示,使用了 16 核的 CPU,使用了兩塊高速轉(zhuǎn)發(fā)芯片,使用了高速網(wǎng)卡,因此在硬件層面 AX7000 已經(jīng)具有了超強(qiáng)的性能。無線模塊在管理 AP,和 AP 通信的過程,以及之間通信的協(xié)議都是基于 TCP 或 UDP 套接口,它是三層之上的功能,那么最終歸結(jié)下來仍是三層接口如何給它提供服務(wù),因此這些接口的管理仍是三層接口的管理。第三點(diǎn)是協(xié)議模塊,協(xié)議 RSTP/MSTP 的作用是去除網(wǎng)絡(luò)中的環(huán)形連接,IGMP 是 VLAN內(nèi)的組播管理協(xié)議,它們作為橋協(xié)議,仍舊是 Port 和 VLAN 之上的接口,不過會(huì)有基于端口的部分,也有基于 VLAN 的部分。對(duì)于簡(jiǎn)單的網(wǎng)卡只能基于 Port,對(duì)于交換芯片則可以是基于 Port 或 VLAN,所以最終的接口定義仍掛載在 Port 和 VLAN 上。Port 和 VLAN 是交換機(jī)的基礎(chǔ),通過對(duì)這兩個(gè)方面的管理可以實(shí)現(xiàn)最簡(jiǎn)單的網(wǎng)絡(luò)拓?fù)?,所?AX7000 以它們?cè)O(shè)計(jì)了接口管理方案。(1) ARP 信息(2) ROUTE 信息5. 無線模塊和有線模塊之間需要接口管理,實(shí)現(xiàn)不同模塊的融合。(1) Marvell 高速芯片驅(qū)動(dòng)(2) Cavim 網(wǎng)卡驅(qū)動(dòng)基于無線控制器的接口管理26(3) 虛擬網(wǎng)卡驅(qū)動(dòng)3. 各個(gè)不同的協(xié)議收包、發(fā)包、控制需要接口管理。接口命令應(yīng)從以下這幾個(gè)方面主要考慮:(1) SYSTEM(2) PORT(3) VLAN(4) INTERFACE(5) MIRROR(6) ACL(7) QoS 等等。它們之間的關(guān)系如下圖所示:P o r t V L A NN N圖 Port 和 VLAN 之間的關(guān)系綜上所述,接口管理在交換機(jī)的設(shè)計(jì)中很重要,是不可或缺的部分。并且以一種相對(duì)簡(jiǎn)潔的方法實(shí)現(xiàn),減少了數(shù)據(jù)結(jié)構(gòu)方面的存儲(chǔ)要求,也減少了接口交互之間的簡(jiǎn)便。不同的設(shè)計(jì)結(jié)構(gòu),則影響了不同的接口設(shè)計(jì)思路。還有就是端口從VLAN 刪除或添加到 VLAN 怎么處理以及這些個(gè)端口在 MSTP 和 IGMP 的狀態(tài)遷移又會(huì)怎么影響 VLAN 轉(zhuǎn)發(fā)。從上一節(jié)所引用的三層 VLAN 接口就可以看出。從這些可以看出 Juniper 公司對(duì)接口定義比較嚴(yán)格。Cisco 對(duì)接口定義最廣泛,因此也最混亂,讓用戶很難進(jìn)行配置,感覺什么都是接口。它的設(shè)計(jì)必須要能很好的管理交換機(jī),管理網(wǎng)絡(luò)拓?fù)洌WC數(shù)據(jù)高速正確轉(zhuǎn)發(fā)。還有無線網(wǎng)絡(luò)的實(shí)現(xiàn),路由的實(shí)現(xiàn)這些又需要傳輸層的功能,當(dāng)然還有對(duì)網(wǎng)絡(luò)的拓?fù)涞墓芾硪约捌渌N種特性功能,這么多的東西需要管理。有了前面的配置,則報(bào)文從某個(gè)物理端口進(jìn)入,就開始其在交換機(jī)的一個(gè)處理流程。正如前面所說的,命令行是接口管理提供給用戶的一個(gè)界面,這也是接口管理最直觀的體現(xiàn)。當(dāng)報(bào)文從一個(gè)端口進(jìn)入,在二層接口下會(huì)有特定的處理模式,在三層接口下又會(huì)有另外一種處理,到這時(shí)就有不同的分流,對(duì)于 WLAN 的報(bào)文或 RIP、OSPF 等的報(bào)文會(huì)送特定的協(xié)議去處理,對(duì)于多數(shù)的轉(zhuǎn)發(fā)報(bào)文則進(jìn)行路由查詢,進(jìn)入轉(zhuǎn)發(fā)隊(duì)列。TCP/IP 的協(xié)議棧模型,在 AX7000 中是通過兩塊高速轉(zhuǎn)發(fā)芯片實(shí)現(xiàn)。從橫向上來說接口管理就是根據(jù) TCP/IP 模型和交換機(jī)功能抽象出層次中的各個(gè)接口,并加以融合,實(shí)現(xiàn)不同接口之間的互訪。接口管理是交換機(jī)中的核心內(nèi)容,更是有線無線一體化交換機(jī)的開發(fā)的重中之重。當(dāng)然這些配置命令是有層次的,從端口的物理特性,例如端口自協(xié)商、流控、MTU、雙工/半雙工模式等等,到端口的虛擬接口的 IP 地址以及它的 ARP,路由信息。當(dāng)然這只是命令行上對(duì)接口命令的一般設(shè)計(jì)標(biāo)準(zhǔn),其次還有對(duì)端口的二層接口的配置,對(duì)VLAN 的配置,對(duì) MSTP 和 IGMP 等協(xié)議接口的配置以及對(duì) Route 和 ARP 學(xué)習(xí)基于無線控制器的接口管理24管理和顯示等等。以下便是是 AX7000 部分三層 VLAN 接口的配置命令:interface vlan 14094 創(chuàng)建一個(gè)基于 vlan 的三層接口no interface vlan 14094刪除一個(gè)基于 vlan 的三層接口interface IFNAME進(jìn)入配置接口的命令節(jié)點(diǎn)show interface顯示接口信息從以上命令上看這是一個(gè)三層接口,接口有創(chuàng)建、刪除、配置、顯示等普通的功能。接口最終從用戶的角度來看,是無線控制器提供給用戶的多個(gè)硬件網(wǎng)口,例如從轉(zhuǎn)發(fā)流量上分析有 GE 和 XG 口,從介質(zhì)上分就有 Cooper 口和 Fiber 口,用戶通過配置這些網(wǎng)口上的一些硬件或邏輯信息來實(shí)現(xiàn)網(wǎng)絡(luò)接入和數(shù)據(jù)轉(zhuǎn)發(fā)。因此接口管理邏輯關(guān)系復(fù)雜,與系統(tǒng)軟硬件功能模塊緊密相關(guān),也是中高端交換機(jī)管理方式的定義。接口管理即對(duì)接口的管理,它包括了接口的定義,接口的組織,接口的操作等等。接口管理在交換機(jī)軟件中與其他模塊有很強(qiáng)的聯(lián)系,所以對(duì)于接口管理的設(shè)計(jì)需要很好的包容性和穩(wěn)定性。第四章 接口管理需求分析 23第四章 接口管理需求分析接口管理是交換機(jī)的核心軟件模塊。而另一方面的主要支撐就是基于這些硬件的軟件結(jié)構(gòu),接口管理就是這個(gè)架構(gòu)中的核心。圖 AX7000 實(shí)圖AX7000 有線無線一體化交換機(jī)具有的特點(diǎn):高度集成的有線無線一體化設(shè)計(jì);靈活,強(qiáng)大的混合組網(wǎng)能力;集中式 WLAN 交換和智能 RF 管理;Tripleplay(數(shù)據(jù) /音頻/視頻)實(shí)時(shí)支持;高達(dá) 88G 的數(shù)據(jù)交換。這就是接口管理所要做的的一部分工作。CPU 的板載網(wǎng)卡也提供 4*GE/SPF 口,這些口是通過 CPU 來進(jìn)行轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)主要是通過 Linux 內(nèi)核提供的 Linux TCP/IP 協(xié)議棧來進(jìn)行轉(zhuǎn)發(fā)。 S G M I I * 2 4B o o tF l a s hC P L DC O N S L ET e m p r e t u r eS e n s o rSLOT1SLOT2SLOT3SLOT4PCMCIASD4 * G E / S F P( C O M B O )1 X F P o r 6 G E o r 6 S F P… …圖 AX7000 硬件架構(gòu)圖如上圖所顯示,AX7000 的兩塊交換芯片引出了四個(gè)插槽。AX7000 的硬件架構(gòu)圖 [26]如下:C N 5 8 X X / 3 8 X XD D R 26 6 7 M H zR L D R A MD D R 2 S D R A M6 6 7 M H zH y p e r A c c e s s L o w L a t e n c yM e m o r y C o n t r o l l e rRGMII*4I C 2B o o t B u sU A R TS P I P C IM V 8 2 2 1 0R 5 C 8 1 18 8 E 1 1 4 5S P ICPUINTERRCEX A U IPCIR G M I IS w i t h c ( 9 8 D X 8 0 4 amp。除普通的交換管理功能外,該處芯片有特點(diǎn)如下:無阻塞,全線速性能;最優(yōu)的 MAC 地址配置空間;第三章 無線控制器體系結(jié)構(gòu) 21通過 PCI 或 MII/RGMII 管理;先進(jìn)的 QoS,提供 4 到 8 個(gè)優(yōu)先級(jí)隊(duì)列;PCL 實(shí)現(xiàn) QoS 和安全管理;動(dòng)態(tài)管理片上存儲(chǔ)單元。AX7000 高速 ASIC 芯片采用 Marvell 公司的 DX 家族的 275 和 804 兩塊芯片。充分連貫的內(nèi)存系統(tǒng)。硬件 TCP 加速器,包括校驗(yàn)和和計(jì)數(shù)器。硬件包處理。數(shù)據(jù)加控制雙平面支持。集成高性能網(wǎng)絡(luò)接口:最大 410/100/1000 ether MACs(RGMII) 或者 接口。 物理體系結(jié)構(gòu)模塊AX7000 交換機(jī) CPU 采用 Cavium work 公司的 CN38XX,這是一款多MIPS64 核、集成多 I/O,硬件加速器等功能的網(wǎng)絡(luò)處理器。如果報(bào)文是特殊報(bào)文比如是 CAPWAP 或 RIP 或其他特殊報(bào)文,則報(bào)文通過接口管理模塊分流到相應(yīng)的應(yīng)用協(xié)議處理,報(bào)文到此處理結(jié)束。如果是可以二層轉(zhuǎn)發(fā),則直接被交換芯片轉(zhuǎn)發(fā)出去,這個(gè)報(bào)文的處理流程結(jié)束。針對(duì) AX7000 的設(shè)計(jì),對(duì)這些功能模塊的抽象可以很好理解網(wǎng)絡(luò)報(bào)文在AX7000 中的處理流程。5. 應(yīng)用層;主要分為無線網(wǎng)絡(luò)的協(xié)議和有線網(wǎng)絡(luò)的橋協(xié)議和路由協(xié)議以及配置命令行。3. 芯片驅(qū)動(dòng)模塊;使芯片在 Linux 系統(tǒng)上可正常運(yùn)轉(zhuǎn)。AX7000 的體系結(jié)構(gòu)如下圖所示: 無線協(xié)議B r i d g i n g p r o t o c o l s交互命令行應(yīng)用層接口管理芯片驅(qū)動(dòng)功能L i n u x O S硬件圖 AX7000 系統(tǒng)結(jié)構(gòu)圖如圖 所示,AX7000 功能模塊主要有以下模塊,1. 硬件模塊;硬件主要是指 Marvell 高速 ASIC 轉(zhuǎn)發(fā)芯片和多核并行 CPU。AX7000 是實(shí)習(xí)公司研發(fā)的高端產(chǎn)品,在有線網(wǎng)絡(luò)的基礎(chǔ)上實(shí)現(xiàn) WLAN,通過 AP 和交換機(jī)的 Capwap 隧道協(xié)議實(shí)現(xiàn)無線網(wǎng)絡(luò)的轉(zhuǎn)發(fā)、控制、管理。在第三層交換機(jī)中,與路由器有關(guān)的第三層路由硬件模塊也插接在高速背板/總線上,這種方式使得路由模塊可以與需要路由的其他模塊間高速地交換數(shù)據(jù),從