5.vlan

发布时间 2023-09-05 23:51:32作者: 姬雨晨

vlan简介

什么是vlan

vlan即虚拟局域网,是将一个物理的局域网在逻辑上划分成多个广播域的通信技术

使网络设备能够分辨不同vlan的报文,就需要在报文中添加标识vlan的字段,IEEE802.1Q标准对以太帧格式进行了定义

在以太帧的原MAC地址字段和协议类型字段之间,加入四字节的vlan Tag

  • Type(16位)用来判断本数据帧是否带有vlan Tag,如果不支持802.1Q的设备收到这样的帧会将其丢弃
  • PRI(3位)表示帧的优先级,网络阻塞时,优先发送优先级高的数据帧
  • CFI(1位)字段标识MAC是否以标准格式进行封装,在现代以太网中,这个位不再使用,通常为0
  • VLAN ID(12位)表示该帧所属的vlan,2^12=4096个

VLAN的几个重要概念

UNTAG包:指不携带802.1Q标准的vlan的普通以太网包。

TAG包:指携带802.1Q标准的VLAN以太网包。

注:PC 不能识别和发出带vlan tag的报文。

只有通过交换机的trunk 接口发出的报文才具备 vlan 的标记(802.1q tag)。

注:默认情况下,交换机的一个接口只能从属于一个vlan,只允许该vlan的数据通过。

VLAN ID

VLAN TAG包的VLAN ID号,有效范围是1-4094,0和4095都为协议保留值,

VLAN 0 表示不属于任何VLAN,但携带802.1Q的优先级标签,所以一般被称为Priority-onlyframe,其一般作为系统使用,用户不可使用和删除。

VLAN 1 为默认VLAN,默认情况下所有的接口都位于vlan 1里面 。

VLAN 2-1001 是普通的vlan,1006-1024保留仅系统使用,用户不能查看和使用,1002-1005是支持fddi 和令牌环的vlan,1025-4095是扩展的vlan。Cisco的专有协议isl,相比之下它仅支持的 vlan数目比较少,仅为1-1005。

Priority-only 包

指VLANID为0,优先级为0-7的以太网包。用途:一般用于要求高优先级的重要报文使用,当端口发生拥塞时使其能够优先转发。

PVID

PVID(Port VLAN ID)通常指的是端口的本征 VLAN(Native VLAN),这是通过端口传输的未标记数据帧所属的 VLAN。当数据帧从 Access 端口或未标记的 Trunk 端口进入交换机时,它们会被归类到本征 VLAN。

默认情况下,本征 VLAN 通常设置为 VLAN 1。也就是说,如果交换机的配置没有进行特殊更改,那么未标记的数据帧将会被归类到 VLAN 1。然而,这可以通过配置进行更改,以将未标记数据帧分配给其他 VLAN。

注意:PVID 仅在 Trunk 端口上的未标记数据帧中使用。在 Access 端口上,所有传入的数据帧都被假设为属于该端口配置的 VLAN,而不需要使用 PVID

VLAN表

记录所有端口的PVID和端口允许通过的vlan列表

配置VLAN的信息表,表示交换机的各个端口所属于的VLAN ID,当交换机进行交换数据时则查看该表进行业务转发。VLAN表的容量一般支持1-32个VLANID。

qinq技术

随着以太网技术在运营商网络中的大量部署,IEEE 802.1Q中定义的标准vlan无法满足城域以太网中标识大量用户的需求,QinQ技术的产生解决了这一问题。

QinQ技术是一项扩展vlan空间的技术,通过在802.1Q标准定义报文的基础上再增加一层802.1Q的标签头来达到扩展vlan空间的功能,使得vlan数量增加到4096×4096

随着城域以太网的发展以及运营商精细化运作的要求,QinQ的双重标签又有了进一步的使用场景:QinQ VLAN和Stacking VLAN

QinQ VLAN技术是将用户私网VLAN Tag封装在公网VLAN Tag中,使报文带着两层VLAN Tag穿越运营商的公网,在公网中报文仅根据外层VLAN Tag传播,用户的私网VLAN Tag在传输过程中被报文的数据部分来进行传输,使用QinQ VLAN特性的专线业务,可以实现企业私网内不同地域分支机构间的互联和安全通信。

Stacking VLAN是使内外层标签可以代表不同的信息,如外层标签代表业务供应商,内层标签代表用户,在一个二层的交换城域网中存在多个互联网服务供应商ISP,为了将ISP提供的业务迅速发放给指定的用户群,可以将Stacking VLAN的外层VLAN Tag用于标识ISP,内层VLAN Tag用于标识用户,这样不同的用户群可以通过不同的外侧VLAN Tag,批量进入到指定的ISP网络,获得IP提供的业务

