1. 背景
1.1. VLAN
IEEE802.1Q协议用于在数据帧头加上VLAN信息,使得数据帧可以正确的传送到相应的VLAN内。
VLAN划分一般按照端口,也就是物理位置相近的设备划分,实际上,人们的实际工作也是把职能业务相近的部门放在物理位置相近的地方。因此,按照端口划分基本上就是按照业务划分。另外还要考虑业务部门的纵向连接,如市局财务处对分局财务科等。
传统的路由网段是自然天成的物理结构,而VLAN 是通过对交换机的设置而人为实现的.
- VLAN 所表现的灵活性通过路由器的虚拟专用网络技术或相应的路由策略技术都可以实现,使得 VLAN 的必要性不是那么充分。
- 所有的VLAN 都经过中心路由器(当然可以配置备份的中心路由器),也就是所有的广播都经过中心路由器. VLAN 技术和交换机设备的结合,事实上已将本质上基于广播机制的以太网转变为点到点的通讯。
所以只有一种情况适合做VLAN,即:网络的站点数在几百个左右的规模,采用全交换加中心路由器的结构,按照相应的原则划分子网,各子网之间的通讯量很少,主要是子网内部的通讯,这时 VLAN 才会表现出其独特的优点。记住:“能交换就交换,必须路由才路由”的原则、“80/20”的原则依然是有效的。 目前,现有的网络设备已能够支持在一个网络上同时划分4096个VLAN。
1.2. Trunk
VLAN的配置是通过VTP(VLAN Trunk Protocol 即VLAN干道协议)来进行的。VTP是一个OSI7层模型中第2层的消息传递协议.在基于端口划分的VLAN中,Trunk的本意在于一个端口连接的有多个VLAN的情况下(延伸的也是),带有VLAN端口标志的包仍然可以通过此端口转发.
一个交换机只可以属于一个VTP域,这个交换机可以在所在的VTP域内的VLAN间交换信息。VTP中的每个交换机都要在自己连接到Trunk的端口上向其他交换机公告VLAN信息,信息版本号(revision number
用于确认哪台交换机的信息比较新)。
1.3. 从设计者的角度
为企业内不同部门分配不同的IP子网,接入不同的VLAN,设置VLAN会有如下几种情况,可能不是所有情况都有必要:
- 相同VLAN相同网段(如部门之内)
- 不同VLAN同一网段(如部门之内)
- 不同VLAN不同网段(如跨部门)
- 相同VLAN不同网段(如跨部门同一工作组)
划分子网,子网网段间不能直接进行通讯。划分VLAN,每个VLAN间也不能直接通讯。那么设置VLAN与设置不同的网段有什么区别?
子网划分通过IP和掩码很轻易就能看出,这种易识别性在日常管理中是很重要的。而VLAN是更下一层的网络访问控制手段,也可以防止网络风暴.在工作原理上,寻址包对二层交换机是透明的,二层交换机只是会根据vid
号判断发向哪个端口.值得一提的是,三层交换机下,不同VLAN同一网段无法配置.
所以对于如上的情况,
- 不同的VLAN可以限制同一子网的PC接受到信息
- 同一交换机不同的网段不能通信
- 不同的网段本来就可以通过路由访问控制列表来控制.
- 而如果是在同一VLAN,因为不用经过路由器,即使不同网段也可以通信.
2. 需求

工具 Boson是被誉为目前操作最接近真实环境的模拟工具。与真实实验相比,使用它省去了我们制作网线连接设备,频繁变换CONSOLE线,不停地往返于设备之间的环节。同时,它的命令也和最新的Cisco的IOS保持一致,能模拟出多种连接方式(如PSTN、ISDN、PPP等)。
2.1. STEP1
启动Boson Network Designer程序进入拓扑结构绘制界面,界面左侧是Boson提供的模拟设备,有路由器、交换机、PC、线缆等,按照题图绘制拓扑结构.

