国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

關于 OpenFlow 網絡中的路由服務討論

云計算 路由交換
所謂OpenFlow網絡指的是相互連接的一組OpenFlow交換機的集合,并且這些交換機全部置于一個OpenFlow Controller或一個OpenFlow Controller的集群的管理之下。主機和OpenFlow網絡的連接方式直接影響OpenFlow網絡的路由設置,本文的討論包括三種最一般的情況。

[[134417]]

這里,所謂OpenFlow網絡指的是相互連接的一組OpenFlow交換機的集合,并且這些交換機全部置于一個OpenFlow Controller或一個OpenFlow Controller的集群的管理之下。OpenFlow網絡的路由服務指的是單純地將一個數據包(Packet)從一個主機(Host)送到另一個主機,而不是三層IP路由協議1:1的實現。而主機也即是路由的目的地,可以是物理服務器或虛擬機(VM, Virtual Machine)。按照SDN的數據平面和控制平面相分離的模式和集中式管理的系統結構,OpenFlow網絡的路由完全是由OpenFlow Controller根據用戶的路由策略(Policy)生成并安裝到每個OpenFlow交換機的Flow Table和Group Table的Flow Entry和Group Entry的集合來定義的。因此,本文假設讀者朋友對OpenFlow交換機和OpenFlow Controller的基本概念有所了解,可參考ONF(Open Network Foundation)給出的“OpenFlow Switch Specification”相關章節。本文的討論也以此文獻給出的定義作為基礎。

總體思路

主機和OpenFlow網絡的連接方式直接影響OpenFlow網絡的路由設置,本文的討論包括三種最一般的情況:第一,主機和OpenFlow網絡的交換機的端口直接相連,這是最簡單的情況;第二,主機通過二層網絡接入OpenFlow網絡;第三,主機途徑多個IP子網最終通過路由器和OpenFlow網絡相連,主機接入的網絡以及中間經過的網絡都是傳統的IP網絡,使用傳統的路由協議,如OSPF或BGP。為了敘述的方便,第一種連接方式和第二種連接方式下的主機看做OpenFlow網絡的內部主機,而第三種連接方式下的主機看做OpenFlow網絡的外部主機。所謂“外部”,這是因為OpenFlow網絡無法直接“感知”到主機的存在。如圖1所示。主機A與邊緣交換機(Edge Switch)ES1的端口3連接(第一種方式),主機B通過二層鏈路網絡(1.1.1.0/24)和邊緣交換機ES2的端口2連接(第二種方式),主機 C連入外部的IP網絡(3.3.3.0/24),路由器R是OpenFlow內部主機和外部主機通信的中介(第三種方式),和邊緣交換機ES3的端口2連接。

實現OpenFlow路由服務總的思路是:獲取主機的信息及其接入OpenFlow網絡的信息,計算主機之間的路徑,對于路徑上的每個交換機,通過下發的OpenFlow消息,改變它的Flow Table和Group Table來定義其轉發行為,最終實現主機到主機的路由和通信。這些基本上都是OpenFlow Controller或在它之上的網絡應用的功能。下文的討論將不加區分的統統視為OpenFlow Controller的功能。

主機和接入

為了實現主機之間的路由與通信,OpenFlow Controller必須首先獲取主機的相關信息。對于OpenFlow網絡的內部主機,需要獲取的信息包括:主機的IP地址,接入OpenFlow網絡的邊緣交換機及端口,以及主機的MAC地址。除了人工靜態配置之外,網絡的Orchestration系統可提供主機的IP地址和接入到OpenFlow 網絡的交換機及其端口,網絡的Orchestration系統管理服務器和虛擬機在網絡上的部署。比如,在云計算的數據中心,網絡管理員可以通過 OpenStack這樣的Orchestration系統為客戶定制IP子網。這樣,IP子網中每個主機的IP地址和相連接的交換機及其端口的數據通過 OpenStack的插件傳遞給Controller。而主機的MAC地址就需借助于ARP來動態獲取。例如,在圖1中,假設有一個發往主機A的數據包,但不知道主機A的MAC地址。此時,Controller可通過packet_out消息令邊緣交換機ES1向端口3發送一個ARP請求,交換機ES1接收到主機A的回復報文后,因為它的Flow Table中沒有和ARP報文匹配的Flow Entry,所以,缺省地,ES1將這個ARP回復報文打包成packet_in消息,發送給OpenFlow Controller。OpenFlow Controller解析這個報文,即可得到主機A的MAC地址。

