实验开始
第一步配置环境
第二步配置客户端
如图所示,我们把客户端的ip配置成192.168.1.10,网关设为192.168.1.1
第三步配置交换机1
system-view
sysname LSW1
vlan batch 10
interface ethernet0/0/1
port link-type access
port default vlan 10
quit
interface ethernet0/0/2
port link-type trunk
port trunk allow-pass vlan 10
quit
第四步配置交换机2
system-view
sysname LSW2
vlan batch 10
interface ethernet0/0/1
port link-type trunk
port trunk allow-pass vlan 10
quit
interface ethernet0/0/2
port link-type access
port default vlan 10
quit
第五步配置路由器
system-view
sysname AR1
interface gigabitethernet0/0/0
ip address 192.168.1.1 24
quit
interface gigabitethernet0/0/1
ip address 192.168.2.1 24
quit
第六步配置服务器
这里我们配置的ip地址是192.168.2.10,网关是192.168.2.1
第七步查看连通性
用客户端ping服务器来查看连通性
配置完成。
书上配置为什么ping测试不成功
可以看到我们的配置和书本上的配置只有一个区别,那就是LSW2的2号端口书本上用的配置是
port link-type hybrid
port hybrid untagged vlan 10
书本的配置意思是,通过2号端口出去的数据如果带了vlan 10标签的话就去掉。但是对应ping命令来说需要有回应报文的,所以不合适。
我们可以分析一下为什么不合适
首先我们需要明白的一点,对应华为设备来说,默认的是vlan 1
从发送报文和接受报文两个流程来分析
发出去的报文
这个报文发过去没有问题
报文从客户端出发,发出去一个不带vlan的报文给LSW1的1号端口,这个端口是access类型,收到一个不带vlan的报文,首先给它打上vlan 10的标签,然后从LSW1的2号端口出去,2号端口是trunk类型,当它看见发送的端口是带vlan 10的直接保留vlan 10发送给LSW2的1号端口,这个端口是trunk类型,发现是携带vlan 10的报文,直接带着vlan 10接受从LSW2的2号端口发出去,这个端口是hybrid类型,所以它在转发出去的时候发现是vlan 10标签,在untagged的列表中,所以去掉标签发送给了AR1的0号端口,AR1这个路由器是不能处理vlan的所以直接从1号端口发送出去给到服务器。
接受的报文(有问题)
这里就有问题了
报文从服务器出发,发出一个不带vlan的报文给路由器AR1的1号端口,从AR1的0号端口出来发送给LSW2的2号端口,这个端口是hybrid类型,配置只有untagged,默认的PVID是1,所以给报文带上vlan1从LSW2的1号端口发出,1号端口是trunk类型对于默认的vlan 1,在没有经过特殊配置话都是可以通过的,所以带着vlan 1发给LSW1的2号端口,这个端口是trunk类型,收到vlan 1报文后,转发不出去了!!!
原因
因为我们给LSW1的1号端口配置的是access类型,它只能接受和自己一样的vlan或者不带vlan,现在报文数据是默认的vlan 1所以发不出去,就到不了客户端。
解决办法
所以为了解决这个问题,我把LSW2的2号端口改成access类型,允许vlan 10通过
这样从路由器发给LSW2的2号端口的数据就带上vlan 10,到了LSW1的1号端口,发现也是vlan 10就把标签去掉发送给了客户端。