1 引言
随着网络的普及,小型企业的局域网在资金短缺的情况下如何花更少的钱去实现较为复杂的网络功能、满足人们对网络功能更高的需求,是网络技术人员关心的问题。在Linux系统中网络技术人员可根据用户需求实现丰富的路由功能,其中很多功能都可以和路由器产品相媲美。基于Linux系统强大的功能,这里提出通过架设Linux服务器解决该问题,经济而安全。
本地一家工厂初步搭建了局域网,由于经济条件有限,只购买较简单的网络连接设备,通过光纤接入本地ISP。随着网络应用的发展,现需要划分几个网段,规定机房用户不允许访问财务部门和办公室,财务部门的计算机不允许访问Internet。大多数解决这类问题的做法都是通过使用交换机结合路由器共同完成。这种做法虽然实现相对简单,较易维护,但成本高。因此,本文根据实际条件和具体需求制定出一种技术方案:安装一台Linux服务器,通过划分虚拟局域网 (VLAN)、设置策略路由解决问题。
2 VLAN的概念
2.1 VLAN的定义
VLAN(Virtual Local Area Network)又称为虚拟局域网,该技术实现了与物理位置无关的逻辑工作组划分。采用VLAN技术可将广播数据报限制在同一VLAN内,提高了网络整体的有效带宽。同时,可根据实际情况分别对各VLAN定义不同级别的安全策略,有效地避免非法入侵,增强了网络的安全性。下面介绍三种主要VLAN的定义方式。
(1)基于端口的VLAN定义通过交换机的端口划分来定义虚拟子网,该方式和物理网段划分较为类似,其主要缺点是无法实现与物理位置无关的虚拟网配置,如果工作站在端口间移动,则有必要对VLAN重新进行配置,这种方法运用在实际中比较普遍也最成熟。
(2)基于MAC地址的VLAN定义用节点网卡的MAC地址决定其所隶属的虚拟子网。这种方式实现了与物理位置无关的虚拟网配置,不足之处在于初始化时,网络管理人员必须手工配置节点的MAC地址,节点增加时,管理负担也增大,在节点数目庞大的网络中,显然不适宜这种配置方式。
(3)基于IP策略的VLAN定义 通过网络层协议或IP地址来确定虚拟网。这种VLAN定义方式比前面两种方式更加灵活。交换机可根据各节点网络地址或报文协议自动将其划分成不同的VLAN。
2.2 在Linux系统中VLAN的实现
大多数情况下在Linux系统中主要使用基于端口的802.10 VLAN。每一个支持802.IQ协议的网络设备,在发送数据包时,都在以太帧头中增加一个4字节的Tag标记,以指明该数据包属于哪一个VLAN。当数据包进入另一个支持802.1Q协议的网络设备时,会根据802.1Q帧中的Tag标记交换到所属VLAN。在应用中一般是把支持802.1Q协议的2层交换机和3层交换机相连,这样2层交换机就可以利用3层交换机的路由功能进行不同VLAN之间的数据转发。
3 在Linux系统中策略路由的实现
在Linux系统上实现策略路由也是基于上述原理。通过RPDB实现, RPDB主要由多路由表和规则组成,由规则选取表。路由表以及对其的操作和其对外的接口是整个RPDB的核心部分。路由表主要由table,zone, node这些主要的数据结构构成。对路由表的操作主要包含物理的操作以及语义的操作。
3.1 策略路由
策略路由就是不仅根据数据报的目的地址,而且还根据数据报的其他一些特性,如:源地址、IP协议、传输层端口,甚至是数据包的负载部分内容进行路由选择。而传统路由算法都是根据IP包目的地址进行路由选择。
3.2 应用Linux策略路由的一般步骤
在Linux上应用策略路由,首先根据实际应用分析确定路由策略,然后一般采取以下步骤:
(1)创建多路由表通过编辑/etc/iproute2/rt jables文件创建路由表:
(2)向路由表添加路由 向路由表中增加路由使用iproute命令,例如:向user_table1路由表中增加路由:
ip route add 202.201.100.0/24 via 192.168.100.1 tableuser_table 1
(3)建立相应的规则使用ip rule命令设置规则,例如:ip rule add from 192.168.100.0/24 table tlSer table1//来自192.168.100.0/24的IP包使用路由表user_table1(基于源地址选取路由表)ip rule add to 202.11 1.100.0/24 table user table1 //去往202.111.100.0/24的IP包使用路由表user_table1(基于目标地址选取路由表)