對于OpenFlow網絡的外部主機,OpenFlow Controller必須知道:和OpenFlow網絡直接相連的路由器的IP地址和MAC地址,連接路由器的OpenFlow網絡的邊緣交換機和端口,外部主機所在子網的IP地址(Prefix)和掩碼。路由器的IP地址和MAC地址,以及接入OpenFlow網絡的邊緣交換機和端口可按照上文描述的方式得到。而獲取外部主機的IP子網的地址和掩碼的功能則是由虛擬路由器(Virtual Router)來完成的。如圖1所示,主機C所在的子網的IP地址和掩碼(3.3.3.0/24)經過傳統的分布式IP路由系統最終傳遞給路由器R。通過 In Band或Out Of Band的方式,R和虛擬路由器事先建立了會話,如BGP會話,并交換路由可達信息。于是,虛擬路由器得到3.3.3.0/24的可達信息后,最終遞交給 OpenFlow Controller。有一些開源的程序可用來實現虛擬路由器,如Xorp、Quagga、ExaBGP等。一般地,虛擬路由器和外部的路由器的會話使用 BGP協議。關于虛擬路由器的細節不是本文討論的重點。

拓撲和路徑

控制平面和數據平面的分離,形成以OpenFlow Controller為中心的集中的控制平臺。OpenFlow網絡中所有的交換機都在OpenFlow Controller的監管之下,于是,OpenFlow Controller就有機會掌握全局的網絡拓撲視圖以及每個交換機的狀態。這樣,OpenFlow Controller就能夠更聰明地按照用戶的路由策略來及時調整每個交換機的轉發行為,從而更容易的實現如流量工程(Traffic Engineering)和快速故障恢復(Fail Over)這樣的高級功能。這也是SDN的優勢之所在。

一般地,OpenFlow Controller借助LLDP(Link Layer Discovery Protocol)協議發現OpenFlow交換機之間的連接狀態。LLDP協議廣泛地用于網絡設備廣播自己的ID,能力(Capabilities)和鄰居。LLDP具有專用的MAC廣播地址和EtherType,這樣,OpenFlow Controller可以輕而易舉的識別LLDP報文。網絡拓撲的發現由OpenFlow Controller發起,OpenFlow Controller推送給每個OpenFlow交換機一個packet_out消息,指示交換機向所有的端口發出LLDP報文。與此同時,收到LLDP 報文的交換機也會向它的所有的端口發送LLDP報文。然而,收到LLDP報文的交換機的Flow Table中沒有和LLDP報文匹配的Flow Entry。因此,它就把收到的LLDP報文封裝為packet_in消息發送給OpenFlow Controller。OpenFow Controller分析這些LLDP的報文,就能夠知道交換機之間誰和誰通過哪個端口連接在一起。最終,OpenFlow Controller得到網絡的完整的拓撲結構。

在OpenFlow網絡的路由服務中,發現拓撲的目的是為了計算從一個邊緣交換機到另一個邊緣交換機之間的路徑。為了討論的方便,我們假設路由服務僅使用最短路徑(Shortest Path)的策略。盡管這是最簡單的情況,但可以舉一反三地靈活運用這里給出的基本的原理和方法,實現更高級的更有價值的網絡路由策略。網絡的拓撲表現在數據結構上,就是一個圖(Graph)。眾所周知,給定一個像網絡拓撲的那樣的圖,計算兩點之間的最短路徑的算法就是大名鼎鼎的Dijkstra’s Algorithm。對于圖中一個源節點,該算法可一次計算出到達所有其他節點的最短路徑。算法的細節請參考Wikipedia的文檔:http://en.wikipedia.org/wiki/Dijkstra’s_algorithm。兩點之間的最短路徑也許并非只有一條,可能存在多條,我對此算法稍作擴展,能夠計算出兩點之間的所有最短路徑。我的另一篇博客給出了這一擴展算法的C++實現,可直接編譯運行。得到多條最短路徑,就可以實現類似于ECMP的流量均衡(Traffic Ba lance)的路由策略。

