vlan间通信

VLAN间通信

背景

划分VLAN后,不同VLAN的用户间不能二层互访,这样能起到隔离广播的作用。但实际应用中,不同VLAN的用户又常有互访的需求,此时就需要实现不同VLAN的用户互访,简称VLAN间互访。

实验拓扑

vlantx001

详解:R2划入vlan2,R3划入vlan3,与交换机之间采用access口,由于交换机g0/0/1需要通过多个vlan,所以配成trunk口。R2和R3相当于主机,发送和接受的数据都不带标签,交换机g0/0/2收到R2发送的数据,打上标签vlan2,然后发出去;交换机g0/0/1收到数据后,发现vlan的标签允许通过,则数据带着vlan2的标签通过;然后交换机g0/0/3口转发数据时,发现自己的pvid是vlan3,和vlan2不一样,所以不接受,则vlan2和vlan3不能通信。

在某些场景下,需要特定vlan之间通信

方法一:dot1q接口

在r1上配置两个dot1q接口,g0/0/1.1和g0/0/1.2,分别对应vlan2和vlan3,作用就是可以终结vlan标签(剥离),vlan2的标签到r1后,被剥离掉vlan2的标签,然后转发时又被g0/0/1.2打上vlan3的标签,交换机g0/0/1通过,到g0/0/3,access口发现和自己的pvid一样,然后剥离掉标签,转发数据帧给r3.

方法二:vlanif接口:交换机上配置vlanif2和vlanif3,ip地址配成192.168.2.254和192.168.3.254

其实就是相当于两个不同网段的网关,然后实现三层的转发

Access接口

交换机上常用来连接用户PC、服务器等终端设备的接口。Access接口所连接的这些设备的网卡往往只收发无标记帧。Access接口只能加入一个VLAN。只能允许一个VLAN通过。

转发原则

接收原则:

①收到不带标签的数据帧,打上标签,vlan id=端口的PVID

②收到带标签的数据帧,检查数据帧vlan id是否和端口的PVID相同,相同直接接收;不同拒绝接收

发送原则:

①数据帧vlan id和端口PVID 相同,剥离标签发送;

②数据帧vlan id和端口PVID 不同,禁止发送。

Trunk接口

Trunk接口允许多个VLAN的数据帧通过,这些数据帧通过802.1Q Tag实现区分。Trunk接口常用于交换机之间的互联,也用于连接路由器、防火墙等设备的

子接口

转发原则

接收原则:

①收到不带标签的数据帧,打上标签,vlan id=端口的PVID,然后查看该vlanid是否在允许列表中,是–接收,不是–拒绝

②收到带标签的数据帧,查看该vlan id是否在允许列表中,是–接收,不是–拒绝

发送原则:

查看vlan id是否在允许列表中,I:不是–拒绝发送;II:是,查看接口的PVID和vlan id是否相同,相同–剥标签发送;不同–直接发送。

Hybrid接口

Hybrid接口与Trunk接口类似,也允许多个VLAN的数据帧通过,这些数据帧通过802.1Q Tag实现区分。用户可以灵活指定Hybrid接口在发送某个(或某些)VLAN的数据帧时是否携带Tag

转发原则

接收原则:

①收到不带标签的数据帧,打上标签,vlan id=端口的PVID,然后查看该vlanid是否在允许列表中,是–接收,不是–拒绝

②收到带标签的数据帧,查看该vlan id是否在允许列表中,是–接收,不是–拒绝发送原则:查看vlan id是否在允许列表中,I:不是–拒绝发送;II:是,是否带标签发送取决于接口的配置。

PVID

可以手工修改,默认是1,access口的就是本身的vlan号,trunk可以有一个主vlan和多个副vlan,收到的数据和主vlan相同就剥离转发,收到和主vlan不一样的标签,查表,看看是不是在允许通过的列表,如果有,就带着原来的转发,要是没有,就不让过去啦。

实验配置过程

# R2和R3的IP地址及网关配置

system-view

Enter system view, return user view with Ctrl+Z.

[R2]interface GigabitEthernet 0/0/1

[R2-GigabitEthernet0/0/1]ip address 192.168.2.1 24

[R2-GigabitEthernet0/0/1]quit

[R2]ip route-static 0.0.0.0 0 192.168.2.254

配置默认路由,相当于给设备配置了网关。

system-view

Enter system view, return user view with Ctrl+Z.

[R3]interface GigabitEthernet 0/0/1

[R3-GigabitEthernet0/0/1]ip address 192.168.3.1 24

[R3-GigabitEthernet0/0/1]quit

[R3]ip route-static 0.0.0.0 0 192.168.3.254

# 在S1上对R2和R3进行VLAN划分

[S1]vlan batch 2 3

Info: This operation may take a few seconds. Please wait for a moment…done.

[S1]interface GigabitEthernet 0/0/2

[S1-GigabitEthernet0/0/2]port link-type access

[S1-GigabitEthernet0/0/2]port default vlan 2

[S1-GigabitEthernet0/0/2]quit

[S1]interface GigabitEthernet 0/0/3

[S1-GigabitEthernet0/0/3]port link-type access

