简介
今天突然在头条上看到一则疑问,交换机能否实现不同网段互通,然后我就想到了前一篇对802.1Q在端口模式access的时候,我讲过在交换机互联的情况下不同vlan同网段是能互通的,然后今天我就来实验一下,然后还有更深入的,如果是同vlan不同网段呢,那是否能互通呢,为什么?
实验环境:
华为的eNSP模拟器
实验一:在不同vlan下同网段能否互通
拓扑:
LSW1配置:
#
vlan batch 20
#
interface Vlanif20
ip address 192.168.1.2 255.255.255.0
#
interface Ethernet0/0/1
port link-type access
port default vlan 20
LSW2配置:
#
vlan batch 10
#
interface Vlanif10
ip address 192.168.1.1 255.255.255.0
#
interface MEth0/0/1
#
interface Ethernet0/0/1
port link-type access
port default vlan 10
#
现在已经配置好了不同vlan,同网段的实验环境了,然后我实验一下能否互通
<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]ping 192.168.1.1
PING 192.168.1.1: 56 data bytes, press CTRL_C to break
Reply from 192.168.1.1: bytes=56 Sequence=1 ttl=255 time=60 ms
Reply from 192.168.1.1: bytes=56 Sequence=2 ttl=255 time=30 ms
Reply from 192.168.1.1: bytes=56 Sequence=3 ttl=255 time=50 ms
Reply from 192.168.1.1: bytes=56 Sequence=4 ttl=255 time=30 ms
Reply from 192.168.1.1: bytes=56 Sequence=5 ttl=255 time=20 ms
--- 192.168.1.1 ping statistics ---
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 20/38/60 ms
能看到他们是能互通的,
为什么,因为
access口数据包的处理过程:
在接收到数据包(untag)时会按照PVID打上tag标签
接受数据包(tag)时会检测是否vid与pvid是否相同,想同接受,不相同丢弃内部传输时
在交换机内部传输时会保留tag标签,所以在同一个交换机的不用vlan是不能互通的发送数据包时
发送数据包时会去除tag标签,所以交换机互联用access模式,不同vlan配置同网段ip是能通讯的
也就是说
LSW1发包经e0/0/1发出后实际没有vlan标志。
同理经LSW2交换机e0/0/1接口接收后又加上了vlan10的头,
也就是说LSW1虽然划了vlan20,但发给LSW2的是没有vlan标志的包,所以LSW2可以接收并转发。
如将LSW1与LSW2间的连接端口改成trunk,那么LSW1发往LSW2的包将会保留vlan2标志,这样的话将无法访问vlan10的LSW2了
实验二:同vlan不同网段下能否互通
先说下我的理解,交换机是属于OSI模型的二层的,
二层交换原理可以概括为 ‘源地址学习,目的地址转发’
既然他们是同一个vlan的,应该也会学习到对方的mac地址表,因为在同一个vlan下嘛,那是不是应该可以通信的。所以我们就做一个实验
配置:
LSW3:
#
vlan batch 10
#
interface Vlanif10
ip address 192.168.2.3 255.255.255.0
#
interface MEth0/0/1
#
interface Ethernet0/0/1
port link-type access
port default vlan 10
#
LSW4:
#
vlan batch 10
#
interface Vlanif10
ip address 192.168.3.1 255.255.255.0
#
interface MEth0/0/1
#
interface Ethernet0/0/1
port link-type access
port default vlan 10
#
好了,测试一下
[Huawei-Vlanif10]ping 192.168.2.3
PING 192.168.2.3: 56 data bytes, press CTRL_C to break
Request time out
Request time out
Request time out
Request time out
Request time out
--- 192.168.2.3 ping statistics ---
5 packet(s) transmitted
0 packet(s) received
100.00% packet loss
嗯?不通?为什么
然后我抓包看了一下,LSW3有发出一个携带自己接口mac地址的广播报文,然后去LSW4上抓包看了一下,发现他也接收到了啊,那为什么会不呢
其实问题是出在ping上,
ping
ping使用ICMP协议,工作于三层,但是从命令本身来说是属于应用层。
所以你们就懂了为什么会不通了吧,二层是通了,mac地址表也有了,但是ping是基于三层的,三层上我们ip都不是同一个网段的,怎么可能互通
结尾
其实细心的人会发现,我这两个实验其实也蛮搞笑的,我的接口都用了access了,那不管我vlan是什么,都是一样的,也就是说二层不管怎么样都是互通的,就是三层ip是不是在同一个网段的问题了。这就是知识理解不够深入的问题呀,所以写了这篇文章。