對應于圖1的情況,OpenFlow Controller使用Dijkstra’s Algorithm得到主機A到主機B經過OpenFlow網絡中的路徑如下,其中的數字代表入端口或出端口。

Path(A, B): (3, ES1, 1) -> (1, ES2, 2)

同樣地,主機A到主機C和主機C到主機B的路徑如下:

Path(A, C): (3, ES1, 2) -> (2, SW0, 1) -> (1, ES3, 2)

Path(C, B):(2, ES3, 1) -> (1, SW0, 3) -> (3, ES2, 2)

當然,相反方向路徑如Path(B, C)、Path(C, A)和Path(B, A)的計算自然也不在話下。

#p#

轉發和路由

有了主機和接入到邊緣交換機的信息,也能夠算出邊緣交換機到邊緣交換機的路徑。實現路由服務的最后一步是OpenFlow Controller向連接主機或子網的路徑上的每個OpenFlow交換機下發Flow Entries,改變交換機的轉發行為,以達到主機間通信的目的。如對于連接從主機A到主機B的路徑Path(A, B),下發到ES1和ES2的Flow Entry分別是:

  1. Switch ES1: 
  2.  
  3. match: src_ip = 2.2.2.2/32, dst_ip = 1.1.1.0/24, in_port = 3 
  4.  
  5. action: out_port = 1 
  6.  
  7. Switch ES2: 
  8.  
  9. match: src_ip = 2.2.2.2/32, dst_ip = 1.1.1.0/24, in_port = 1 
  10.  
  11. action: out_port = 2; eth_dst = 00:00:00:00:00:01 

這樣,從主機A發往主機B的一個IP數據包就可以依次經過交換機ES1和ES2到達網絡1.1.1.0/24。請注意,下發給交換機ES2的Flow Entry的action中,將把匹配到的數據包的目的MAC地址eth_dst更新為主機B的MAC地址。這樣,數據包才會被二層(Ethernet) 網絡正確地轉發到主機B。否則,數據包將被丟棄。

同樣地,內部主機A到外部主機C的路由可由下面的Flow Entry來定義:

  1. Switch ES1: 
  2.  
  3. match: src_ip = 2.2.2.2/32, dst_ip = 3.3.3.0/24, in_port = 3 
  4.  
  5. action: out_port = 2 
  6.  
  7. Switch SW0: 
  8.  
  9. match: src_ip = 2.2.2.2/32, dst_ip = 3.3.3.0/24, in_port = 2 
  10.  
  11. action: out_port = 1 
  12.  
  13. Switch ES3: 
  14.  
  15. match: src_ip = 2.2.2.2/32, dst_ip = 3.3.3.0/24, in_port = 1 
  16.  
  17. action: out_port = 2; eth_dst = 00:00:00:00:00:03 

不難發現,OpenFlow網絡把發往外部主機的數據包只送到相關的路由器,如上面例子中的路由器R。剩下的路由就交給外部的網絡了,因為外部網絡超出了OpenFlow Controller的控制范圍。

最好,再看一個相反方向的從外部主機C到內部主機B的路由的實現:

  1. Switch ES3: 
  2.  
  3. match: src_ip = 3.3.3.0/24, dst_ip = 1.1.1.0/24, in_port = 2 
  4.  
  5. action: out_port = 1 
  6.  
  7. Switch SW0: 
  8.  
  9. match: src_ip = 3.3.3.0/24, dst_ip = 1.1.1.0/24, in_port = 1 
  10.  
  11. action: out_port = 3 
  12.  
  13. Switch ES2: 
  14.  
  15. match: src_ip = 3.3.3.0/24, dst_ip = 1.1.1.0/24, in_port = 3 
  16.  
  17. action: out_port = 2; eth_dst = 00:00:00:00:00:01 