[S1-GigabitEthernet0/0/3]port default vlan 3

步骤 1 通过Dot1q终结子接口实现VLAN间互访

# 配置S1上的Trunk接口

[S1]interface GigabitEthernet 0/0/1

[S1-GigabitEthernet0/0/1]port trunk allow-pass vlan 2 3

因为VLAN间互访数据要由R1来终结VLAN所以S1和R1之间的链路要允许VLAN2和VLAN3通过**。

# 在R1上创建并配置Dot1q终结子接口

[R1]interface GigabitEthernet 0/0/1.2

创建并进入子接口视图。2代表子接口的编号,一般建议子接口编号与VLAN ID相同,方便记忆。

[R1-GigabitEthernet0/0/1.2]dot1q termination vid 2

dot1q termination vid vlan-id命令用来配置子接口Dot1q终结的VLAN ID。

以此配置为例:当GigabitEthernet0/0/1接口收到带有VLAN 2标签的数据之后,会交由2号子接口进行VLAN终结操作并做后续处理。从2号子接口发出的数据也会带上VLAN 2的标签。

[R1-GigabitEthernet0/0/1.2]arp broadcast enable

终结子接口不能转发广播报文,在收到广播报文后它们直接把该报文丢弃。为了允许终结子接口能转发广播报文,可以通过在子接口上执行命令arp broadcast enable使能终结子接口的ARP广播功能。部分设备默认使能该功能,此命令的配置根据设备而定。

[R1-GigabitEthernet0/0/1.2]ip address 192.168.2.254 24

[R1-GigabitEthernet0/0/1.2]quit

[R1]interface GigabitEthernet 0/0/1.3

[R1-GigabitEthernet0/0/1.3]dot1q termination vid 3

[R1-GigabitEthernet0/0/1.3]arp broadcast enable

[R1-GigabitEthernet0/0/1.3]ip address 192.168.3.254 24

[R1-GigabitEthernet0/0/1.3]quit

# 检测VLAN间互访联通性

ping 192.168.3.1

PING 192.168.3.1: 56 data bytes, press CTRL_C to break

Reply from 192.168.3.1: bytes=56 Sequence=1 ttl=254 time=60 ms

Reply from 192.168.3.1: bytes=56 Sequence=2 ttl=254 time=40 ms

Reply from 192.168.3.1: bytes=56 Sequence=3 ttl=254 time=110 ms

Reply from 192.168.3.1: bytes=56 Sequence=4 ttl=254 time=70 ms

Reply from 192.168.3.1: bytes=56 Sequence=5 ttl=254 time=100 ms

— 192.168.3.1 ping statistics —

5 packet(s) transmitted

5 packet(s) received

0.00% packet loss

round-trip min/avg/max = 40/76/110 ms

tracert 192.168.3.1

traceroute to 192.168.3.1(192.168.3.1), max hops: 30 ,packet length: 40,press CTRL_C to break

1 192.168.2.254 30 ms 50 ms 50 ms

2 192.168.3.1 70 ms 60 ms 60 ms

此时VLAN2和VLAN3之间已经可以正常的互访。

步骤 2 通过VLANIF接口实现VLAN间互访

# 清除上一步配置

[S1]interface GigabitEthernet 0/0/1

[S1-GigabitEthernet0/0/1]undo port trunk allow-pass vlan 2 3

[S1-GigabitEthernet0/0/1]undo port link-type

[R1]undo interface GigabitEthernet 0/0/1.2

[R1]undo interface GigabitEthernet 0/0/1.3

# 在S1上创建相应的VLANIF接口

[S1]interface Vlanif 2

interface vlanif vlan-id命令用来创建VLANIF接口并进入VLANIF接口视图。只有先通过命令创建VLAN后,才能执行interface vlanif命令创建VLANIF接口。

[S1-Vlanif2]ip address 192.168.2.254 24

[S1-Vlanif2]quit

[S1]interface Vlanif 3

[S1-Vlanif3]ip address 192.168.3.254 24

[S1-Vlanif3]quit

# 检测VLAN间互访联通性

ping 192.168.3.1

PING 192.168.3.1: 56 data bytes, press CTRL_C to break

Reply from 192.168.3.1: bytes=56 Sequence=1 ttl=254 time=100 ms

Reply from 192.168.3.1: bytes=56 Sequence=2 ttl=254 time=50 ms

Reply from 192.168.3.1: bytes=56 Sequence=3 ttl=254 time=50 ms

Reply from 192.168.3.1: bytes=56 Sequence=4 ttl=254 time=60 ms

Reply from 192.168.3.1: bytes=56 Sequence=5 ttl=254 time=70 ms

— 192.168.3.1 ping statistics —

5 packet(s) transmitted

5 packet(s) received

0.00% packet loss

round-trip min/avg/max = 50/66/100 ms

tracert 192.168.3.1

traceroute to 192.168.3.1(192.168.3.1), max hops: 30 ,packet length: 40,press CTRL_C to break

1 192.168.2.254 40 ms 30 ms 20 ms

2 192.168.3.1 40 ms 30 ms 40 ms

此时VLAN2和VLAN3之间已经可以正常的互访。