机房360首页
当前位置:首页 » 数据中心资讯 » SDN网络与传统网络对比

SDN网络与传统网络对比

来源:SDNLAB 作者:DJ编辑 更新时间:2016-5-11 14:19:27

摘要:从1969年ARPA NET运行算起,传统网络已经发展了半个世纪,网络按照OSI的模型分成7层,通常所见最多的是二层和三层。二层就是二层交换机构成的网络,在这个网络中交换机学习mac地址和端口的对应关系,通过匹配二层报文的mac地址决定如何转发。

  三、从ping的流程看传统网络与SDN网络:

  1.传统网络

  如上图拓扑,网络中间有三台设备构成基础网络,两个客户端属于不同的网络,两个客户端要互访

  基础网络构建步骤如下:

  1)由于客户端处于不同网段,因此需要路由设备,可以用CE2作为路由设备,或者CE1、2、3均作为路由设备,这里将三台均作为路由设备,CE1、2、3之间三层通信

  2)CE1作为CLIENT1的网关设备;CE3作为CLIENT2的网关设备,网关代答ARP

  3)CE1、CE2、CE3之间通过静态路由或者路由协议学习 192.168.10 和192.168.20 网段的路由

  路由通路的建立主要关注两个字段:路由前缀和下一跳。在传统路由器上,通过命令行可以很直观的看到各种信息之间的关联

  [~CE1]display ip interface brief *down: administratively down !down: FIB overload down (l): loopback (s): spoofing (d): Dampening Suppressed The number of Physical UP interfaces: 4 The number of Physical DOWN interfaces: 0 The number of Protocol UP interfaces: 3 The number of Protocol DOWN interfaces: 1 Interface IP Address/Mask Physical Protocol VPN GE1/0/0 192.168.10.1/24 up up - GE1/0/1 10.1.1.1/24 up up - MEth0/0/0 unassigned up down - NULL0 unassigned up up(s) -

  上面是典型的接口信息表显示,可以看到接口以及接口IP、状态信息Shell

  [~CE1]display ip routing-table Proto: Protocol Pre: Preference Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Routing Table : _public_ Destinations : 11 Routes : 11 Destination/Mask Proto Pre Cost Flags NextHop Interface 10.1.1.0/24 Direct 0 0 D 10.1.1.1 GE1/0/1 10.1.1.1/32 Direct 0 0 D 127.0.0.1 GE1/0/1 10.1.1.255/32 Direct 0 0 D 127.0.0.1 GE1/0/1 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0 127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0 192.168.10.0/24 Direct 0 0 D 192.168.10.1 GE1/0/0 192.168.10.1/32 Direct 0 0 D 127.0.0.1 GE1/0/0 192.168.10.255/32 Direct 0 0 D 127.0.0.1 GE1/0/0 192.168.20.0/24 Static 60 0 D 10.1.1.1 GE1/0/1 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0

  上面是典型的路由表结构,从路由表中可以看到路由匹配项及下一跳、出接口信息。要构建192.168.10.2 到192.168.20.2的通路,实际上需要让CE1知道20网段的下一跳是10.1.1.2,CE2要知道20网段的下一跳是20.1.1.2,这样单向通路就建立起来了,再建反向通路即可。

  传统网络的打通,需要在途经的每一台设备上进行配置,需要自己规划整个网络的拓扑、端口的IP地址、路由协议等等,在网络构建和维护过程中都需要人工持续不断的干预。虽然如此,但是传统网络中仍然有一定的智能,路由协议在配置好后,一定程度上不再需要做过多的干预。比如CE1、2、3组成的骨干网在配置好动态协议后,后续再增加同网段的新客户端,是不需要修改配置的。但是如果要部署新业务,如VPN等,就需要对整网配置进行修改。在传统网络中,ping的处理流程如下:

  1)在CLIENT1上ping CLIENT2

  2)CLIENT1在通过ARP获取到网关MAC后,构造ICMP request报文发往CE1

  3)在CE1上解析ICMP报文,通过目的IP地址在路由表查找匹配表项,找到出接口发往CE2

  4)CE2做同样的事情,将报文发往CE3,CE3发往CLIENT2

  5)CLIENT2构造应答报文发往,目的IP填192.168.10.2,发往CE3,通过路由查找过程,报文到达CLIENT1在这个过程中,接收->查找->转发的一系列动作是设备的内部实现,对用户来说是黑盒,实际上“查找”就是IP的在路由表中的匹配过程。

  2.SDN网络

  以纯underlay的SDN网络举例,如下图所示拓扑