三种端口模式

access 口:接终端设备(如计算机、服务器、打印机等)

  1. 端口接受数据时,对于未标记的数据包会加上端口的PVID作为vlan,发送数据时,会将打端口PVID的vlan剥离,成为不打vlan的数据包。
  2. 不能接受或发送带vlan的报文。

trunk 口:干道 主干链路 通常用于交换机和交换机之间,通过一个接口传输多个vlan 的数据包。

对于未标记的数据包处理方式同access接口,还能处理带vlan的报文。

hybrid 口:混合口 既可以接PC也可以接交换机 (华为设备的默认接口模式) Tag/unTag

路由器的端口通常被配置为更为通用的接口,其主要功能是进行网络层的路由转发。路由器可以连接不同的子网,处理来自不同 VLAN 的数据,执行网络层的路由和转发操作。

虽然路由器在一些情况下可能会处理类似于 Access 或 Trunk 接口的数据,但它们通常不会像交换机那样强调这种区分。路由器的接口配置更注重网络层的路由和转发能力,以支持不同子网之间的通信,端口的配置更倾向于更通用的配置,更加灵活,而且不会像交换机那样专门用于连接终端设备或进行 VLAN 的传输。

划分vlan

交换机-基于端口划分vlan

交换机trunk-------trunk交换机

1.创建vlan

vlan 10                  #创建vlan 10

vlan batch 20  30  40    #同时创建三个vlan

2.查看vlan

3.修改接口模式,划分vlan(端口绑定vlan)

access模式
int gi 0/0/1
   port link-type access   #将接口类型配置为access
   port default vlan 10    #将接口划分到vlan 10 里面
trunk模式
int gi 0/0/x
    port link-ty trunk
    port trunk allow-pass vlan all            #trunk端口允许所有vlan的数据通过
    port trunk allow-pass vlan 10 20 30       #trunk端口允许3个vlan的数据通过
    port trunk pvid vlan 20                   #将trunk 接口的pvid 改为vlan 20

4.查看端口模式与vlan

dis port vlan active

5.更改端口模式

将交换机的接口属性更改时:例如由access-->trunk 或者由trunk-->access

必须清除接口的所有配置,然后再重新配置

[ ]clear configuration int gi 0/0/2

hybrid 混合接口:

hybrid 接口是一种混合接口,华为交换机默认的接口封装类型。是华为设备特有的接口,思科没有。hybrid 接口同时具备access和trunk 的两种功能。

接口hybrid模式配置
不用设置 port link-type hybrid

将hybrid 口当成access 口来使用:

int gi 0/0/1
    port hybrid pvid vlan 10    #将接口0/0/1 划入vlan10,效果等价于port default vlan 10
    port hybrid untagged vlan 10

将hybrid 口当成trunk 来使用:

interface GigabitEthernet0/0/3
    port hybrid tagged vlan 10 20

使用hybrid 接口实现特殊通信:

房间之间不能通信,但是每个房间都可以与出口路由器通信

sw1:

interface GigabitEthernet0/0/1
    port hybrid pvid vlan 10
    port hybrid untagged vlan 10 30

interface GigabitEthernet0/0/2
    port hybrid pvid vlan 20
    port hybrid untagged vlan 20 30

interface GigabitEthernet0/0/3
    port hybrid pvid vlan 30
    port hybrid untagged vlan 10 20 30

vlan高级配置之基于mac地址的vlan

vlan batch 10 20

vlan 10
    mac-vlan mac-address 0000-0000-0001

vlan 20
    mac-vlan mac-address 0000-00000002

interface GigabitEthernet0/0/1
    port hybrid untagged vlan 10 20          #配置混合接口
    mac-vlan enable                          #启用基于mac地址学习vlan

vlan高级配置之基于IP地址的vlan

sw2 创建vlan  并将相应接口划入相应vlan 和sw1 相连的接口配置trunk

sw1:

int gi 0/0/2
    port link-ty trunk
    port trunk allow-pass vlan 10 20
    
interface GigabitEthernet0/0/1
    port hybrid untagged vlan 10 20
    ip-subnet-vlan enable                                #启用基于ip地址学习vlan

vlan batch 10 20

vlan 10
    ip-subnet-vlan 1 ip 192.168.10.0 255.255.255.0

vlan 20
    ip-subnet-vlan 1 ip 192.168.10.0 255.255.255.0

vlan mapping(vlan翻译)

