热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

在Linux上实现单臂路由器功能

文章标题:在Linux上实现单臂路由器功能。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  找一块3COM等的网卡(支持VLAN的即可),在内核中打上VLAN的补丁,确认你需要几个网段,从而设置几个IP地址,同时再设置几个MAC地址。(LINUX中是可以自己改MAC地址的)。将你的LINUX机器真正模拟成一台路由器,这样的效果更好,应用场合也更广。举例说明:你有A、B、C、D 四台设备,其中A、B是桌面PC,C是一台路由器(是你的内部网络的网关),D是一台上面所说的LINUX。你公司要求内外网隔离,在A、B上有一个内外网物理隔离切换器(简单的讲,有一个开关,开是物理跟外网连通,关时跟内网连通)。这种应用下,A、B的网关是固定的,那我们就要求LINUX的IP跟C路由器的IP应该一一对应,同时由于ARP表的关系,我们还得要求LINUX的MAC地址也应该跟C路由器的MAC一一对应,否则A、B机器切换网络时会有一段时间是不通的(等待ARP表老化)。不知大家明白了没有,其实好处还有很多,下此我有空在跟大家将详细的实施步骤及原理详细写出来:
  
  对一个稍大一点的网络而言,存在着多个IP网段,同时有的网络还要求内外网隔离。下面我将怎样在一台LINUX上模拟一台路由器的步骤简述如下,给有这种需求的弟兄一个参考。
  
  我的描述环境为:Redhat 7.2 (2.4.7-10),3com 3c509网卡。
  
  1.安装Redhat 7.2版本,其中的kernel为linux-2.4.7-10
  
  2.下载vlan软件包,对应linux-2.4.7-10的为vlan1.3.tar.gz
  
  3.在/usr/src目录下解开vlan软件包
  
  4.proc /usr/src/vlan 将vlan加入到Linux kernel中
  
  5.cd /usr/src/linux-2.4.7-10配置kernel的模块make menuconfig
  
  6.进入network configuration 选择dot1q支持,保存退出。
  
  7.编译kernel , make dep;make clean;make bzImage;make modules;make modules-install
  
  8.cp /usr/src/linux-2.4.7-10/.../boot/bzImage /boot/vmlinuz-2.4.7-10, cp /usr/src/linux-2.4.7-10/.../system /boot/system-2.4.7-10
  
  9.重起Linux,启动时看到dot1q support by ben greear, vlan 已经启动
  
  10.cd /usr/src/vlan 编译vconfig文件,make ,如果退出,检查一下vconfig.c中调用文件的位置。
  
  11.将vconfig可执行文件拷贝到 /usr/sbin, cp /usr/src/vlan/vconfig /usr/sbin/vconfig 。
  
  12.配置vlan设备,以eth0为例,vconfig eth0 2;vconfig eth0 3,在主端口上配置vlan 1 的ip地址。
  
  13.在vlan设备上设置ip地址。Ifconfig eth0.2 ipaddress netmask mask
  
  14.在vlan设备上设置MAC地址。Ifconfig eth0.2 MACaddress(ifconfig用法请用ifconfig --help来查看)。
  
  15.将路由器上和Linux相连的端口配置成trunk,以cisco 3548为例 interface fastethernet 0/48 switchport trunk encapulation dot1q
  
  16.将Redhat 默认关闭的ip forwarding功能打开。echo "1">/proc/sys/net/ipv4/ip_forward
  
  17.测试同vlan的设备和Linux路由器子端口互访,测试不同vlan中设备通过Linux路由器互访。以上都是我的实际操作经验,请COPY前打上LINUXSIR的标签即可。
推荐阅读
author-avatar
nancy_liu_tj
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有