SDN网络与传统网络对比

  控制器通过ovs上报的packetin消息触发处理流程,计算好路径后,通过openflow下发给所有转发器,打通链路,主机之间能够互通。转发器上没有控制面,之间也没有交互,转发器最基本动作就是对收到的报文上报控制器,一切的逻辑行为都由控制器负责。

  在转发器上,需要把物理口绑定到OVS上,OVS才能进行管理,所以在OVS上查看接口信息如下:

  Shell root@ck:~# ovs-vsctl show c0e6f272-485a-4e30-b1ed-518b0ade9cc7 Bridge "s2" Controller "ptcp:6635" Controller "tcp:127.0.0.1:6633" is_connected: true fail_mode: secure Port "s2" Interface "s2" type: internal Port "s2-eth3" Interface "s2-eth3" Port "s2-eth1" Interface "s2-eth1" Port "s2-eth2" Interface "s2-eth2"

  Shell 123root@ck:~# ovs-ofctl dump-flows s1 NXST_FLOW reply (xid=0x4): cookie=0x0, duration=383.313s, table=0, n_packets=32, n_bytes=2544, idle_age=373, priority=0 actions=CONTROLLER:65535

  这条流表是用来将报文上送控制器的。在主机v1之间ping v2后,查看流表信息:

  Shell root@ck:~# ovs-ofctl dump-flows s1 NXST_FLOW reply (xid=0x4): cookie=0x0, duration=2.876s, table=0, n_packets=4, n_bytes=336, idle_age=0, priority=1,in_port=2,dl_dst=00:00:00:00:00:01 actions=output:1 cookie=0x0, duration=2.875s, table=0, n_packets=3, n_bytes=294, idle_age=0, priority=1,in_port=1,dl_dst=00:00:00:00:00:03 actions=output:2 cookie=0x0, duration=516.728s, table=0, n_packets=35, n_bytes=2726, idle_age=2, priority=0 actions=CONTROLLER:65535

  多了两条流表,第一条是匹配从2口进入ovs的报文,如果报文的目的mac是v2,从ovs 1口出;第二条是匹配从1口进入ovs的报文,如果报文的目的mac是v1,从ovs 2口出。可以看到这里的port已经变成了数字,要查看编号和名字的对应关系,需要通过其他的表:

  Shell root@ck:~# ovs-ofctl show s1 OFPT_FEATURES_REPLY (xid=0x2): dpid:0000000000000001 n_tables:254, n_buffers:256 1(s1-eth1): addr:0e:c0:36:94:3c:be config: 0 state: 0 current: 10GB-FD COPPER speed: 10000 Mbps now, 0 Mbps max 2(s1-eth2): addr:1a:a0:81:52:ec:b5 config: 0 state: 0 current: 10GB-FD COPPER speed: 10000 Mbps now, 0 Mbps max LOCAL(s1): addr:92:0d:a5:20:e0:4c config: PORT_DOWN state: LINK_DOWN speed: 0 Mbps now, 0 Mbps max

  可以看到在SDN网络中的匹配和动作行为比传统网络要丰富的多,不仅仅是匹配前缀,转发下一跳那么简单了。但是SDN网络设备的用户界面信息表现不直观,相比传统网络还有很大的提升空间。在此网络中,ping的处理流程如下:

  1) 在V1上ping V2

  2) V1通过ARP获取请求网关MAC

  3) ARP报文在OVS1上匹配流表,上送控制器

  4) 控制器进行ARP代答,构造ARP应答报文通过OVS1发给V1

  5) V1在获取到mac后,构造ICMP request报文发往V2

  6) OVS1在收到ICMP报文后,依然不知道如何处理,继续上送控制器

  7) 控制器根据报文信息,计算转发路径,向转发路径上的所有转发器下发流表

  8) 控制器将首包通过OVS1发给OVS2,由于OVS2、OVS3上已经有可以匹配的流表,因此报文会一直送到V2上

  9) V2的应答流程如上类似,差别在于反向的流表已经提前下发,V2的应答报文不会再上送控制器在SDN网络中,对于控制器如何计算、下发什么样的流表是没有统一标准的,只要能正确处理主机之间的报文即可。在上面的例子中,所实现的控制器与通常的不同,由于仅存在两台主机,因此对于三层报文,没有通过匹配IP的方式进行转发,ARP的应答也并不是应答的网关mac,而是直接将目的主机的mac进行了应答,因此,虽然是三层互通,但是通过控制器,也可以做到流表直接匹配mac转发,而不需要IP。从这也可以看到SDN的灵活性。

  四、总结

  传统网络已经经过半个世纪的发展,凝聚了无数人的智慧和心血,但是由于天生的缺陷,导致在很多场景上心有余而力不足,并且越来越复杂。SDN虽然诞生没多久,但是已经表现出非常强的生命力。传统网络在安全、可靠性、可维护性和性能上还有很大的优势,但是随着SDN相关设备的发展,这种优势必然会越来越弱,而SDN依靠自己的优势,一定会不断占领传统网络的领地。而在SDN内部,overlay网络相比underlay网络,简化不足,复杂有余,在传统网络的基础上叠加虚拟化,比传统网络更复杂。overlay之于underlay,就好比ipv4之于ipv6,要从根本上解决问题underlay必然是最终的选择。

  责任编辑:DJ编辑

机房360微信公众号订阅
扫一扫,订阅更多数据中心资讯

本文地址:http://www.jifang360.com/news/2016511/n579781828.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
推荐图片