传统二层组网中,默认所有网络都在同一个广播域。
一般来说,相同VLAN之间可以直接通信,不同VLAN之间不能直接通信。
二层交换机:指的是只具备二层交换功能的交换机
三层交换机:除了具备二层交换机的功能,还支持通过三层接口(如vlanif)实现路由转发功能。
vlanif接口是一种三层的逻辑接口,支持VLANTag的剥离和添加,因此可以通过vlanif接口实现vlan之间的通信。
单臂路由
在路由器上创建子接口,封装dot1协议,开启广播功能,开启后可以处理ARP广播。
interface GigabitEthernet0/0/0.10
创建一个子接口,这个子接口属于GI0/0/0物理口下面的,子接口的编号为10(类似名称为10)
ip address 192.168.1.1 255.255.255.0
给子接口配置IP地址为192.168.1.1
dot1q termination vid 10
让该子接口归属VLAN 10,让接口具备接受VLAN 10的数据和发送VLAN 10的数据
arp broadcast enable
打开arp广播功能(没有开启,子接口不具备arp请求功能,但是能够应答)
使用VLANIF实现VLAN间通信
VLANIF接口是一种三层的逻辑接口,支持VLAN Tag的剥离和添加,因此可以通过VLANIF接口实现VLAN之间的通信。
VLANIF接口编号与所对应的VLAN ID相同,如VLAN10对应VLANIF10
VLANIF转发流程
假设PC、三层交换机都已经存在相应的ARP或MAC表项
PC1与PC2之间通信过程:
PC1通过计算,发现PC2与自身不在同一个网段,判断为三层通信;将去往PC2的流量发给网关(VLANIF10)。PC1发送的数据帧:源MAC为PC1的MAC,目的MAC为VLANIF10的MAC。源IP为PC1的IP,目的IP为PC2的IP。
交换机收到PC1发往的去往PC2的报文,经解封装发现目的MAC为VLAN10接口的MAC地址,所以将报文交给路由模块处理。路由模块解析发现目的IP为192.168.20.2,非本地接口存在的IP地址,因此需要对该报文三层转发。查找路由表后,发现VLANIF20中有直连路由。
查找ARP表查到192.168.20.2、获取该地址的MAC地址,交由交换模块重新封装为数据帧。交换模块查找MAC地址表以明确报文出接口、是否需要携带VLAN Tag。最终交换模块发送的数据帧:源MAC为VLANIF20的MAC,目的MAC为PC2的MAC,剥离VLAN Tag发送。