大连 网站建设 有限公司,58好项目网,呼和浩特做网站,建网站一定要买服务器和域名吗专业的网络工程师在进行网络设计时#xff0c;会事先规划好不同业务数据的转发路径#xff0c;一方面是为了满足用户应用需求#xff0c;另一方面是为了提高数据转发效率、充分利用各设备/各链路的硬件或带宽资源。在进行网络故障排除时#xff0c;理顺各路数据的转发路径也…专业的网络工程师在进行网络设计时会事先规划好不同业务数据的转发路径一方面是为了满足用户应用需求另一方面是为了提高数据转发效率、充分利用各设备/各链路的硬件或带宽资源。在进行网络故障排除时理顺各路数据的转发路径也是精准、高效排除故障的最基本前提。这些路径的实现是基于网络通信原理通过网络设备配置实现的所以理解数据通信原理是作为一个合格网络工程师必备的基础和前提。 数据在网络中如何转发受到许多因素影响在不同网络中有不同的转发技术。如在同一个IP网段中采用的是基于MAC地址表的数据转发技术在跨网段的IP网络中最常见的是IP路由转发即根据IP数据包携带的目的IP地址按照对应的IP路由表项一跳一跳地进行转发在MPLS网络中则又是根据MPLS报文中携带的外层MPLS标签进行转发。但这也只是最基本的转发原理数据是否可以按照原路径进行转发还可能受一些策略影响如报文过滤策略、路由策略、策略路由、MPLS隧道策略等。所以事实上在一些比较大型的网络中数据转发路径的确定不是想象的那么容易可能要考虑前面所说的多方面因素。本文先介绍同一IP网段基于MAC地址表的数据转发原理即通常所说的“二层交换原理”。
同一IP网段俗称二层交换网络在此仅以最常见的以太交换网络为例进行介绍。在二层以太交换网中数据转发的依据是帧头中的“目的MAC地址”字段中的值和在交换机上建立的MAC地址表进行的。MAC地址表可以看成是二层以太网的数据转发表可以手动创建生成静态MAC地址表也可由交换机通过对进入交换机的数据帧中帧头的“源MAC地址”字段和“VLAN Tag”字段仅VLAN网络中存在的学习动态创建生成动态MAC地址表。静态MAC地址表项除非人为删除否则永久有效而动态创建的MAC地、址表项是有生存周期的即是可以被老化的老化后即删除。在此仅介绍动态MAC地址表的创建和指导数据帧的转发原理。
在MAC地址表中最主要的三个字段是“MAC地址”、“VLAN ID”仅VLAN网络中存在和“入接口”字段它们之间形成一个映射关系。“MAC地址”和“VLAN ID”字段分别是通过学习所接收的帧中的“源MAC地址”和“VLAN Tag”两字段的值得到的而“入接口”字段是本交换接收数据帧的接口建立的是源设备的动态MAC地址表项。“MAC地址”字段是用来作为帧接收设备向源设备发送的数据帧头部的“目的MAC地址”“VLAN ID”字段代表帧所属的VLAN“入接口”字段用来确定源帧接收设备向源设备发送的数据帧到达本地交换机后的出接口即确定了数据帧在本地交换机上的转发路径。在初始状态下交换机没有为任何外部设备建立动态的MAC地址表项。在此先介绍非VLAN场景下的二层交换原理下集课程再介绍VLAN帧的交换原理。
在非VLAN场景下二层交换设备收到以太网帧后根据以太网帧中帧头的“目的MAC地址”字段去查找本地MAC地址表如果没有找到匹配表项或者目的MAC地址是广播MAC地址48位全为1的MAC地址则向除帧入接口外的所有接口转发如果能够找到匹配表项则向该MAC地址表项中对应的接口转发。
【说明】二层交换设备虽然能够隔离冲突域但是它并不能有效的划分广播域。因为从前面介绍的二层交换原理可以看出广播报文以及目的MAC地址查找失败的报文会向除报文的入接口之外的其它所有接口转发当网络中的主机数量增多时这种情况会消耗大量的网络带宽并且在安全性方面也带来一系列问题。当然通过路由器来隔离广播域是一个办法但是由于路由器的高成本以及转发性能低的特点使得这一方法应用有限。基于这些情况二层交换中出现了VLAN技术具体将在下集课程中进行介绍。
在图1所示的非VLAN网络中PC A、PC B和PC C三台主机网卡的MAC地址分别为MAC A、MAC B和MAC C。现假设在初始状态下PC A要访问PC C假设PCA已获取了PC C的MAC地址具体获取原理本文后面介绍。 图1
1根据前面课程的介绍数据帧在发送前要进行帧封装以PC C的MAC地址MAC C作为目的MAC地址自己的MAC地址MAC A作为源MAC地址参见1。
2当交换机收到PC A访问PC C的数据帧时会会学习帧中的“源MAC地址”MAC A然后与接收该帧的接口Port 1建立映射关系生成基于源主机PC A的MAC地址表项如图2所示。 图2
3由于交换机上原来并没有基于PC C的MAC地址表项不能确定从哪个接口转发到达PC C的数据帧所以会向除入接口Port 1外的其它所有接口如Port 2和Port 3进行泛洪转发类似广播转发方式如图3所示。 图3
【说明】“泛洪”其实是一种复制转发方式就是从除入接口外的各个接口上发送一个帧副本帧头中的“目的MAC地址”保持不变且不是广播MAC地址。而“广播”这里仅是二层广播是帧头中的“目的MAC地址”是广播MAC地址。
4当PC C收到该帧后发现帧中的“目的MAC地址”与自己的MAC地址一致于是确定该帧是发给自己的所以接收该帧然后对源设备PC A进行响应。响应帧中的“源MAC地址”是PC C的MAC地址MAC C目的MAC地址是PC A的MAC地址MAC A如图4所示。 图4
5当交换机收到PC C发给PC A的响应帧后同样会学习帧中的“源MAC地址”字段值MAC C然后与接收该帧的接口Port 3建立映射生成基于PC C的MAC地址表项如图5所示。然后根据帧中的“目的MAC地址”MAC A在本地MAC地址表中进行查找。因为在交换机上原来已建立了基于PC A的MAC地址表项所以可以查找到匹配的MAC地址表项然后根据所映射的出接口Port 1把PC C发给PC A的响应帧发给PC A如图6所示。 图5 图6
在这里再回到前面的问题就是PC A如何知道目的主机PC C的MAC地址呢其实这里要分两种情况的。通过前面课程的学习已知道帧的封装是在数据链路层进行的其中的数据部分可以是本地链路层自身的协议报文通常是由二层交换机自己产生的如STP BPDU也可以是来自上层——网络层或者以太网协议的更高子层而来自网络层的数据包又可以是网络层自身产生的协议报文也可以来自上面传输层甚至应用层的用户数据报文通常是由主机类设备产生的。二层交换可通过LLDPLink Layer Discovery Protocol链路层发现协议之类的二层协议报文交互进行MAC地址学习LLDP报文中的目的MAC地址固定为0x0180-C200-000E。如果是三层或以上层设备发送的协议或数据报文则是采用ARP通过目的IP地址解析对应的目的MAC地址。有关ARP的工作原理将在后面的课程中介绍。