sw3 sw4 配置vlan 和trunk,交换机和交换机之间级联的接口配置trunk

sw1:

vlan 100

int gi 0/0/1
    port link-ty trunk
    port trunk allow-pass vlan 100

sw2 :

interface GigabitEthernet0/0/1
    port link-type trunk
    port trunk allow-pass vlan 30 to 31

interface GigabitEthernet0/0/3
    port link-type trunk
    port trunk allow-pass vlan 32

int gi 0/0/2
    port link-type trunk
    port trunk allow-pass vlan 100
    qinq vlan-translation enable  启用vlan 标签的转换
    port vlan-mapping vlan 30 to 39 map-vlan 100 将vlan的标签30-39 转换成100

注:trunk 封装:802.1q 协议 

vlan间路由

不同vlan间 隔离广播的同时,也会隔离arp,从而导致单播也无法通信。如果想让不同的vlan间 单播可以通信,还需要三层设备(路由器、三层交换机)做中转才能实现VLAN间互通,当使能VLAN间路由后,则ARP广播包,多播包以及单播包都能够在VLAN间互相通信。

  • ① 同vlan id可通信
  • ② 不同vlan id通信,
    • 方法① Vlan剥掉(翻译)
    • 方法② 多层交换机--SVI(常用):switch virtual interface
    • 方法② 路由器--单臂路由

超级vlan

ip是同网段

vlan batch 10 20 30

将相关接口划入相应vlan (略)

vlan 30
    aggregate-vlan                          #将vlan30 定义为聚合vlan
    access-vlan 10 20                       #将vlan 10 20 定义为vlan30 的子vlan

超级 VLAN 是一种将多个普通 VLAN 组合在一起的技术,从而形成一个更大的逻辑单元。它通常用于更好地管理和组织网络中的 VLAN,以便对它们进行集中管理、配置和隔离。这有助于简化网络管理和提高效率。

VLAN 10 和 VLAN 20 作为 VLAN 30 的子 VLAN,它们的数据在网络层不会有隔离。这意味着,如果设备在 VLAN 10 和 VLAN 20 中有正确的 IP 地址和子网掩码配置,它们应该能够直接通信,就好像它们属于同一子网。


int vlan 30
    ip add 192.168.1.1 24                                 #该地址将作为vlan 10 和vlan 20 的网关

在一些网络设备上,你可以为任何一个普通的 VLAN 配置 VLANIF 接口并为其分配一个虚拟 IP 地址,使该 VLAN 能够与 IP 网络进行通信。这允许不同 VLAN 之间的互通和路由。

VLANIF 是 VLAN 接口(VLAN Interface)的缩写,是虚拟接口。

一个 VLAN 可以通过 VLANIF 接口与路由器连接,以便该 VLAN 中的设备能够与其他网络通信。

这种配置在一些网络设备上非常有用,特别是在路由器、三层交换机等支持多层网络功能的设备上。

所以,不仅超级 VLAN 可以配置 VLANIF 接口和 IP 地址,普通的 VLAN 也可以进行类似的配置,以实现 VLAN 间的互通和与其他网络的通信。


SVI(vlanif)

ip是不同网段

SVI 是 "Switched Virtual Interface" 的缩写,中文翻译为 "交换虚拟接口"。

每个 SVI 与一个 VLAN 相关联,它的作用类似于一个 VLAN 接口(VLANIF 接口),允许为 VLAN 分配 IP 地址,并实现在不同 VLAN 之间的路由转发。

vlan batch 10   20

将接口划入vlan 配置略

为每个vlan创建一个vlanif接口作为网关

int vlanif 10
   ip address 192.168.10.1 24                            #给vlan 10 配置ip地址10.1 作为vlan 10 用户的网关

int vlanif 20
   ip add 192.168.20.1 24 

调试:

路由表

注意:vlan间路由通过三层设备路由,使得不同vlan间可以互相通信。但是仅仅允许单播通信。不同vlan 之间广播帧依然被隔离既没有失去vlan原来的意义。

单臂路由

①  交换机上联口(int gi 0/0/3)配置为trunk模式并放通vlan

②  路由器启用子接口并配置接口ip

interface Ethernet0/0/0.10
    dot1q termination vid 10                             #改子接口指向vlan 10,并封装dot1q协议
    ip address 192.168.10.1 255.255.255.0                #配置接口ip
    arp broadcast enable                                 #开启ARP广播

interface Ethernet0/0/0.20
    dot1q termination vid 20
    ip address 192.168.20.1 255.255.255.0
    arp broadcast enable