- console接口:Serial口,用于初始配置,因为此时路由器没有局域网地址,无法通过网口(即Ethernet口)登录;也用于路由器之间的对接(经本人实验,不用也可)
- ethernet:网口,默认的只有1个口,可以选择2个或多个口
2.2. STEP2
2.2.1. 配置它们的ip地址
使用命令如ipconfig /ip 172.16.1.2 255.255.255.0
2.2.2. pc1和pc2在同一个网段:
pc1:172.16.1.2
pc2:172.16.1.3
2.2.3. pc3、pc4、pc5、pc6、pc7、pc8在同一网段(配置成):
pc3:172.16.2.4
pc4:172.16.2.5
pc5:172.16.2.6
pc6:172.16.2.7
pc7:172.16.2.8
pc8:172.16.2.9
2.3. STEP3
2.3.1. 配置交换机,使得同一交换机的PC机互连(默认是VLAN1)
一些命令列举:
enable // 从用户模式进入特权模式
show version // 显示交换机版本
conf t // config terminal的缩写,进入全局配置模式
host 2950 // 给交换机重命名
int fe 0/1 // interface的简写,进入0/1端口
speed 100 // 设置端口速率100M
du full // 全双工
no shut // 激活端口
exit //退出端口
copy run start //保存端口设置
show int //查看全部端口
配置过程
同一交换机的PC机互连
2.3.2. 配置交换机与交换机之间的连接,使同一网段的PC机可以互通
不需要将交换机与交换机之间对应端口都添加到一个VLAN
(不同交换机上的PC机应属于同一个VLAN),但是需要将级联线对应的端口设置为Trunk[1]
vtp domain test //启动vtp,这里test是自己起的名字
vtp client //该交换机设置成vtp客户端,这样将使得主交换机上的VLAN配置自动同步到此交换机上
int fe 0/1
switchport mode Trunk //启动与其他switch的Trunk
配置结果
不同交换机上但同一网段的PC机可以互通
2.3.3. 配置路由器,使各PC机能跨广播域互通
一些命令列举:
enable // 从用户模式进入特权模式
password:
conf t
int e 0/0 //进入0/0端口
int f0/0.2 //创建子接口
ip addr 172.16.1.1 255.255.255.0 //配置路由端口ip地址
ip route 0.0.0.0 0.0.0.0 172.16.2.4 //配置默认路由地址为172.16.2.4
no ip route 0.0.0.0 0.0.0.0 172.16.2.4 //卸掉默认路由地址172.16.2.4
~
interface serial 2 // 配置串行接口
encapsulation fame-relay // 配置端口为帧中继封装形式
interface serial 2.1 // 配置了一个串行接口2的1号子端口,名为2.1
配置过程
配置E0/0
->172.16.1.1
,配置E1/0
->172.16.2.1
,注意需要把PC的默认网关(网关[2]的IP地址是具有路由功能设备的IP地址,host的网关在有路由器时就是路由)设置成对应的172.16.1.1
或172.16.2.1
,.否则路由表不知道往哪里转发,并且主机发包也是转发到默认网关(就是最开始/dg
配置的)的MAC地址.两个路由器之间的连接也是同理,互相配置成默认转发到对方的端口ip地址.
配置结果
- routing for Networks:
172.16.0.0
- 另一网段的PC7可与PCping通
2.4. STEP4
2.4.1. 划分VLAN,pc3、pc5和pc7处于VLAN10
一些命令列举:
VLAN database //查看已有VLAN列表
VLAN 2 // 相比默认的VLAN1已添加一个VLAN2
switchport access VLAN 2 // 按照端口划分VLAN
switchport mode access //此步骤在模拟机上是必须的,否则将ping不通,相当于启动端口的命令,类型是access,还有其他类型如hybrid
2.4.2. pc4、pc6和pc8处于VLAN20
与上一步同理.
配置结果 PC3/5/7之间可以互相通信,PC4/6/8之间可以互相通信;而这两个VLAN之间不可以
2.5. STEP5
必须注意到此时PC3~8它们都属于同一网段.而它们各属于不同的VLAN,这导致它们连网关都无法访问,自然也无法访问路由.这是因为路由器在默认的情况下,是不会识别带标签的数据帧。通过hybrid
可以去除标签,而实现各自VLAN内的主机能访问网关但是VLAN间仍然隔离[3].
但是无论如何,不同VLAN相同网段决定了二层三层都不可能通信!因为主机不知道和自己在同一网段的目的主机不在同一VLAN,它不会走逻辑上的网关而采用广播的方法[4],但是又被VLAN阻挡,故不能通过二层通信(用网桥桥接直接查询转发可以[5]);
而如果想要通过三层通信,同网段又意味着路由器的两个接口要配置为同一个网段,但是网段ID具有唯一性[6],这个根本就不符合路由器的配置规范。即使是划分子接口,也会显示overlap
,因为这样给你配置了路由器也不知道转给这两个相同网段的哪一个[7].
2.5.1. 更改两个VLAN内PC为不同网段
同一VLAN内网关应一致
VLAN 10
gateway:172.16.2.1
PC3:172.16.2.4
PC5:172.16.2.6
PC7:172.16.2.8
VLAN 20
gateway:172.16.3.1
PC4:172.16.3.5
PC6:172.16.3.7
PC8:172.16.3.9
2.5.2. VLAN之间路由
对路由器进行配置
show ip int brief//查看路由各端口详细信息
int fa0/1
switch Trunk encap dot1q //Trunk协议封装为dot1q,即IEEE 802.1Q协议,是VLAN的一种封装方式,是公有协议。还有一种Trunk协议--ISL,也是VLAN的一种封装方式,不过这是Cisco私有协议,其他厂商不能用。
如果设置了交换机到路由器的
Trunk
,这里会有很多问题:
- 路由器ping其他主机的时候会崩溃
- 交换机的VLAN下的某台PC
ping
路由端口,会直接造成NetSim 9.9.5231的崩溃.....
配置过程
将交换价连接路由的端口放入一个VLAN内,这里以将交换机2950-2
连接路由器的端口置为VLAN20内为例:


