computer network

VLAN:虚拟局域网。

作用:可以用于标记数据,用来分割广播域。

VXLAN:拓展局域网


什么是广播域?

广播帧可泛洪的区域。路由器实现对广播域的分割,原因是路由器的接口只会接收或者丢弃广播帧,而不会泛洪广播域。

路由器不会泛洪,只有接收和丢弃。泛洪的范围是广播域,一般是多个交换机组成。所以路由器可以划分广播域。


广播域过大会有什么影响或危害?

交换机占据网络结构的一半以上,如果交换机多,终端必然也多。

  1. 交换机需要处理的数据帧数量增多,泛洪行为增多,从而设备开销增大。一个教室人越多,越难管理。

  2. 广播域过大会造成信息的泄露,安全性较差。

  3. 如果广播域过大,二层环路风险会增加,二层环路受影响的范围也会增大。

    老化,导致老板主机记录不见,报表发送当作未知广播帧,导致泛洪,导致所有人都能收到这份文件。

如果划分了 VLAN ,那么即使出现了环路也是在局域网内泛洪,不会影响其他局域网。


VLAN(Virtual Local Area Network),即虚拟局域网,是将一个物理的局域网在逻辑上划分成多个广播域的技术。通过在交换机上配置VLAN,可以实现在同一个VLAN内的用户可以进行二层互访,而不同VLAN间的用户被二层隔离。这样既能够隔离广播域,又能够提升网络的安全性。

VLAN的特点:在同一个广播域去实现对局域网的分割,相同 VLAN 内的设备可以实现二层互访,不同 VLAN 内的设备无法实现二层互访,需要借助三层设备(三层交换机或者路由器)去实现三层互访。


VLAN 帧格式

tag 插入到源 mac 地址与 type 类型中,后续字段都会顺延。

VLAN 长度为 4 字节 32 bits:

  1. TPID

    数值固定为 0x8100,作用是为了标记此数据已经携带 tag 标签。

    如果交换机收到带有 tag 的数据帧,则会按照端口特性去处理数据帧,

    如果终端设备收到带有 tag 的数据帧,会直接丢弃。

  2. PRI

    优先级,范围是 0-7,默认为0,数值越高表示优先级越高,当交换机发生拥塞时,优先级越高的数据帧优先转发。

  3. CFI

    标准以太网服务位,固定为 0,为以太网服务的字段,可以忽略

  4. VLAN ID

    用于标记数据帧的 VLAN:1~4094(首尾去掉),默认情况下,华为交换机都属于 VLAN1。

通过抓包软件可以获取到,在第三行。

统一标准 802.1Q

携带了 tag 的帧,通过 tag 来判断是否在同一局域网


交换机的端口特性

access 链路:接入链路,一般配置于交换机与终端设备之间,也配置于交换机与路由器之间;只需在交换机一端的接口配置为 access 端口即可。

trunk 链路 : 干道链路,一般配置于交换机与交换机之间。需要在两端的接口上都需要配置接口为 trunk 端口。

tag 的处理方式与端口类型有关。

华为交换机的端口类型

access 端口:接入端口

trunk 端口:干道接口

hybird 端口:混合端口,既拥有 access 端口的部分特性也拥有 trunk 端口的部分特性,华为默认的端口类型。

qinq 端口:隧道端口,用于实现部分复杂的功能。

PVID:接口默认的 VLAN id,默认为 1。

不同端口对数据帧的处理方式:

  1. access 端口

    • 如果接收不带 tag 的数据帧,则给数据帧打上 PVID 之后接收数据帧。

    • 如果接收带 tag 的数据帧,则对比 tag 与接口的 PVID ,如果相同则接收,如果不同则直接丢弃。

    • 如果发送带有 tag 的数据帧,则对比数据帧中的 tag 与接口的 PVID,如果相同,则剥离 tag 后发送(终端无法接收带有 tag 的数据帧);如果不同不同,则直接丢弃。


display port vlan

默认可以 ping 通,创建 vlan

vlan ?       # 创建 vlan (1 默认的,不用创建)
vlan 10      # 创建 vlan 10,在系统视图下
display vlan # 可以看到所有端口都在 1,10 什么都没有
vlan batch 10 20 30 # 批量创建 vlan
vlan batch 1 to 100 # 创建 1~100 的 vlan

划分 VLAN,修改 1 号端口

int g0/0/1  # 进入接口 1
port link-type ? # 提示,4个类型,默认为 hybrid 端口
port link-type access # 修改接口类型为 access 端口
port default vlan 10 # 修改 access 端口的pvid,修改为 vlan10
display port vlan # 相应的验证

修改 2 号端口

int g0/0/2              
port link-type access
port default vlan 20

trunk 端口

实验配置

注意:双方端口的类型都需要配置为 trunk,并且都需要允许 vlan 通过

默认情况下,trunk 端口只允许 vlan 1 通过,需要将 vlan 添加到允许通过列表中。

int g0/0/3
port link-type trunk   
port trunk allow-pass            # 将接口类型修改为 trunk 接口
port trunk allow-pass vlan 10    # 将 vlan 10 添加进允许通过列表中
port trunk pvid vlan 10          # 将 trunk 端口的 pvid 修改为 vlan 10
port trunk allow-pass vlan 10 20 # 将10 和 20 添加到白名单