基于ODL的SDN控制器

所需积分/C币:14 2018-07-07 15:29:40 1.92MB PDF
1
收藏 收藏
举报

基于ODL的SDN控制器,非常不错,很好的,可以看看,下载
资游由Www.eiMhe.com美河学习在线收集提供 from mininet topo import Topo class My Topo( Topo): Simple topology example. def init( self ) Create custom topo Initialize topology po, init(self) Add hosts and switches Host1 self. addHost( h1) Host2= self. addHost(h2) Host3= self. addHost( h3) Host4= self. addHost( h4) Switch1- sElf. add Switch( s1) Switch2= self.addSwitch( 52) Add links self addLink( Switch1, Switch2 elfaddLink( Switch1, Host1) selfaddLink Switch2, Host2) self. addLinkd Switch1, Host3) elf.add Link( Switch2, Host4) topos=I mytopo': lambda: MyTopo0)1 启动测试环境,使用以下命令生成测试拓扑结构: sudo mn- custom /mnt/shared/topo2_2. py -topo mytopo, controller=remote ip=192.168.56.1. 通过启动抓包软件 Wire shark可以看到SW向 Controller的注册过程。在注册过程 中, Controller会要求SW提供 Open Flow版本号,设备连接的端口等状态等信息。如图 资游由Www.eiMhe.com美河学习在线收集提供 所示:SWL将自己所连接的4个端口情况上报给 Controller(其中包括与 Controller相连 的端口),同样SW2也会上报自己的状态。 73271771801010601010502xgpy(cs)(23) Frane 327: 482 bytes on wire (383 bits, 482 bytes captured (3856 bits) on interface D s Ethernet IL Src: Cadmusto f4: f9 d (08: 00: 27: f4: fs: del, bst: Cadnusto 60 0c: fd (08: 0027: 00: 0: fd) P Internat Protocol Version4,sr:1921585101(192.1.56,10-},Dat:19158551(192198551 o Transnission Cont rol Prot ocol, Sre Part: 33360(83360), Dst Port: 6633(6633), Seq 33, Ack: 61, Len:428 OpenFLow Protel H Type: stats Reply (CSH) (17) Transaction ID: 24449242 7 stats Repl Type: Physieal pert statisties 10x0004) Fa9s:自 Received packes: 3 Transmitted packets: 2 t Received bites 220 肆 Transmitted bytes:140 Rx dropped 6 w T errors: 0 RI frame pPARs: 9 overrun effra W RI CRC errors: 0 种 Collisions0 Prts时 k Port Stats f Port stats 002700fd080274Pdk004 0010 o1 d4 11 cb 40 00 40 06 34 e? [D a8 38 65 co g.Q4.,8 23380n825019a9282b4a5a72b4d6650 P.(+:2r+Hf 0090 37000001107510d00 90的的的0的90的0的3D的的的可 0000aa000000000 2 B0 00 090o 00050003000gBDD0 00706000oo0o 0090 00 00 00 0000 00 00 30 00 00 00 D0 0000 00 0990000000900030000000 000000000000003000920200000d 图2:SW通过 OF: Stats Relay向 Controller上报自身的状态和接口 当SW设备完成设备注册后, Controller将进行网络拓扑结构的发现或更新。当网络 中有一台新的SW接入后, Controller通过 OF Packet Out指令要求SW1在其所有端口 上发出 LLDP(Link Layer Discovery Protoco,EEE8021ab)链路探测包。LLDP的源 MAC为 Controller分配,这里为00:00:00:00:00:01(对每一个交换机, Controller都会 分配—个这样的MAC作为SW标识),LLDP目的MAC地址为组播地址。相邻的SW2将 接收到LLDP,SW2由于无法识别这条流,会将OF协议再发到 Controller上。通过 LLDP的发送和接收, Controller可计算出交换机之间的拓扑关系,网络的拓扑关系可作 为转发流表生成和实现网络可视化的基础。注:与交换机SW相邻的主机也会收到 LLDP,但并不会处理 资游由Www.eiMhe.com美河学习在线收集提供 Controller ④计算Sw和Sw2的邻接系 ① OF Packet Out+LLDP ③OF: Packet in+LLDP Source:000000:000001 Source: 00: 00: 00: 00: 00: 01 Dest01:80c200:000g Eest:01:30:c2:3000:0e ②LLDP ShI Source: 0000:0000:0001 Dest0180C200000e 图3:基于LDP探测的网络拓扑发现与计算 说明:Smac=0000-0000-0001,dmac=0180-c200-000e 2)SDN网络二转发机制 生成网络拓扑后,还要在 Controller上为每一个三层网段设置一个网关地址(即使是 二层转发也必须设置),然后将交换机的接口与三层网关相关联。这里将SW1的2号(连接 h1)和SW2的2号口连接h2)分别与网关100.0.254关联,将SW1的3号连接h3)和 SW2的3号口(连接h4)分别与网关20.0.0.254关联。这一过程好比在SDN内划分了不 同的三层网段,并将设备物理接口与三层对应,类似为以太网划分ⅥLAN和增加三层虚接 口的过程。 口Name Gateway IP Address/Mask °orts GATEWAY2 20002548 s2-etn3(@ switch2 Remove st-eth3 switch1 Remove 口 GATEWAY1 10002548 s1-eth2 switch1 Remove s2-eth2 switch2 Remove 图4:在 Open Light Web界面将交换机的端口与三层网关相关联 然后对各个Host的主机护地址、子网掩码和默认网关进行逐一设置,在 Wininet提 示符 wininet>下如下设置 资游由Www.eiMhe.com美河学习在线收集提供 hi ifconfig hl-eth0 10.0.0.1 netmask 255.0.0.0 h2 ifconfig h2-eth0 10.0.0.2 netmask 255.0.0.0 h3 ifconfig h3-eth0 200.0.l netmask 255.0.0.0 h4 ifconfig h4-eth0 20.0.0.2 netmask 255.0.0.0 hI route add default gw 10.0.0. 254 h2 route add default gw 10.0.0. 254 h3 route add default gw 20.0.0. 254 h4 route add default gw 20.0.0. 254 接着让Host1 PING Host2,输入h1 ping h2,同时使用抓包软件可得到如下的过 程 资游由Www.eiMhe.com美河学习在线收集提供 Controller Host l lolth IP:40.0.1 1F:0.0.2 10.0.01请求网关 10.0.0.254MC地 |+A守P OF FIrmModi fy 指不S安装目的地址为 10.0.0.1的流表 0F-ARP 10.0.0.254请求10.0.0.2MC地址 (控制器逐一要求朝每个该段的端发送 ARP Request ARP Request 0.0.0.2的C OF+ARP 10.0.0.2的C ARP Respons 10.0.0.2的MA 10,0.,2的AC OF FlonNodif 指小S安装目的地为 10.0.0.2的流表 ICMP PING Request apP Re 0.0.2请求 OF+AEP 400址 OF+ARP 10.0.0.1的MC AP Rexmse 10.0.0.的显AC ICMP PING Response 后续其它流 图5: Open Day Light SDN二层转发机制图解 在SDN网络中,处于未端的主机Host并不会知道其连接的网络是SDN,某台主机 要发送数据包到另一台主机,仍然需要进行P到MAC地址的ARP解析。但SDN的处理 机制与普通二层以太交换机洪泛+MAC地址学习机制存在却存在很大的差异,其过程如 当源主机h1(10.0.0.1)发出ARP解析h2(10.0.0.2)后,交换机SW1并不知道如何转 发该包,因此将其通过OF消息发送到 Controller处理。 Controller发现这个ARP消息是h1(10,0,0.1)发出,它也同时得到了h1的位置信息 (OF包中会指出是哪个交换机的哪个端口发出了数据包)。此时 Controller可以计算网络 拓扑,得到全网各节点到1000.1的转发路径,并将转发流表通过 OF FlOw m。dify消息 推送到每一台交换机上。 资游由Www.eiMhe.com美河学习在线收集提供 说明:OF报文 packet in报文中含有 buffer id, Input port,data等内容。这样知 道10.0.0.1主机在sw的哪个端口那一个侧。 由于收到了ARP, Controller会要求每台SW所对应100.00/8网段的非SW互 联端口(只有这些端口是连接主机或传统网络的)发出ARP来请求10.0.0.2的MAC地址。 这里 Controller并不是简单的将收到ARP原封不动的发出,而是将源IP改为 10.0.0.254,也就是前面我们在 Controller上配置的网关IP地址,然后发出 只有h3(10.0.0.2才会响应ARP,它将 ARP Response发送到SW2。SW2也不知道 如何处理,因此将ARP封装在OF协议中发送到 Controller。 Controller发现这是ARP 响应,而之前正是100.01发送的ARP请求,因此它会将该ARP通过OF协议发到 SWL,同时指示SⅥ将其送出的端口(也就是h对应的端口),SⅥ1执行这一操作。 Controller在收到h3的ARP后也得知了10.0.0.,2的位置,它根据网络拓扑计算,可 以得到全网到达10.0.0.2的转发路径,并将流表通过 OF Flow Modify消息推送到每一合 交换机上。 h1收到 ARP Response后完成ARP解析过程,然后它构造 ICMG PING Request 数据包,其中源和目MAC分别为h1和h2的MAC,源和目IP分别为h1和h2的IP。 由于SW1和SW2都已经成功的装载了到h2(10.002)的流表,因此该数据包将被顺利发 送到h2。 h2发现是 ICMP PING Request,源是h1,但是此时它尚未有h的MAC,于是还 要进行次ARP解析,SW2再次将ARP发送 Controller, Controller已经得知h1的 MAC,可直接响应,并通过OF向SW2返回ARP结果和所需要送出的端口(h2接入的端 h2学到ARP后,即可构造 ICMP Response包,发送到SW2,SW2根据h1目的地 址匹配转发表将其转发到SⅥ1,SW1根据h1目的地址匹配转发表将其发送到h对应的 端口。h1到h2的双向通道至此完全打通。 3)SDN网络三层转发机制 在分析完二层转发机制后,我们重新启动拓扑结构,回到初始状态(交换机上无任何流 表),测试一下SDN如何实现两个不同网段主机之间的转发。输入h1 ping h4,同时使用 Wireshark抓包,可发现如下结果 对于三层转发,主机首先判断目的IP与自己不在同一网段内,因此要将数据包发向默 认网关,在此之前它必须解析网关的MAC。h1发出ARP,请求网关1000254的 MAC。SW1不知道如何处理,将其通过OF协议发送到 Controller。 Controller上配置了网关地址100.0254,它即以自己的MAC地址回应ARP,并指 示SW1将ARP响应发送到与h1相连的接口。同时 Controller也知道了h1的存在,通 资游由Www.eiMhe.com美河学习在线收集提供 过路径计算,得到每一台交换机去往100.0.1的路径,并通过 OF Flow Modify将流表推 送到每一台交换机上。(此流表是10.0.0.1的流表) 说明∷请描述 OF Flow Modify下发的流表内容。 主机h1收到网关的ARP,它构造 ICMP PING Request数据包,其中源和目MAC 分别为h1和网关10.0.0.254的MAC,源和目IP分别为h和h4的IP,此包发向 SWL。 SⅥ1上并没有到达20.0.0.2的流表,因此将缓存这个数据包。同时SW1则也会将该 包通过OF协议( Packet-In)发送到 Controller, Controlller发现该包是要去向 20.0.0.2,而此目的主机位置未知。因此 Controller会要求每一台SW的对应20.0.0.0/8 网段的非SW互联端口发出ARP来请求200.0.2的MAC地址,其中ARP的源IP为 20.00.0/8的网关地址20.0.0.254。 说明: Controller如何知道20.0.0.08主机所在SW的端口? 只有h4(20.0.0.2)才会响应ARP,它将 ARP Response发送到sW2。SW2不知道如 何处理,因此将ARP封裝在OF协议中发送到 Controller。 Controller接到这个ARP响 应,也同时得到了h4的位置是处于SW2的某一端口之下。 Controller通过路径计算,得 到每一台交换机去往20.0.0.2的流表,并通过 OF Flow Modify消息推流表到每一台交换 机上 sⅥ1在装载流表后可向正确的接口上转发之前缓存的IMP数据包,当然SW2也可 顺利转发。SW2还会将该ICMP包的目的MAC地址修改为h4的MAC,以确保主机正 确接收(之前 Controller下发的目的地址100.0.1流表中已指出这个操作) 资游由Www.eiMhe.com美河学习在线收集提供 P Frass 811 150 bytes on vire (1200 bits), 150 bytes captured (120c bits) on interface C v Ethernet II, Sr: Cadmus o_(0: Qc: fd (08: 00: 27: 00: Oc: fd), Dst: Cadeusco. f4: f9: dk(08: 00: 27: f4: f9;e) D Destination: CaduusCo f4: F9: dc(08: 00: 27: f4: f9 de) s Source: Cadmusca 00: Oe: fd(08: 00: 27: 00: De: fd) P Internet Protocol Version 4, 5rc: 152, 168, 56. 1(192. 168, 55.11, Dst: 192. 168, 55,101(192.168.561m) p Transnission Cont rol Protocol, Sre Fort: 6633(6633), Dst Port: 55128(55128, seq: 555, Ack: 17289, Len: 96 infor protocel Version: 0x01 Type: Flow Mad(CSMi (14) th:96 Trans t:on ID: 20857482 Flow Modifi b Match Type: IP ((s0B00) IP Dat Addr:20.0.0.2(20,0.0.2 Cookie: 0x0000000000000000 Command: New flow (9) re Discarding: 0 Hax Time(seI Befa e Discarding: 0 Priority Buffer ID: None Out Port (delete' anly 0 Type: Ethernet destinat isn address (5) HAC Addr;5a;:抛 Type: Qutput to switch port (Q) Qutput port: 3 Max Bytes to Sand 65535 st Actions 0的24160随数随的书 0e3c940405694efc0B3801ca.8 c02615e912865dcba3250 (...2P :030fs 07 6c Ba 00 C0 01 Ce 00 60 a 3d ec 9a 00 图6:对20.0.0.2目的地址的流表下发 注:对与主机相邻的交换机SW不仅要指该主机所对应流的出端口,还需要对目的 MAC地址进行改写以匹配主机MAC,因此下发的流表内有2个动作( Action),对于二层 转专发亦然。 此时h4会收到 ICMP Request,它发现是不同网段主机发出的ICMP请求,因此仍 要通过ARP解析出自己的默认网关。此请求发送到SW2后仍要通过OF协议转发到 Controller, Controller用自己的MAC进行响应,然后通过OF协议发往SW2,并最终 发送到h4。 主机h4收到ARP后可构造 ICMP PING Response,其中源和目MAC分别为h4和 网关20.00.254的MAC,源和目IP分别为h4和h1的IP。此包发向SW2,然后经过 SW1,同样SW1在将其转发到目的端口前会将目的MAC地址修改为h1的MAC。之后 h1和h4之间的通道被完全打通。

...展开详情
试读 32P 基于ODL的SDN控制器
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
  • 至尊王者

    成功上传501个资源即可获取
关注 私信 TA的资源
上传资源赚积分or赚钱
    最新推荐
    基于ODL的SDN控制器 14积分/C币 立即下载
    1/32
    基于ODL的SDN控制器第1页
    基于ODL的SDN控制器第2页
    基于ODL的SDN控制器第3页
    基于ODL的SDN控制器第4页
    基于ODL的SDN控制器第5页
    基于ODL的SDN控制器第6页
    基于ODL的SDN控制器第7页

    试读结束, 可继续读3页

    14积分/C币 立即下载 >