需要指出的是,上文給出的下發到OpenFlow交換機的Flow Entries只是OpenFlow Controller實現路由服務的一種可能的方案,這里只是用來示例。而不同的OpenFlow Controller下發的Flow Entries會有所不同,但基本的原理應是大同小異。

我想,OpenFlow網絡的路由服務的主要優點在于實現的靈活性,可根據實際的需求做具體的定制,而不受限于已有的路由協議標準和硬件基礎設施的制約。正是有了SDN數據平面和管理平面的分隔,這種網絡可編程的(Programable)靈活性才可能成為現實。

參考文獻

1. DEMYSTIFYING ROUTING SERVICES IN SOFTWARE-DEFINED NETWORKING @ http://www.aricent.com/sites/default/files/pdfs/Aricent-Demystifying-Routing-Services-SDN-Whitepaper.pdfa

責任編輯:Ophira 來源: OpensStack中國社區
相關推薦

2010-09-28 15:52:08

Cisco路由器DHC

2010-09-28 15:42:36

DHCP服務故障排除

2011-06-21 14:04:07

OpenFlow軟件定義網絡

2011-05-24 16:20:44

OpenFlow網絡組成

2012-02-22 10:36:35

OpenFlowOpenFlow網絡

2011-08-12 10:55:29

客戶服務物流平臺規劃

2011-05-24 16:01:51

OpenFlow影響

2011-11-09 13:06:48

OpenFlow

2009-08-27 16:30:10

interface繼承

2009-11-11 14:41:22

2011-07-04 16:40:39

QT 串口 QML

2013-02-18 09:16:41

路由器路由技術OpenFlow

2011-06-07 18:45:43

OpenFlowOpenFlow網絡

2013-05-20 15:45:12

CSS

2010-07-13 15:36:33

2011-05-19 15:51:54

測試專家

2011-11-02 09:04:15

Node.js

2013-05-10 09:40:46

OpenFlow標準接口協議SDN

2015-09-24 15:19:27

2011-05-27 13:49:56

OpenFlow軟件定義網絡
點贊
收藏

51CTO技術棧公眾號

