Linux与FreeBSD的多网卡绑定增加服务器流量
来源:互联网 发布:海马玩模拟器mac版删 编辑:程序博客网 时间:2024/04/27 23:02
转自:http://slaytanic.blog.51cto.com/2057708/743501
如果你觉得内网服务器一块千兆网卡已经无法满足你的交换需要,那么这篇文章或可对你有所帮助。
其实以前没想过写这篇文章,缘起是前两天国内某知名视频网站约面试,出了这样一个问题:“给你一台服务器,4块千兆网卡,最大输出4G流量如何完成?”当时完成作业也没多想,过了几天部署hadoop集群也用上了,回想起来,还是写出来分享比较好。这可能是很多运维newbie目前遇到的,或者将来可能会遇到的难题。主要也是现在分工细化,专门管交换机的不懂服务器,管服务器的不懂交换机,往往想不到类似的方案。
适用范围:超大数据量交换,网络间海量数据复制,或多网卡主备。
目的:将目前单块1G网卡流量改造为多网卡绑定2-4G流量。
其实这个功能在linux和Freebsd里面早就存在了,只是没有受到大多数人的注意。与其花很多的钱去加服务器,为什么不在系统里面挖掘呢?省钱是王道。买一台服务器的钱足够买几十块网卡了。
一、交换机多端口EtherChannel配置。
以cisco3750交换机为例,当然,29系列也可以,用到以太信道,你至少需要2层的交换机可以完成。不过我手里只有3750,所以就拿3750说事了。
>enable
#conf terminal
sw(config)#int port-channel 1
#多个服务器同时做多端口绑定,"编号"需有所区别
sw(config-if)#exit
sw(config)#int range g1/0/1-4
sw(config-if-range)#no sw
sw(config-if-range)#channel-group 1 mode on
#指定刚才port-channel设定的"编号"并设置为以太信道模式
sw(config-if-range)#exit
sw(config)#do wr
#保存到startup中,很重要
#conf terminal
sw(config)#int port-channel 1
#多个服务器同时做多端口绑定,"编号"需有所区别
sw(config-if)#exit
sw(config)#int range g1/0/1-4
sw(config-if-range)#no sw
sw(config-if-range)#channel-group 1 mode on
#指定刚才port-channel设定的"编号"并设置为以太信道模式
sw(config-if-range)#exit
sw(config)#do wr
#保存到startup中,很重要
你要加多个信道,就指定不同的编号,不同信道的交换机端口不能有交集。就是你把1-4端口分给了channel 1,那么就不能把4-8端口分给channel 2,只能分配5-8,这是个基本的逻辑问题。
然后把你的服务器插上N块网卡,开机装系统。我这里以CentOS和FreeBSD8.2为例。
二、Linux多端口绑定
Linux比较简单,2.4内核以上,默认已经把bonding模块加载到内核了。
#!/bin/sh
cd /etc/sysconfig/network-scripts/
echo "DEVICE=bond0
BOOTPROTO=static
IPADDR="IP"
NETMASK="MASK"
BROADCAST="BCAST"
ONBOOT=yes
TYPE=Ethernet
USERCTL=no" > ifcfg-bond0
echo "DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
USERCTL=no" > ifcfg-eth0
echo "DEVICE=eth1
ONBOOT=yes
BOOTPROTO=dhcp
USERCTL=no" > ifcfg-eth1
echo "alias bond0 bonding
options bond0 miimon=100 mode=0" >> /etc/modprobe.conf
#mode=0表示同时启用两块网卡并行传输,mode=1表示主备模式,仅使用一块网卡
echo "ifenslave bond0 eth0 eth1" >> /etc/rc.local
echo "------Preparing to reboot------5 seconds countdown" && sleep 5
reboot
#如有其他网卡,则修改脚本继续添加echo "DEVICE=ethx....."
cd /etc/sysconfig/network-scripts/
echo "DEVICE=bond0
BOOTPROTO=static
IPADDR="IP"
NETMASK="MASK"
BROADCAST="BCAST"
ONBOOT=yes
TYPE=Ethernet
USERCTL=no" > ifcfg-bond0
echo "DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
USERCTL=no" > ifcfg-eth0
echo "DEVICE=eth1
ONBOOT=yes
BOOTPROTO=dhcp
USERCTL=no" > ifcfg-eth1
echo "alias bond0 bonding
options bond0 miimon=100 mode=0" >> /etc/modprobe.conf
#mode=0表示同时启用两块网卡并行传输,mode=1表示主备模式,仅使用一块网卡
echo "ifenslave bond0 eth0 eth1" >> /etc/rc.local
echo "------Preparing to reboot------5 seconds countdown" && sleep 5
reboot
#如有其他网卡,则修改脚本继续添加echo "DEVICE=ethx....."
用root用户把这段脚本放入你的服务器,执行。你需要修改自己的IP地址,子网掩码和广播地址。如果你有其他网卡需要绑定,则复制粘贴eth1,并参照eth1修改。
三、FreeBSD更加简单
FreeBSD8.2默认加载netgraph模块,可以到/boot/kernel/查看是否存在ng_fec.ko和ng_socket.ko。如没有,请在内核配置文件中加入下面三行,然后重新buildkernel和installkernel
options NETGRAPH
options NETGRAPH_FEC
options NETGRAPH_SOCKET
options NETGRAPH_FEC
options NETGRAPH_SOCKET
然后修改/etc/rc.conf
defaultrouter="192.168.1.1"
fec_interfaces="fec0"
fecconfig_fec0="em0 em1"
ifconfig_fec0="inet 192.168.1.2 netmask 255.255.255.0"
#将ifconfig_em0的IP注释掉,如下
#ifconfig_em0="inet 192.168.1.2 netmask 255.255.255.0"
fec_interfaces="fec0"
fecconfig_fec0="em0 em1"
ifconfig_fec0="inet 192.168.1.2 netmask 255.255.255.0"
#将ifconfig_em0的IP注释掉,如下
#ifconfig_em0="inet 192.168.1.2 netmask 255.255.255.0"
多块网卡直接在fecconfig_fec0里面添加,空格分隔。
然后,享受速度与激情。
- Linux与FreeBSD的多网卡绑定增加服务器流量
- freebsd 网卡绑定
- [FreeBSD] 双网卡绑定
- LINUX修改、增加IP的方法,一张网卡绑定多个IP/漂移IP
- LINUX修改、增加IP的方法,一张网卡绑定多个IP
- Linux单网卡绑定多IP与多网卡共用单IP的实现方法
- Linux单网卡绑定多IP与多网卡共用单IP的实现方法
- Linux 多网卡绑定
- Linux 多网卡绑定
- linux多网卡绑定
- Linux网卡配置与绑定
- Linux网卡配置与绑定
- Linux网卡配置与绑定
- linux 之 Linux服务器网卡绑定
- 服务器设置多网卡绑定!!!
- 绑定多网卡 让网络带宽双倍增加
- FreeBSD下一块网卡绑定多个IP
- FreeBSD下一块网卡绑定多个IP
- 轻量级与重量级特点
- Asp.net Cookie的用法
- print '0#{var}' print "0#{var}"
- UDP bind给出的错误提示10022
- UpdateProgress无效,无法显示,没有效果,js给你答案
- Linux与FreeBSD的多网卡绑定增加服务器流量
- sharepoint2010 The Ribbon Tab with id: "Ribbon.Read" has not been made
- C++Virtual详解
- 用matlab生成样本
- android中View坐标学习
- 微软发布Windows Phone 3.0同步应用程序OSX
- openstack 的Folsom安装,quantum方面
- 使用ASP.NET 2.0 DetailsView控件处理数据
- android学习笔记之Loader详解