二层/三层交换机基础

关于冲突域和广播域

  • 冲突域:主要是指的物理上的冲突,同一个物理介质(导线)上面多个节点的集合就是一个冲突域;比如说使用HUB连接的主机就是一个冲突域,他们共享带宽;
  • 广播域:目的MAC为FFFF-FFFF-FFFF的地址为广播地址,一个节点发送,其余节点都能收到的节点集合称之为广播域;

传统的二层交换机的所有端口都属于一个广播域,每个端口属于一个单独的冲突域。

1.1. 二层交换

工作在OSI模型的第二层,数据链路层;对数据包的转发建立在数据链路层信息 - MAC地址的基础之上;使用ASIC进来实现数据包的转发。
基本流程

  • 二层交换机收到以太网帧,把源MAC地址与接收端口的映射关系写入MAC表;MAC表表项采取一定的老化更新机制,超时不更新就会删除这条记录;
  • 依据目的MAC地址去查找MAC地址表:如果找到匹配项,则往对应端口转发;如果MAC地址是广播地址,则向所有端口转发;如果没有找到匹配项,则向所有端口转发;

二层交换机可以隔离冲突域但是无法隔离广播域,所以就出现了二层交换中VLAN技术

1.2. 支持VLAN的二层交换机

IEEE802.1Q标准在原来的以太网源MAC地址的后面加入了4个字节的VLAN Tag,里面包含了如下内容

  • Type:固定值为0x8100,用来表示VLAN Tag;
  • User Priority(3 bit):用户优先级,用于流量等级划分;
  • Flag(1 bit):以太网中固定取0;
  • VLAN-ID:取值为0 ~ 4095,用于标识不同的VLAN.

通常情况下主机发出的报文都是不带VLAN Tag的(untagged),这个时候就需要把这个报文划分到某个VLAN中去:

  • 基于端口划分,最为常用,通过收到的报文端口来决定这个untagged 报文属于哪个VLAN;交换机负责添加VLAN Tag,然后进行转发;
  • 基于MAC划分;
  • 基于IP划分;

如果报文本身带VLAN Tag,那就依据VLAN ID来决定怎么转发。一个可能的组网结构


二层/三层交换机基础_第1张图片

两个交换机之间的连接称为一个Trunk,Trunk上传递的报文都是携带了VLAN tag的,这样接收端的交换就知道该往哪个VLAN进行转发

1.3. 三层交换机

1.3.1. 不同网络的主机之间如何互访

这里的不同网络,指的是处于不同网段的两个主机(利用网络掩码计算之后具有相同的网络段号);举个例子来说一下,网络掩码设置成255.255.255.0,这个时候假设A主机是192.168.1.100,B主机是192.168.1.101,C主机是192.168.2.100。那么A主机和B主机属于同一个网络段(局域网),C主机则属于另一个网络段。

  • A主机要往B主机发起通信时,发现和B在同一网络端;那么A主机会直接向目的主机发送ARP请求,收到对端的ARP应答后获取对方的物理层MAC地址;然后填写对方的MAC地址到报文的目的地址中进行发送,这个时候用于互联的交换机作为二层转发。
  • A主机要往C主机发起通信时,发现和C不在一个网络段;首先会通过网关来递交报文,发送ARP请求来获取网关(比如说192.168.1.1)的MAC地址进行报文发送

1.3.2. 三层交换的原理

  1. 先看一张组网图


    二层/三层交换机基础_第2张图片

A要向B发起通信,流程如下

  • A首先检查出目的IP和自己不在同一网段,发出请求网关地址192.168.1.1的MAC地址的ARP请求;
  • 交换机收到请求后,发现被请求的IP是自己的三层接口的IP,因此发送ARP应答返回自己的MAC地址(C.C.C)给主机A;同时记录主机A的IP和MAC的映射表到自己的ARP表项中;
  • 主机A收到应答之后,组装ICMP请求报文并发送;报文的目的MAC地址是交换机的MAC地址,目的IP还是192.168.2.100;
  • 交换机收到报文后,首先更新MAC地址表(依据源MAC地址);然后查找MAC地址表(依据目的MAC地址),会发现匹配MAC地址的表项(三层交换机为VLAN配置了三层接口IP后会在地址表中添加三层接口的MAC+VID表项),表明需要进行三层转发;
  • 交换芯片(ASIC)依据报文的目的IP去查找其三层表项,这个时候会查找失败;报文送到CPU去进行软件处理;
  • CPU依据报文的目的IP去查找软件路由表,发现匹配了一个直连网段(主机B的网段);于是继续查找软件ARP表(IP和MAC的映射),依旧失败;
  • 交换机会在目的网段对应的VLAN 3的所有端口发送请求地址192.168.2.100的ARP请求;收到PC B的回复后,更新ARP表;
  • 这个时候交换机会修改报文,把目的MAC地址修改成PC B的MAC地址;同时更新交换芯片的三层表项(IP、MAC、出口VLAN、出口端),这样,后续的PC A到PC B的报文就可以直接通过硬件转发了。

整个流程就是一次路由(建立三层硬件表项),多次交换的原理实现了转发性能与三层交换的结合。

  1. 再看另一张组网图


    二层/三层交换机基础_第3张图片

    假设交换机1上配置了静态路由:ip route 192.168.2.0 255.255.255.0 10.0.0.2;同时交换机2上也配置了静态路由ip route 192.168.1.0 255.255.255.0 10.0.0.1
    数据转发的流程和之前组网的类似,区别如下:

  • 交换机1把报文发送到CPU处理的时候,会查找软件路由表,发现匹配路由192.168.2.0/24,下一跳的IP是10.0.0.2;
  • 由于这个时候还没有对应的10.0.0.2的ARP信息,所以会在VLAN4内发送ARP请求,得到回应后更新ARP信息;
  • 接着数据报文转发给交换机2;

1.4. ARP广播

ARP是address resolution protocol的缩写,是通过解析IP地址来获取MAC地址的一个网络传输协议。

1.5. 桥接(Network Bridge)

功能上和集线器类似,用于连接网段的设备;但是集线器工作与物理层,桥接器工作与数据链路层,功能和网络交换机类似。网桥可以看作是一个端口较少的交换机。

你可能感兴趣的:(二层/三层交换机基础)