找一块 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 3c 509 网卡。
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 的标签即可。
上一篇:Linux常见故障的紧急处理方法
下一篇:Freesco实现Linux路由系统
【本站声明】本站刊载的部分内容全部来源互联网,对于此类文章本站仅提供交流平台,不为其版权负责。如涉及侵犯您的知识产权的文章,请联系我们,我们将尽快做出更正。并向您表示感谢!同时特别感谢对本站所有支持的网友。