二层交换机当三层交换机,使用单臂路由实现二层交换机上的VLAN互通
众多中小企业内部网络结构都很简单,仅仅是用一台交换机将所有员工机以及服务器连接到一起,然后通过光纤访问internet而已。当然为了保证部分主机的安全性以及分割内部广播包提高网络传输速度,采取诸如划分VLAN,分配不同子网的方法来实现。通过划分VLAN可以让在同一台交换机不同端口的客户机不能互相访问,有效的隔离了网络。
通过VLAN划分网络固然可以解决安全和广播风暴的频繁出现,但是对于那些既希望隔离又希望对某些客户机进行互通的公司来说,划分VLAN的同时为不同VLAN建立互相访问的通道也是必要的。
众所周知可以使用三层交换机来实现,但是大多数情况企业网络搭建初期购买的仅仅是二层可管理型交换机,如果要购买三层交换机实现VLAN互通功能的话,以前的二层设备将被丢弃。这样就造成了极大的浪费。那么有没有什么办法在仍然使用二层设备的基础上,实现三层交换机的功能呢?
一、三层交换机的原理:
在告诉各位读者解决方法前我们需要首先了解三层交换机的工作原理。理论上讲一台三层交换机可以看做是一个二层交换机+一个路由模块,实际使用中各个厂商也是通过将路由模块内置于交换机中实现三层功能的。在传输数据包时先发向这个路由模块,由其提供路由路径然后再由交换机转发相应的数据包。
二、单臂路由原理:
既然仍然要使用以前的二层设备,那么我们可以通过添加一台路由器解决上面提到的企业网络升级问题。这台路由器就相当于三层交换机的路由模块,只是我们将其放到了交换机的外部。具体原理拓扑
router路由器
连接线路(负责多个vlan之间的的通信)
switch交换机
大家可以看出在router路由器与交换机之间是通过外部线路连接的,这个外部线路只有一条,但是他在逻辑上是分开的,需要路由的数据包会通过这个线路到达路由器,经过路由后再通过此线路返回交换机进行转发。所以大家给这种拓扑方式起了一个形象的名字——单臂路由。说白了,单臂路由就是包从哪个口进去,又从哪个口出来,而不象传统网络拓扑中数据包从某个接口进入路由器又从另一个接口离开路由器。
那么什么时候要用到单臂路由呢?在企业内部网络中划分了VLAN,当VLAN之间有部分主机需要通信,但交换机不支持三层交换,这时候可以采用一台支持802.1Q的路由器实现VLAN的互通。我们只需要在以太口上建立子接口,并分配IP地址作为该VLAN的网关,同时启动802.1Q协议即可。
小提示:
一个物理接口当成多个逻辑接口来使用时,往往需要在该接口上启用子接口。通过一个个的逻辑子接口实现物理端口以一当多的功能。
三、实战单臂路由:
笔者所在公司恰恰遇到了上面说的问题,原来使用交换机连接内部网,划分了VLAN。但是现在需要让这些VLAN实现互通,笔者购买了一台华为2621路由器来实施单臂路由解决此问题。具体拓扑图如图1所示。
交换机连接了多个网段,有10.91.30.*/24,10.83.224.*/24,10.83.225.*/24,10.83.226.*/24。每个网段都处在不同的VLAN中。所有数据包都通过光纤连接到核心设备。由于交换机上的光纤接口只对于10.91.30.*/24有效,所以其他网段的计算机在没有路由器的前提下都无法正常上网。这时我们就需要通过华为2621路由器为他们指明路由下一跳的地址,完成数据包的传输。
(1)交换机上配置:
交换机上划分VLAN以及将不同接口和网段加入不同VLAN的操作这里就不详细说明了。实际情况中10.83.224.*对应VLAN302,10.83.225.*对应VLAN303,10.83.226.*对应VLAN304,10.83.227.*对应VLAN305。下一条的路由地址为10.82.6.113,对应的VLAN号是307。
(2)路由器上的配置:
本实战路由器上的配置是关键,需要将连接交换机设备的那个接口设置为多个子接口。
第一步:用console线连接路由器,进入ethernet 0端口,并启用该接口。
int ethernet 0
undo shut(如图2)
图2:进入E0端口并启用
第二步:不要对ethernet 0直接操作,为其添加多个子接口。
int ethernet 0.1
int ethernet 0.2
int ethernet 0.3
int ethernet 0.4
int ethernet 0.5
第三步:为每个子接口设置trunk模式,并添加到对应的VLAN中。我们以ethernet0.1为例子,其他几个子接口设置命令类似。
int ethernet0.1
vlan dot1q vid 302(如图3)
图3:为子接口设置trunk模式
小提示:
在设置trunk模式时需要我们定义trunk所使用的协议,一般来说有ISL和dot1q两种协议提供给我们选择,如果你的设备都是CISCO的话使用哪个都可以,但是如果你的设备有CISCO还有别的公司的产品的话就必须使用802.1q协议了,笔者这样的网络环境,由于路由器是华为2621,所以必须使用802.1q协议进行trunk通讯。笔者开始就盲目的设置为ISL结果网络始终不通,后来才想到这个问题。
第四步:接下来我们还需要使用ip address命令为每个子接口设置好IP地址。
第五步:为路由器添加一个缺省路由,指向光纤通往核心设备的IP地址。
ip route-static 0.0.0.0 0.0.0.0 10.82.6.114
第六步:保存所有设置后使用dis cur命令查看当前配置列表。(如图4)
四、常见问题:
在配置单臂路由过程中要特别注意以下几个问题:
(1)不要对ethernet0进行任何配置,我们只需要对其子接口进行划分和设置即可。
(2)不要忘记将ethernet0开启,使用命令undo shut,这样所有子接口会同时开启。
(3)如果有防病毒ACL等列表的话不要忘记在最后添加到ethernet0上。
(4)由于单臂路由数据包进出都使用同一个接口必然对该路由器的硬件要求比较高,所以在实际使用中不要随便找一台低端路由器充数,稳定和较大内存是担当单臂路由器的设备所必须的。
(5)在设置TRUNK类型时候要根据实际情况选择是ISL还是802.1q协议。
(6)所有配置命令都需要在路由器没有连接交换机的状态下进行,当所有设置信息输入完毕并保存后才可以使用网线将路由器和交换机连接。为什么呢?因为单臂路由很消耗路由器的资源,所以如果在配置过程中已经将该路由器连接到了单臂拓扑中那么输入命令,显示命令会变得非常缓慢。笔者刚开始就是这样边连接边设置的,发现路由器跟死机一样,执行一个dis cur显示配置信息命令居然要等待十分钟以上,也可能是内网中已经有的病毒在发送大量数据包造成的。总之还是设置完毕再连接网络比较保险。
五、单臂路由的缺点:
单臂路由的缺点也是显而易见的,一方面他非常消耗路由器CPU与内存的资源,在一定程度上影响了网络数据包传输的效率,另一方面将本来可以由三层交换机内部完成的工作交给了额外的设备完成,对于连接线路要求也是非常高的。另外通过单臂路由将本来划分得好好的VLAN彻底打破,原有的提高安全性与减少广播数据包等措施起到的效果也大大降低了。当然不管怎么说单臂路由仍然是企业网络升级,经费紧张时一个不错的选择。
总结:
单臂路由方式仅仅是对现有网络升级时采取的一种策略,在企业内部网络中划分了VLAN,当VLAN之间有部分主机需要通信,但交换机不支持三层交换,这时我们使用该方法来解决实际问题。由于单臂路由存在着很多这样或那样的缺点,所以不建议大家在网络搭建初期就使用这种方式建立拓扑。