详解Linux系统NBMA和BMA的交换方式

来源:https://www.uweishi.com/ 时间:2015-09-16 13:50:51 责任编辑:admin

在Linux系统中有两中不同的交换方式,也就是NBMA和BMA。我们不要看着两种交换方式只是差了一个字母,但是确实完全不同,甚至互相对立机制。很多用户都不是很了解,小编就给大家介绍Linux系统NBMA和BMA的交换方式详解。

Linux系统
Linux系统

  1.NBMA交换

  虽然大家都连接在一个链路上,但这并不意味着数据帧可以随意到达任何地方。NBMA网络中,控制权在交换机,端主机只能通过交换机到达目标端主机,也就是说,只有在交换机上配置了“这个从这个端口来的数据帧通过了某种检验,可以且只可以从那个端口发出去”这个策略时,数据帧才能通过。对于NBMA网络,交换机的实现会更加复杂,因为它内置了很多的协议层逻辑,而不是一个被动的学习。如果我们举几个NBMA的实例,可能会更好一些。

  对于NBMA,最典型的就是帧中继和ATM了,广泛使用的技术是ATM,我们知道ATM十分的复杂,比以太网复杂多了,我觉得它比IP都要复杂。对于ATM而言,其中一个重要的概念就是虚电路和虚通道,虚电路必须在通信前建立,ATM交换机的工作就是交换虚路径使数据帧在配置好的虚通道中传输,一个特定的数据帧只能沿着一条虚通道前进,不会到达别的虚通道。ATM的虚通道的配置就是在交换机上进行的,也就是说是交换机控制了数据帧如何进行转发,端主机只能被动接受这种安排。

  NBMA的优势在于其可控性,不像BMA那样。对于WAN,一般很少使用BMA,大多数都是使用NBMA,因为WAN的转发策略相当复杂,在BGP的指导下,链路层一般都是特定目标的转发,绝不能出现任意的广播,这关系到各个AS的强制性政策,如果一旦出现任意的广播,将会使WAN不再安全,这里的安全可能和政治,国家安全高度相关。

  2.BMA交换

  其实BMA网络根本就不是交换网络,也不需要交换,BMA网络的逻辑拓扑永远都是总线型拓扑,在BMA网络引入交换的概念完全是为了优化网络。以以太网为例,最初的以太网就是总线型的,后来为了便于拓展引入了HUB,也有了网桥用于连接异构以太网,后来的以太网交换机在高性能且廉价的双绞线广泛应用这个事实的推动下风靡开来,基于总线的同轴线逐渐退出。以太网交换机的最大优势在于其学习功能,这种学习是一种被动学习,虽说在BMA网络上没有秘密,然而由于学习型交换机的存在,秘密就局限于互相认可的通信双方了。纵观整个历史,我们可以发现,以太网交换机是一个后来者,虽然它真的颠覆了以太网的架构,以至于后来的千兆,万兆以太网仅仅为了兼容才和传统802.3保持一致,它还是无法颠覆以太网的本质,这个本质是什么呢?这就是ARP协议,ARP请求是一个广播,这个广播确认了以太网还是那个最初的广播型网络。任何通信都不得不使用arp协议进行地址解析(不考虑静态配置arp映射的情况),这个地址解析以及后续的单播通信给了交换机一个学习的机会,知道了某个MAC地址之于本交换机,哪个端口可以到达,这样交换机就可以过滤掉不必要的广播了。这种学习是被动的助推性的,即使没有这种学习机制,数据包还是可以到达目标的,因为BMA网络的实现在端主机,而不是交换机,对于以太网,默认数据帧会到达同链路的任意主机,主机会过滤掉目标MAC不是本机的数据帧,这才是BMA的本质-即实现在主机,交换机仅仅助力,交换机在对于判断无能为力(比如MAC/端口映射条目老化)时,就会回归BMA的本质,也就是使用广播将数据帧在每个端口广播。

  IPv6取消了arp广播,某种程度上正在彻底摧毁了以太网广播性质的根基。然而即使如此,一个数据帧还是可以将目标MAC改成广播地址的,在标准没有改变之前,在交换机对于组播还处于蒙昧阶段时,交换机看到这种数据帧还是会在所有端口转发的。

  以上就是Linux系统NBMA和BMA的交换方式详解,