关于冰盾 | 使用条款 | 网站地图
 
从二层转发层面对比下openflow和传统交换机
从二层转发层面对比下openflow和传统交换机
作者:冰盾防火墙 网站:www.bingdun.com 日期:2015-03-10
 

通常来说,物理层的一串比特位到数据链路层后,会被组成帧,并做检验和校验——只有校验和通过的帧才被转发。转发的概念对于交换机来讲就是基于MAC地址的转发,最初的二层转发设备是仅仅基于MAC地址的,用于局域网(LAN),后来由于广播泛滥和通信安全性的考虑,采用vlan对不同的通信域进行隔离。Vlan(虚拟局网,Virtual Local Area Network)是不是网络上第一个网络虚拟化的技术我不清楚,但是是我接触到的第一个网络虚拟化技术。

MAC地址就是每个网络设备上的物理地址,

Vlan技术是通过对原来的报文在MAC地址头后加入4byte的数据来识别和标志vlan,具体如下:

从二层转发层面对比下openflow和传统交换机

其中TYPE ID(简称TPID)例子中是0×8100,其实这个不是必须的,稍微高级点的交换芯片都支持配置,这个功能称为Q-IN-Q;因为处于二层隧道或者vlan id不够用的用途,可以给一个报文打上两个vlan tag,并且两个vlan tag的TPID可以不同,也可以相同。而对于报文能灵活删添或修改vlan tag的功能称之为灵活Q-IN-Q。

后面的3bit user priority用于一般称之为COS值,用于二层QOS功能,再后面的1bit就是前面文章说的CFI(Canonical Format Indicator),为0表示该帧格式为用于802.3或EthII封装,常用于以太网类网络和令牌环类网络之间,如果在以太网端口接收的帧具有CFI,那么设置为1,表示该帧不进行转发

自从vlan技术出现后,二层转发在交换机中便不再是仅仅基于MAC地址的学习和转发,而是基于mac vlan的学习和转发,下面结合BCM和MVL等芯片厂商的处理过程介绍下大致流程如下:

从二层转发层面对比下openflow和传统交换机

其实转发的过程比较简单,需要说明的是以下几点:

1. 对于SMAC=DMAC的攻击报文高级的交换芯片可配置直接丢弃;

2. Vlan tag的识别和获取过程很复杂,后续详细介绍;

3. SMAC Vid的查找通常可以的,但是某些芯片内部一个没有tag的报文怎么处理?这个不同芯片处理方式不同,即使是同一个厂商的,有的是丢弃,有的是广播,有的是可配;

4. DMAC 为0x0180c2开头的报文主要用于一些二层协议报文,包括流控,LLDP,LACP等;

5. 交换机芯片通常进行报文单播和广播,默认不开启组播功能,但是从数学角度讲,单播和广播都可以看做是组播的两个边界值;这和物理学的很多定理类似,理论学习时推广到通常的公式很难,但是实际上经常发生的情形却是理论上极为简单的几种特殊情况;另外,如果DMAC VID 查找不到相应的表项,默认动作是广播到除源端口外的所有端口,通常交换芯片也可以配置为丢弃、上CPU等动作。

6. 二层组播的协议主要有IGMP等,原理有很多地方可以参考,现在主要有三个版本,二层组播和三层组播的MAC和IP对应关系为:

从二层转发层面对比下openflow和传统交换机

7. 二层里报文没有防止成环的字段,这就导致一旦链路有环,将会发生极其灾难的事故,随之提出STP协议来解决这个问题,但是STP协议随着网络规模的扩大,到100台网络设备的规模的时候,一旦网络拓扑发生变化,其响应适应网络变化的能力就会被体现的体无完肤;虽然后来提出了RSTP、MSTP等改进,但是依然跑脱不了对链路带宽的浪费等缺陷,直至提出了复杂的trill协议;所以三层报文IP头部设计的时候就考虑了TTL这个防环的字段;

8. 每个端口都有自己的MTU,当CPU通过端口发包时,在协议栈是可以对报文分片的,这个时候分片的依据是该vlan内的所有端口的最小MTU值;

9. 为了实现不同vlan的端口能相互通信,引入了端口的trunk属性的概念,可以实现一个端口属于多个vlan,从而实现多个vlan间的通信;这个概念是将端口分为三类:Access,trunk,hybrid;交换机所有端口默认是access口,此口出入只转发vlan id和端口 native vlan相同的报文;trunk口时能出入转发所有vlan id的报文,这里的所有是指交换机上已经创建的vlan,但是出去的时候如果vlan id和native id相同则删掉TAG将报文转出去,否则带tag转发出去;hybrid则是可以任意单独配置端口所允许进入的各个vlan ID报文,以及转出报文是否带TAG;这个功能从数学上来讲和组播类似,可以将access和trunk看成hybrid的两个边界值;

10. 所有端口默认所属的vlan 是vlan1,交换机支持对端口的所属vlan进行更改;同样的对于二层QoS字段,对于没有tag的报文打tag的时候赋予什么样的COS值也是可以通过命令行来配置;

11.高级的交换芯片为了实现VLAN内部用户的隔离,提出了私有vlan的概念,即PVALN,并将端口设置为不同的属性,交换机端口有三种类型:Isolated port,Community port, Promiscuous port;它们分别对应不同的VLAN类型:Isolated port属于Isolated PVLAN,Community port属于Community PVLAN,而代表一个Private VLAN整体的是Primary VLAN,前面两类VLAN需要和它绑定在一起,同时它还包括Promiscuous port。在Isolated PVLAN中,Isolated port只能和Promiscuous port通信,彼此不能交换流量;在Community PVLAN中,Community port不仅可以和Promiscuous port通信,而且彼此也可以交换流量。

12.同Q-IN-Q一样,MAC地址也有MAC-IN-MAC的用途,又称PBB-TE,技术标准是IEEE802.1Qay,主要用于运营商骨干网,关闭组播后用来解决运营商骨干链路维护MAC表过大、对用户流量进行二次封装和隔离、并能防止成环和负载不均衡的情况出现;

13.MAC学习到硬件中需要通过中断的方式通知到CPU,这样软件中便可以有硬件MAC表的副本,便于显示和查询,以及通过ARP的概念将MAC和IP进行关联,决定路由是否下发硬件;

14.MAC都有一个老化的过程,即一段时间内即么有SMAC为这个MAC的报文也没有DMAC为这个MAC的报文,那么这个地址会在硬件表项中被删除(+微信关注网络世界),并通知上层软件;老化时间默认300秒,这个值是可以配置的,且根据芯片支持程度而不同,一般支持范围为60~1800秒;

 

 
最新内容:
你享受WiFi万能钥匙带来的免费大餐 可你的隐私可能已经泄露了[2015-03-10]
从零开始学Android应用安全测试[2015-03-10]
教你几招防御黑客袭击[2015-03-10]
解读数据泄漏防护技术的误区[2015-03-09]
揪出APT尾巴 教你辨别网络中的异常行为[2015-03-09]
APT攻击防护方案:构建堡垒网络 升级安全防护[2015-03-09]
相关内容:

合作伙伴: 黑基网 补天科技 威盾科技 站长下载 新飞金信 北京电信 ZOL应用下载
中华人民共和国增值电信业务经营许可证京ICP备14024464 公安备案号 京1081234 
版权所有©2003-2014 冰盾防火墙  www.BingDun.com 法律声明
总机:(010)51661195