0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Linux服务器和VLAN实现策略路由的技术方案

牵手一起梦 来源:电子设计工程 作者:李瑞江 , 张冀红 2021-06-14 11:23 次阅读

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

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11292

    浏览量

    209329
  • 服务器
    +关注

    关注

    12

    文章

    9123

    浏览量

    85324
  • 交换机
    +关注

    关注

    21

    文章

    2637

    浏览量

    99535
收藏 人收藏

    评论

    相关推荐

    linux服务器和windows服务器

    Linux服务器和Windows服务器是目前应用最广泛的两种服务器操作系统。两者各有优劣,也适用于不同的应用场景。本文将 对Linux
    发表于 02-22 15:46

    服务器远程不上服务器怎么办?服务器无法远程的原因是什么?

    运营商。 2.服务器网络问题 解决办法:通过路由图来确定是哪里的线路出现丢包,联系服务器商切换线路。 二、服务器问题 服务器带宽跑满、
    发表于 02-27 16:21

    华为路由器交换机VLAN配置实例

    ,组建一VLAN实现虚拟网和物理网之间的连接。实现防火墙策略,和访问控制(ACL)。 方案说明: 四台PC的IP地址、掩码如下列
    发表于 05-25 00:21

    基于Linux实现VLAN功能

    VLAN是网络栈的一个附加功能,且位于下两层。首先来学习Linux中网络栈下两层的实现,再去看如何把VLAN这个功能附加上去。下两层涉及到具体的硬件设备,日趋完善的
    发表于 07-11 06:22

    请问如何实现VLAN

    、…):Harmony有同样的问题吗?我能通过修改MAC层(和配置部分)来实现VLAN吗?你能告诉我最好的做法,以确保兼容性与未来版本的和谐?我需要:-设置具有特定VLAN的和谐Web服务器
    发表于 11-07 14:37

    Linux环境并发服务器设计技术研究

    讲述并发服务器设计的主要技术,包括多进程服务器、多线程服务器和I/ O 复用服务器,同时对以上服务器
    发表于 04-24 10:02 16次下载

    基于Linux的WEB服务器的设计与实现

    基于Linux的WEB服务器的设计与实现 嵌入式WEB服务器的主要设计思想就是将嵌入式系统和 WEB技术结合起来,将 WEB
    发表于 10-06 08:30 3041次阅读
    基于<b class='flag-5'>Linux</b>的WEB<b class='flag-5'>服务器</b>的设计与<b class='flag-5'>实现</b>

    什么是路由服务器路由仲裁

    什么是路由服务器路由仲裁 路由服务器在全球只有13台。如果这些机器全部陷入瘫痪,那么整个因
    发表于 04-03 14:40 1240次阅读

    Freebsd PF实现策略路由案例

    方案适用于可以使用PF做为防火墙的操作系统,包括FREEBSD/OPENBSD/NETBSD。所谓的策略路由就是在服务器同时连接了两个ISP线路,
    发表于 07-23 09:42 1772次阅读

    VLAN实现VLAN路由

    VLAN(Virtual LAN),翻译成中文是虚拟局域网。LAN 可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN 所指的LAN 特指使用路由器分割的网络也就是
    发表于 02-28 15:46 35次下载
    <b class='flag-5'>VLAN</b>的<b class='flag-5'>实现</b>及<b class='flag-5'>VLAN</b>间<b class='flag-5'>路由</b>

    基于Linux系统的FTP服务器实现

    为了在Linux系统下实现安全、高效的FTP服务器,选择了具有小巧轻快、安全易用等优点的服务器软件vsftpd。通过对Linux平台下FTP
    发表于 07-24 15:36 39次下载

    使用路由器子接口单臂路由实现VLAN间互相访问

    VLAN网络中,实现VLAN之间互访,除了利用三层交换方式来实现外,还可以通过路由器实现
    的头像 发表于 06-02 16:30 2311次阅读
    使用<b class='flag-5'>路由器</b>子接口单臂<b class='flag-5'>路由</b><b class='flag-5'>实现</b><b class='flag-5'>VLAN</b>间互相访问

    VLAN路由

    部署了VLAN的传统交换机不能实现不同VLAN间的二层报文转发,因此必须引入路由技术实现不同
    发表于 06-25 09:51 0次下载

    如何通过单臂路由实现VLAN间通信?

    如何通过单臂路由实现VLAN间通信? 通过单臂路由实现VLAN间通信是一种常见且有效的网络连接方
    的头像 发表于 12-07 09:40 1266次阅读

    怎么在Linux上划分VLAN

    在某些场景中,我们希望在Linux服务器(CentOS / RHEL)上的同一网卡分配来自不同VLAN的多个ip。这可以通过启用VLAN标记接口来
    的头像 发表于 10-24 17:16 178次阅读
    怎么在<b class='flag-5'>Linux</b>上划分<b class='flag-5'>VLAN</b>