一種基于sdn的網絡拓撲發現方法和系統的制作方法
【技術領域】
[0001] 本發明實施例涉及通信技術領域,尤其涉及一種基于SDN(Software Defined Network,軟件定義網絡)的網絡拓撲發現方法和系統。
【背景技術】
[0002]網絡設備的種類日益繁多且各自的配置錯綜復雜,為了使不同廠商的設備能夠在 網絡中相互發現并交互各自的系統及配置信息,需要有一個標準的信息交流平臺。
[0003] LLDP(Link Layer Discovery Protocol,鏈路層發現協議)提供了一種標準的鏈 路層發現方式,可以將本端設備的主要能力、管理地址、設備標識、接口標識等信息組織成 不同的TLV(Type/Length/Value,類型/長度/值),并封裝在LLDF*DU(Link Layer Discovery Protocol Data Unit,鏈路層發現協議數據單元)中發布給與自己直連的鄰居,如圖1所示, 鄰居收到這些信息后將其以標準MIB(Management Information Base,管理信息庫)的形式 保存起來,以供網絡管理系統查詢及判斷鏈路的通信狀況。
[0004] LLDP是一個用于信息通告和獲取的協議,具體過程如下:初始化并維護本地MIB庫 中的信息;從本地MIB庫中提取信息,并將信息封裝到LLDP幀中,其中LLDP幀的發送有兩種 觸發方式,一是定時器到期觸發,一是設備狀態發生了變化觸發;識別并處理接收到的 LLDTOU幀;維護遠端設備LLDP MIB信息庫;當本地或遠端設備MIB信息庫中有信息發生變化 時,發出通告事件。但是,LLDP僅是一種鄰近發現協議,為以太網網絡設備,如交換機、路由 器和無線局域網接入點定義了一種標準的方法,使其可以向網絡中其他節點公告自身的存 在,并保存各個鄰近設備的發現信息,但無法獲取全網的鏈路信息。但是,發送的信息通告 不需要確認,不能發送一個請求來請求獲取某些信息,也就是說LLDP是一個單向的協議,只 有主動通告一種工作方式,無需確認,不能查詢、請求。
【發明內容】
[0005] 本發明實施例提供一種基于SDN的網絡拓撲發現方法和系統,能夠獲取全網的端 口鏈接信息庫,從而構建全網的網絡拓撲結構。
[0006] 本發明實施例提供一種基于SDN的網絡拓撲發現方法,所述方法應用于SDN中,包 括:控制器預先配置SDN網絡拓撲發現選項,所述SDN網絡拓撲發現選項包括SDN網絡拓撲發 現開關項、協議數據單元報文周期時間和Experimenter消息周期時間;根據所述協議數據 單元報文周期時間,SDN中的交換機和鄰居交換機交互私有協議數據單元報文,根據接收到 的所述協議數據單元報文,各個交換機維護自己的端口鏈接信息庫;根據Experimenter消 息周期時間,SDN中的交換機向控制器發送私有Experimenter消息,所述私有Experimenter 消息包括所述交換機的MAC地址和端口鏈接信息庫;控制器根據所述交換機的MAC地址和端 口鏈接信息庫更新全網端口鏈接信息庫,并將所述全網端口鏈接信息庫中的各個端口鏈接 信息庫進行關聯,生成網絡拓撲。
[0007] 進一步地,所述交換機的端口鏈接信息庫包括本地端口、遠端端口、遠端設備id和 鏈路速率;所述控制器的全網端口鏈接信息庫包括交換機的MAC地址和端口鏈接信息庫。
[0008]進一步地,所述私有協議數據單元報文擴展了端口鏈路字段,所述端口鏈路字段 包括發送端口,低位發送端設備id、高位發送端設備id和鏈路速率;根據接收到的所述協議 數據單元報文,各個交換機維護自己的端口鏈接信息庫,包括:當接收到鄰居交換機發送的 所述協議數據單元報文后,交換機用所述協議數據單元報文中的發送端口填寫自己的端口 鏈接信息庫中的遠端端口,用所述協議數據單元報文中的發送端設備id填寫自己的端口鏈 接信息庫中的遠端設備id,用所述協議數據單元報文的鏈路速率填寫自己的端口鏈接信息 庫中的鏈路速率。
[0009] 進一步地,所述私有Experimenter消息擴展了交換機的MAC地址和端口鏈路條目, 所述交換機的MAC地址作為交換機的標識符,所述端口鏈路條目用于攜帶端口鏈接信息庫 的內容;所述根據Experimenter消息周期時間,SDN中的交換機向控制器發送私有 Experimenter消息,包括:在所述Experimenter消息周期時間內,判斷交換機的端口鏈接信 息庫是否變化,如果發生變化,則交換機向控制器發送私有Experimenter消息;如果沒有發 生變化,則當所述Experimenter消息周期時間到達時,交換機向控制器發送私有 Experimenter 消息。
[0010] 進一步地,所述控制器根據所述交換機的MAC地址和端口鏈接信息庫更新全網端 口鏈接信息庫,包括:控制器獲取Experimenter消息中的交換機的MAC地址,根據所述交換 機的MAC地址查找所述全網端口鏈接數據庫,如果查找到,則在所述全網端口鏈接數據庫中 更新所述交換機的MAC地址對應的端口鏈接數據庫;如果沒有查找到,則在所述全網端口鏈 接數據庫中增加所述交換機的MAC地址和端口鏈接數據庫。
[0011] 進一步地,所述將所述全網端口鏈接信息庫中的各個端口鏈接信息庫進行關聯, 生成網絡拓撲,包括:所述全網端口鏈接信息庫至少包括第一端口鏈接數據庫和第二端口 鏈接數據庫,如果第一端口鏈接數據庫中的遠端端口和第二端口鏈接數據庫中的本地端口 匹配,則將第一端口鏈接數據庫和第二端口鏈接數據庫進行單向鏈路關聯;如果第一端口 鏈接數據庫中的遠端端口和第二端口鏈接數據庫中的本地端口匹配,且第一端口鏈接數據 庫中的本地端口和第二端口鏈接數據庫中的遠端端口匹配,則將第一端口鏈接數據庫和第 二端口鏈接數據庫進行雙向鏈路關聯;控制器根據全網端口鏈接信息庫中的各個端口鏈接 數據庫的關聯信息,生成網絡拓撲
[0012] 本發明還提供了一種基于SDN的網絡拓撲發現系統,包括:控制器,用于預先配置 SDN網絡拓撲發現選項,所述SDN網絡拓撲發現選項包括SDN網絡拓撲發現開關項、協議數據 單元報文周期時間和Experimenter消息周期時間;交換機,用于根據所述協議數據單元報 文周期時間,和鄰居交換機交互私有協議數據單元報文,根據接收到的所述協議數據單元 報文,維護自己的端口鏈接信息庫;根據Experimenter消息周期時間,向控制器發送私有 Experimenter消息,所述私有Experimenter消息包括所述交換機的MAC地址和端口鏈接信 息庫;所述控制器,還用于根據所述交換機的MAC地址和端口鏈接信息庫更新全網端口鏈接 信息庫,并將所述全網端口鏈接信息庫中的各個端口鏈接信息庫進行關聯,生成網絡拓撲。 [00 13]本發明實施例基于SDN架構,在控制器上預先配置SDN網絡拓撲發現選項;擴展了 PDU報文,通過交換機交互PDU報文來維護自己的端口鏈接信息庫;擴展了Experimenter消 息,控制器根據交換機發送Experimenter消息,能夠獲取SDN全網的端口鏈接信息庫,并將 全網端口鏈接信息庫中的各個端口鏈接信息庫進行關聯,生成網絡拓撲。
【附圖說明】
[0014]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面