|
沙发

楼主 |
发表于 2016-2-3 01:18:42
|
只看该作者
实验部分
拓扑如下图所示:
先进第一个交换机 LSW1,创建 3 个 vlan :
<Huawei>sys
[Huawei]sysname S1 //为方便起见,重命名交换机
[S1]vlan batch 10 20 30 //一次性创建 3 个 vlan
配置 S1 的 3 个与主机相连的接口为 access 类型和相应的 vlan:
[S1]int e0/0/1
[S1-Ethernet0/0/1]port link-type access
[S1-Ethernet0/0/1]port default vlan 10
[S1-Ethernet0/0/1]int e0/0/2
[S1-Ethernet0/0/2]port link-type access
[S1-Ethernet0/0/2]port default vlan 20
[S1-Ethernet0/0/2]int e0/0/3
[S1-Ethernet0/0/3]port link-type access
[S1-Ethernet0/0/3]port default vlan 30
disp vlan 查看创建情况:
没有问题,都已经创建好了。
同样方法设置第二台交换机,这里就不做赘述了。
但还没有对 trunk 口配置,此时像在 CLIENT2 上 ping CLIENT4 是不会通的。所以接下来还要配置 trunk 接口,在第一台交换机上:
[S1]int g0/0/1
[S1-GigabitEthernet0/0/1]port link-type trunk
[S1-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20 30 //允许 vlan10 vlan20 vlan30 可以通过 trunk 链路
这个例子里并没有用到 vlan10,上面可以不用对 vlan10 进行配置。实际上,有一条不必要敲入的命令:
这条命令是用来配置 trunk 上的 pvid 。如上,如果 pvid 的值为 vlan1,那么就是说 vlan1 中的数据帧通过 trunk 时,是不会打上 tag 的,而其他的则需要打上标记。
运行 display port vlan 命令,查看一下端口上的 vlan 配置情况:
从上图中可以看到,g0/0/1 上的 PVID 值为 1 ,最后一栏 “Trunk VLAN List” 里可以看到可以通过的 vlan 为 vlan1, vlan10, vlan20, vlan30 中的数据。
可以运行 display port vlan active 命令即可验证 vlan1 中的数据通过 trunk 时是不打标记的,而 vlan10, vlan20, vlan30 是打标记的,如下图所示:
再用 display vlan 命令查看一下:
从图中可以看到,vlan10, vlan20, vlan30 中,都存在有 TG:GE0/0/1(U) 这一行,这是说明这几个 vlan 中的数据通过 G/0/0/1 这个端口时,是需要打上标记的。
此外,这每个 vlan 里都有 GE0/0/1 这条,那么 trunk 接口到底是属于哪个 vlan 呢?有的人说 trunk 不属于任何接口;也有人说 trunk 不属于任何接口(貌似这种说法和命令的输出结果更为贴切)。
交换机 S2 上同样方法配置,这里就不赘述了。
OK,到此就整个配置完了。可以再次从 CLIENT2 上 ping CLIENT4 或从 CLIENT3 上 ping CLIENT5 ,此时应该都能 ping 通了,反之亦然。
为了从图形上更直观的体验这个 tag,可以对 trunk 接口进行抓包(抓 ping 的 ICMP 包),由下图可以明显得看到这个标记了:
到这里,应该算完了,但似乎还有点意犹未尽。上面对 trunk 配置的 pvid 是 vlan1,那下面再来修改一下其它值,以进一步理解。
在 S1 中,将 trunk 的 pvid 配置为 vlan 20 :
[S1-GigabitEthernet0/0/1]port trunk pvid vlan 20
同样,在 S2 中,将 trunk 的 pvid 配置为 vlan 20 ,然后查看一下:
这时可以看到,这时 trunk 上的不打标记的是 vlan20 了,同样向上面抓包可以验证 CLIENT2 发往 CLIENT4 的数据帧中不再有 802.1q 这个标记了;从从 CLIENT3 ping CLIENT5 时,所抓的数据帧中仍然会带有该标记。
现在知道,在划分 VLAN 后,在交换机的内部,始终都会先打上标签;而当数据包流经 trunk 链路时,会根据 trunk 上的 pvid 配置的不同,会决定剥去那些 VLAN ID 与 pvid 具有相同的值的数据帧的标记。那么此时又有个问题,如果两台交换机 trunk 端口上配置的 pvid 值不同,那会发生什么情况?
假设在 S1 上配置的 PVID 为 vlan20,在 S2 上配置的 PVID 为 vlan30,那么当 CLIENT2 发送数据到 CLIENT5 (S2 下的 vlan30 中)时,数据包在流出 S1 的 trunk 口时,会被剥去标记;当流入 S2 的 trunk 时,由于该包没有 tag,于是 S2 会为其加上 tag (vlan30),这样一来造成的结果是,vlan2 中的主机可以直接和 vlan3 中的主机进行通讯了。同样按照修改 trunk 上 pvid 值的方法,看看修改后,是不是 CLIENT2 可以 ping 通 CLIENT5 了 。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|