3. 总结
1.启动VTP;2.配置Trunk;3.创建VLAN;4.给VLAN分配端口;5.VLAN之间路由
4. Bugs
4.1. Request timed out
- Error:
C:>ipconfig /ip 172.16.1.2 255.255.255.0 //此时尚未指定网关
C:>ping 172.16.1.3
Pinging 172.16.1.3 with 32 bytes of data:
Request timed out.
- 解决办法:
- 使用Ping檢查連通性五個步驟︰
1. 使用ipconfig /all觀察本地網絡設定是否正確;
2. Ping 127.0.0.1,目的是檢查本地(網路卡)的TCP/IP協定是否正確設定。
3. Ping本機IP位址,這樣是為了檢查本機的IP位址是否設定有誤。
4. Ping本網閘道或本網IP位址,檢查硬體設備是否有問題,也可以檢查本機與本地網絡連線是否正常。到此正常可排除近端區網的問題。
5. Ping遠端IP位址,這主要是檢查本網或本機與外部的連線是否正常。 2. 在ping的基础上排除错误,最后怀疑到交换机身上,在教程的提醒下换到2950型号并进行相关配置
- 反思: 没有仔细看给的样例,最开始交换机选用的是1900型号而不是2950型号.实际上,2002年Catalyst 1900已被淘汰[8]
4.2. Gateway of last resort is not set
- Error
不同网段之间配置好
rip
协议后,网段之间无法通过路由转发. - 解决办法
show ip int bri
查看端口信息,发现端口激活正常- 考虑到可能是静态路由与动态路由的区别
静态路由是在路由器中设置的固定的路由表。除非管理员干预,否则静态路由不会发生变化。一般用于网络规模不大、拓扑结构固定的网络中。 动态路由是网络中的路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由器表的过程。当动态路由与静态路由发生冲突时,以静态路由为准。
如果初学者如我以为路由器可以只配置动态路由,它自己会通过与网段中的主机交流获取路由表,那是一个误会.但是如果配置了网关,它自己本身是IP路由.
- 按照Cisco官方说明[9]使用
ip route 0.0.0.0 0.0.0.0
配置即可;必须注意就是它的型号上某些命令这里用不了--不过不打紧
- 反思 虽然是英文说明文档,但还是要好好看
4.3. 修改一次ip addr无效
4.4. ping 网关不同的原因
有个人说配置静态路由就好了