单臂路由是指在路由器的一个接口上通过配置子接口的方式,实现原来互相隔离的VLAN之间可以互相通信。
一、单臂路由概述
网络中通过VLAN技术来实现隔离广播、方便管理及提高安全性等功能,一旦划分VLAN后,同—VLAN之间可以相互通信,不同VLAN间禁止相互通信。
问题来喽!!!
在企业真实环境中,部门之间及部门和服务器分别属于不同VLAN,如果不同VLAN之间不能相互通信,那么客户端也无法访问其他部门及服务器所提供的服务,这就好比为了提高公司的网络安全性,直接将公司网络和互联网络之间的链路断开。安全性固然需要提高,但是直接影响了员工对互联网资源的使用。这种做法显然是不可行的。
那么在实际生产环境中,如何保证员工所在部门的VLAN可以和服务器所在的VLAN之间进行通信呢?
企业划分VLAN的主要作用是隔离广播,只要解决了不同VLAN间的通信问题,就可以在保证在隔离广播的前提下,实现正常通信,即VLAN间的通信技术。
实现VLAN间通信的技术很多,比较典型的是通过三层交换机和单臂路由实现。但无论哪种方法,都要借助于三层设备实现。
需要借助三层设备的原因:
如果通过二层设备解决了VLAN间的通信问题,那么广播也可以跨VLAN传播。
二、单臂路由的原理
假设主机A属于VLAN 10,而主机B属于VLAN 20,且两台主机分别连接到SW1的F0/1和F0/2接口上。
由于两台主机被交换机逻辑隔开,不能直接通信。而且根据经验,不同VLAN的主机一般被分配的IP地址也是属于不同网段的,所以不同网段间的主机通信就必须借助网关。
上述分析说明,要想实现VLAN间通信,就必须借助其他设备,如路由器等,下面通过分析几个问题来详细了解VLAN间路由的概念。
1、链路类型
首先我们要知道上图的链路类型,连接两台主机的链路毋庸置疑是Access链路。
关键问题是路由器和交换机之间的链路属于什么链路?
主机A和主机B分别属于不同的VLAN,且两台主机发送的流量都可能通过该链路,因此,这条链路是Trunk链路。
2、子接口
主机A与主机B通信,由于双方属于不同的网段,因此主机A首先是要与网关通信,主机A的网关是R1,主机B的网关也是R1。
一个路由器接口如何可以成为多个网段的网关呢?
这就需要大家了解子接口的概念。路由器的物理接口可以被划分成多个逻辑接口,这些被划分后的逻辑接口被形象地称为子接口。
例:F0/1接口可以被划分成F0/1.1、F0/1.2、F0/1.3等多个子接口,值得注意的是这些逻辑子接口并不能被单独开启或关闭,也就是说,当物理接口被开启或关闭时,所有该接口的子接口也随之被开启或关闭。
3、VLAN间的路由
有了路由器的加入,不同VLAN之间可以通过路由器转发,路由器本身是隔离广播的,所以在解决VLAN间通信的前提下还能隔离广播。
三层设备如果要在不同网段之间转发数据,需要路由信息,那需要配置路由信息吗?
答案是路由要有,但不需要配置,当我们在路由器配置了子接口并给子接口配置IP地址后,直连路由就已经存在了,而通过该直连路由就可以实现VLAN间的数据转发。为了方便理解,可以将上图中的拓扑信息,隐藏掉VLAN间的二层细节信息,只显示三层信息,就好比在一张详细的全国地图中,隐藏掉各个省内部的道路信息,只显示省与省之间的主要道路信息,可以让地图在全局看上去比较清晰。如图下图:
4 、VLAN标识的转换
R1在转发数据的过程中,除了要重新封装数据的MAC地址之外,还需转换VLAN的标识,当主机A发送数据帧给网关路由器时,数据帧中的标识属于VLAN 10,当该数据从路由器中转发出来时,VLAN的标识就被转换为VLAN 20,如下图:
由上述三个问题的说明,我们对于VLAN间路由应该有简单的了解。下面就主机A与主机B通信的例子展示这一过程。
( 1 )如下表,主机A发送的数据目标IP地址为主机B的IP地址,而目标MAC地址为网关的MAC地址,即R1的F0/0.1接口的MAC地址(这里省略了ARP的过程) 。因为数据帧为主机所发出,所以没有任何标识.
( 2 )交换机属于二层设备,因此并不会重新封装二层的帧结构,但由于转发的目的方向为Trunk链路,因此交换机要给该数据帧封装VLAN标识,于是从交换机转发出来的数据的唯一变化就是VLAN标识。
( 3 )路由器将会重新封装二层数据帧,因此目标和源MAC地址都发生改变,除此之外,路由器转发出来的数据将属于新的广播域——VLAN20,所以路由器还需更换数据帧中的VLAN标识。
( 4 )交换机将再次转发数据帧,与步骤( 2 )不同的是它将数据帧中的标识拆掉。