基于VLAN的策略路由的应用
扫描二维码
随时随地手机看文章
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(基于目标地址选取路由表)
4 解决方案
建设一个工厂局域网,局域网中只有2层交换机.通过一台具有NAT功能的路由器接人当地ISP,此局域网中有3种用户类型上网:机房用户,办公室用户,财务部门用户。现准备架设一台Linux服务器,划分3个VLAN,分别为:VLAN10(用于开放机房)网段为192.168.1.0/24,VLAN 11(用于办公室)网段为192.168.2.0/24,VLAN 12(用于财务部门)网段为192.168.3.0/24。规定机房用户不允许访问财务部门和办公室计算机,财务部门用户不允许访问Internet,而办公室用户允许访问Internet和财务部门的计算机。该实例中Linux系统所使用内核为2.4.20。网络拓扑图如图1所示。要求Linux内核支持802.1Q VLAN,并支持策略路由。
(1)创建各个VLAN
vconfig add eth0 10
vconfig add eth0 11
vconfig add eth0 12
这样,在系统中就创建了3个基于802.IQ VLAN,由于在eth0接口配置3个VLAN系统会自动加载802.1Q模块。另外,在本例中需把与eth0相连的交换机端口设置为Trunk模式。
(2)设置各虚拟VLAN接口IP地址
ip address add 192.168.1.253/24 dev eth0.10//给eth0.10设置IP地址,相当于设置VLAN10的地址,此地址就是VLAN 10用户的默认网关,以下含义相同:
ip address add 192.168.2.253/24 dev eth0.11
ip address add 192.168.3.253/24 dev eth0.12
ip link set dev eth0.10 up//启用接口。以下含义相同
ip link set dev eth0.11 up
ip link set dev eth0.12 up
设置各接口 IP地址也可以用ifconfig命令。
(3)编辑/ete/iproute2/rt_tables文件以创建相应路由表:
100 ji_fang
101 ban_gong
102 cai_wu
(4)向各路由表中添加路由信息
①向ji_fang表中添加路由ip route add 0.0.0.0/0 via192.168.100.2 table ji_fang//设置缺省路由访问Internet(由于在机房不允许访问办公室和财务部门,所以只需要设置默认路由访问Internet)
②向ban_gong表中添加路由ip route add 192.168.3.0/24 dev eth0.12 table ban_gong//设置访问财务部门路由ip route add 0.0.0.0/0 via 192.168.100.2 table ban_gong//设置缺省路由访问Internet
③向cai_wu表中添加路由ip route add 192.168.2.0,24dev eth0.11 table cai_wu//设置访问办公室路由
(5)设置策略路由规则
ip rule add from 192.168.1.0/24 table ji_fang//来自192.168.1.0/24的包使用路由表ji_fangip rule add from 192.168.2.0/24 table ban_gong//来自192.168.2.0/24的包使用路由表ban_gongip rule add from 192.168.3.0/24 table eai_wu