LinuxSir.cn,穿越时空的Linuxsir!

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

多块网卡虚拟成为一块网卡

[复制链接]
发表于 2003-6-14 20:27:22 | 显示全部楼层 |阅读模式
使用多块网卡虚拟成为一块网卡,具有相同的IP地址。这项技术在sun和cisco中已经存在,分别称为Trunking和etherchannel技术,在Linux中,这种技术称为bonding。
  什么是bonding需要从ethernet网卡的promisc模式说起。我们知道,在正常情况下,ethernet网卡只接收目的mac地址是自身mac的ether帧,对于别的数据帧都过滤掉,以减轻驱动程序——也就是软件的负担。但是ethernet网卡也支持另外一种被称为promisc的模式,可以接收网络上所有的帧,很多系统程序如:sniffer、tcpdump,都运行在这个模式下。bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的mac地址改成相同,可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。bonding技术的最早应用是在集群——beowulf上,为了提高集群节点间的数据传输而设计的。
  说了半天理论,其实配置很简单,因为在内核中已经包含了,只需要在编译的时候把网络设备选项中的Bonding driver support选中就可以了。
  然后,重新编译核心,重新起动计算机,执行如下命令:

#ifconfig eth0 down
#ifconfig eth1 down
#ifconfig bond0 ipaddress
#ifenslave bond0 eth0
#ifenslave bond0 eth1
 楼主| 发表于 2003-6-14 21:17:31 | 显示全部楼层

http://www.openbsd.org/faq/faq6.html

http://www.openbsd.org/faq/faq6.htmllo - Loopback Interface
pflog - Packet Filter Logging Interface
sl - SLIP Network Interface
ppp - Point to Point Protocol
tun - Tunnel Network Interface
enc - Encapsulating Interface
bridge - Ethernet Bridge Interface
vlan - IEEE 802.1Q Encapsulation Interface
gre - GRE/MobileIP Encapsulation Interface
gif - Generic IPv4/IPv6 Tunnel Interface
发表于 2003-6-16 22:43:24 | 显示全部楼层
精华

多谢台兄指教
 楼主| 发表于 2003-6-17 15:22:15 | 显示全部楼层

openbsd 多网卡绑定?

那么在openbsd下呢?

#route add network %s: gateway flags %x
举例如下:
#route add IP地? %s: 网关地址 标签或名称 %x
这样指定的路由就会被填加到路由表里

#route -n add -net -interface xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
上面这一行中第一个IP是要指定的接口网卡ip,第二个是指定的网关ip

或者试一下
#route -n add -host -interface xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
 楼主| 发表于 2003-6-17 15:52:37 | 显示全部楼层

我要加的是lin#2不是IP啊!

#route -n add -net -interface xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx
上面这一行中第一个IP是要指定的接口网卡ip,第二个是指定的网关ip
 楼主| 发表于 2003-6-18 18:43:01 | 显示全部楼层
那么,网关ip是不是和那两个网卡的ip在同一网段内呀??如果是,就不行了,两个p分别对应link#1和link#2,而网关只对应link#1。这个我看到了。

如果网关ip不和网卡的同一网段,当然可行。
试过了,当然可以指定两个网卡的ip同一个网关地址,但网关跟外部联接时输出只有link#1
为什么要这样做呢?

一个网卡设同一网段内的几个ip别名倒是可以的
编辑 /etc/hostname.fxp0
其中,fxp0是网卡代码
那么,#cat /etc/hostname.fxp0
       inet 192.168.0.2 255.255.255.0
       #vi /etc/hostname.fxp0
加两行:inet alias 192.168.0.3 255.255.255.255
        inet alias 192.168.0.4 255.255.255.255
然后,reboot,
挂起这个用的命令:# ifconfig fxp0 inet alias 192.168.0.3 netmas 255.255.255.255
别名的网络掩码都是255.255.255.255
突然觉得: 在openbsd里只认网卡代码,即fxp0 之类的,把不同的转变为一样的,就可以了吧? 我只是猜测
麻烦兄长跟我联系,我得详细问清楚啊,为什么要这样做,也好去向朋友请教。
 楼主| 发表于 2003-6-18 19:47:52 | 显示全部楼层

只要同网段的机

网关ip不和网卡的同一网段,当然可行。
试过了,当然可以指定两个网卡的ip同一个网关地址,但网关跟外部联接时输出只有link#1
我要的就是这功能!我只要同网段的机能同时能ping 到网卡1和网卡2
 楼主| 发表于 2003-6-18 20:05:05 | 显示全部楼层

内网的机如和又能连link#2又能连link1阿!

我不时为了他们能同时连到网关!只时为了分流阿!如和实现
两个ip分别对应link#1和link#2,而网关只对应link#1。
 楼主| 发表于 2003-6-19 11:52:40 | 显示全部楼层
有一种方法,就是所有的无盘终端的网卡设置都重新设置一下,把一部分网卡的网关改成另外一个IP,这样,被设置的就指定去哪个ip了
太麻烦了,每个终端都要重新设置,而且是静态的,这样设.

是一个朋友的点子

link#1,这个是顺序排下的号码,应该是没有影响,link#0也许有别的口占了
link[0-2]这个只是在说明,有对应的三个接口号
 楼主| 发表于 2003-6-19 22:10:49 | 显示全部楼层

我只要双卡能都通!

我的OPENBSD的FTP SERVER为内网提供服务有两张网卡分流一个网卡是192.168.1.1另一个是192.168.1.2可是当192.168.1.1没插网线时由其它机ping 192.168.1.2就不通!在linux下没这BUG的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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