LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4327|回复: 13

一个网卡绑定多个IP地址(怎样在LINUX上实现单臂路由器的功能)[原创:wxz8兄]

[复制链接]
发表于 2002-9-5 09:34:51 | 显示全部楼层 |阅读模式
找一块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的标签即可。



另一篇:要看wxz8兄说的适用范围,仔细研究。

http://www.linuxsir.cn/forum.php?mod=viewthread&tid=6175

北南 加注
发表于 2002-9-5 11:06:45 | 显示全部楼层
不适合新手用
还是用
ifconfig eth0:0 add ip mask
比较简单
呵呵
发表于 2002-11-20 20:29:12 | 显示全部楼层
这样重新启动就没了!
发表于 2002-11-21 11:29:40 | 显示全部楼层
跟Cisco交换机能否做通?
发表于 2002-11-30 21:18:27 | 显示全部楼层
wxz8兄,你真牛。技术型老大。 以后请多多指教。  
QQ:59408403
发表于 2002-12-1 17:55:01 | 显示全部楼层
wxz8兄.这样是不是可以为每块网卡设网关?
发表于 2003-5-20 09:36:10 | 显示全部楼层
还是用linuxconf最简单,它的功能剧强(虽然有BUG,但只要多尝试就会发现它的好)

http://www.linuxsir.cn/forum.php ... 15&pagenumber=1
发表于 2003-5-23 16:24:20 | 显示全部楼层

wxz8您好!

我用的是redhat advance 2。1版本的,单位有10个VLAN,一台DHCP服务器来进行地址分配,我在那个地方下载支持这个版本VLAN软件包呢?
特急,希望你来帮我一把,
网卡是intel 82559 的支持DOT1。Q
急呀!
发表于 2004-12-14 15:08:08 | 显示全部楼层

wxz8兄,多谢你的贴子!

我们这儿的机房有200台左右的机器,用linux做了路由器,由于经费等原因,没有购买三层交换机,划分不了vlan。把它们都放在了一个网段,由于广播风暴的原因网络状况很不理想,早就想实施vlan计划了,看了wxz8兄的贴子,我们的问题可以轻松解决了,谢谢!!!
发表于 2004-12-14 16:29:51 | 显示全部楼层
redhat 和 debian 下已经有官方的vlan支持包。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表