欧美一级大黄| 国产福利电影| 91色视频在线| 官网99热精品| 欧美日韩午夜电影网| 色天使色偷偷av一区二区| 丝袜足脚交91精品| 日本欧美在线看| 久久久久日韩精品久久久男男| 亚洲一区在线日韩在线深爱| 99久久久无码国产精品| 成人毛片免费在线观看| 91在线观看高清| 亚洲熟妇无码另类久久久| 91性感美女视频| 国语自产精品视频在线看| 综合色就爱涩涩涩综合婷婷| 国产精品盗摄久久久| 91精品入口| 成人免费网站在线| 懂色av色香蕉一区二区蜜桃| 精品久久久久亚洲| 99精品久久久| 国产69精品久久久久久| 日本中文字幕视频在线| 国产日韩精品视频一区二区三区 | 999精品一区| 欧美最猛性xxxxx免费| 日韩和的一区二在线| 久久久久久中文字幕| 久久亚洲天堂| 国产日韩欧美综合| 欧美在线1区| 欧美视频1区| 国产精品国产三级国产a| 嘿咻视频在线看| 亚洲一区二区视频| 久久国产精品免费观看| 亚洲精品少妇30p| 婷婷成人激情| 韩曰欧美视频免费观看| 无码aⅴ精品一区二区三区浪潮| 欧美国产丝袜视频| 欧美一区成人| 欧美日韩一区二区在线免费观看| 蜜臀av国产精品久久久久| 全部a∨一极品视觉盛宴| 欧美高清无遮挡| 91捆绑美女网站| 伊人久久综合网另类网站| 国外成人免费在线播放 | 99国产精品视频免费观看一公开 | 欧美xxxbbb| 国产精品日韩电影| 99久久久国产| 国产精品福利网站| 久久久久久久久97黄色工厂| 国产精品二区二区三区| 国产在线不卡一区| 清纯唯美亚洲色图| 久久久久久一区二区三区| www.在线成人| 超碰在线影院| 亚洲国产91色在线| 国内精品久久久久久久影视蜜臀 | 欧美日韩国产亚洲沙发| 国产99在线|中文| 国产一区二区三区不卡在线观看| 啊啊啊久久久| 国产亚洲精品久久久久久久| 奇米色一区二区| 欧美三级精品| 亚洲一区在线直播| 日韩精品免费在线| 亚洲一区二区三区四区| 久久免费视频在线| 亚洲尤物在线| 国产一区亚洲二区三区| 亚洲免费观看在线观看| 国产欧美久久久久久久久| 免费97视频在线精品国自产拍| 欧美日韩国产高清| 久久久久久www| 日本道在线观看一区二区| 色成人免费网站| 波多野结衣一区二区三区在线观看| 成人午夜免费视频| 国产视频福利在线| 97国产真实伦对白精彩视频8| 日本特黄久久久高潮| av成人动漫| 久久夜色精品国产欧美乱| 天堂成人国产精品一区| 色视频在线播放| 萌白酱国产一区二区| 国产欧美成人| 毛片一级免费一级| 日韩专区中文字幕| 一本综合久久| 久草在线新资源| 欧美巨大黑人极品精男| 久久国产综合精品| 欧美边添边摸边做边爱免费| 青青草国产精品一区二区| 成人免费高清在线| 18av在线播放| 成人国产一区二区| 亚洲成人免费观看| 欧美wwwsss9999| 国产免费一区二区三区视频| 日韩激情av在线播放| 亚洲综合国产| 看电影就来5566av视频在线播放| 欧美国产日韩一区二区| 国内精品久久久久影院色 | 国产成人av一区二区三区在线| 福利在线播放| 国产精品99久久久久久白浆小说| 久久精品在线免费观看| 国产精品黄色片| 国产精品国三级国产av| 亚洲国产中文字幕在线观看| 黄色在线成人| 国产粉嫩一区二区三区在线观看| 成人做爽爽免费视频| 亚洲高清免费一级二级三级| 日韩aaaa| 黄色软件在线| 国产一区二区三区免费不卡| 欧美影片第一页| 亚洲一级在线| 中文国产字幕在线观看| 性欧美videosex高清少妇| 精品国产伦一区二区三区观看方式| 免费亚洲婷婷| 99热99re6国产在线播放| 欧美日韩国产不卡在线看| 欧美一区二区久久| 日本中文字幕一区| 69久成人做爰电影| 成年女人18级毛片毛片免费| 久久视频在线视频| 中文字幕va一区二区三区| 秋霞在线一区| 尤物视频网站在线观看| 成人在线看片| 日韩欧美成人激情| 国产成人精品免费网站| 日韩毛片免费视频一级特黄| 中文字幕亚洲乱码| 国产主播精品在线| 3d成人h动漫网站入口| 热久久国产精品| 电影亚洲精品噜噜在线观看| 精品久久久久av| 国产精品视频久| 欧美久久久一区| 国产精品1区二区.| 91综合精品国产丝袜长腿久久| www免费在线观看视频| 久久久久久国产精品mv| 国产婷婷97碰碰久久人人蜜臀| 99精品1区2区| 清纯唯美综合亚洲| 手机在线免费看av| 国产91在线免费| 成人看片人aa| 日韩国产一区三区| 中文字幕一区二区三中文字幕| 国产伊人精品| 精品久久在线| 中文字幕av在线播放| 亚洲欧美99| 欧美中在线观看| 欧美大胆人体bbbb| 国产精品嫩草影院av蜜臀| 亚洲经典三级| 欧美成人一级| caoporn国产精品免费视频| 91成人综合网| 91免费高清视频| 中文一区二区视频| 香蕉影视欧美成人| 国产一区二区成人久久免费影院 | 黄色av免费在线观看| 国产成人亚洲综合无码| 国产suv精品一区二区| 亚洲精品在线一区二区| 中文字幕一区二区三区av| 久久久久久黄| 一区二区三区四区在线看 | 欧美亚一区二区| 26uuu精品一区二区| 欧美破处大片在线视频| 日韩成人高清| 国产二区在线播放| 五月婷婷丁香综合网| 日本高清一区| 热久久免费视频精品| 日韩精品中文字幕在线|