单网卡绑定多个ip, 多个网卡绑定成一块虚拟网卡
Redhat Linux的网络配置,基本上是通过修改几个配置文件来实现的,虽然也可以用ifconfig来设置IP,用route来配置默认网关,用hostname来配置主机名,但是重启后会丢失。
相关的配置文件
/ect/hosts 配置主机名和IP地址的对应
/etc/sysconfig/network 配置主机名和网关
/etc/sysconfig/network-scripts/ifcfg-eth0 eth0配置文件,eth1则文件名为ifcfg-eth1,以此类推
一、网卡配置
假设我们要配置主机名为test,eth0的IP地址192.168.168.1/24,网关地址192.168.168.250
则/etc/sysconfig/network文件内容如下:
NETWORKING=yes HOSTNAME=test GATEWAY=192.168.168.250
eth0对应的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0内容如下:
DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.168.1 NETMASK=255.255.255.0 TYPE=Ethernet ONBOOT=yes
二、单网卡绑定多个IP
有时,我们需要在一块网卡上配置多个IP,例如,在上面的例子中,我们还需要为eth0配置IP 192.168.168.2和192.168.168.3。那么需要再在/etc/sysconfig/network-scripts下新建两个配置文件:
ifcfg-eth0:0内容如下:
DEVICE=eth0:0 BOOTPROTO=static IPADDR=192.168.168.2 NETMASK=255.255.255.0 ONBOOT=yes
ifcfg-eth0:1内容如下:
DEVICE=eth0:1 BOOTPROTO=static IPADDR=192.168.168.3 NETMASK=255.255.255.0 ONBOOT=yes
三、多个网卡绑定成一块虚拟网卡
为了提供网络的高可用性,我们可能需要将多块网卡绑定成一块虚拟网卡对外提供服务,这样即使其中的一块物理网卡出现故障,也不会导致连接中断。比如我们可以将eth0和eth1绑定成虚拟网卡bond0
首先在/etc/sysconfig/network-scripts/下创建虚拟网卡bond0的配置文件ifcfg-bond0,内容如下
DEVICE=bond0 BOOTPROTO=none BROADCAST=192.168.168.255 IPADDR=192.168.168.1 NETMASK=255.255.255.0 NETWORK=192.168.168.0 ONBOOT=yes TYPE=Ethernet GATEWAY=192.168.168.250 USERCTL=no
然后分别修改eth0和eth1的配置文件 ifcfg-eth0内容:
DEVICE=eth0 BOOTPROTO=none ONBOOT=yes USERCTL=no MASTER=bond0 SLAVE=yes
ifcfg-eth1内容
DEVICE=eth1 BOOTPROTO=none ONBOOT=yes USERCTL=no MASTER=bond0 SLAVE=yes
因为linux的虚拟网卡是在内核模块中实现的,所以需要安装的时候已经装好该module。在/etc/modules.conf文件中添加如下内容(如果没有该文件,则新建一个):
alias bond0 bonding options bond0 miimon=100 mode=1 primary=eth0
其中miimon=100表示每100ms检查一次链路连接状态,如果不通则会切换物理网卡 mode=1表示主备模式,也就是只有一块网卡是active的,只提供失效保护。如果mode=0则是负载均衡模式的,所有的网卡都是active,还有其他一些模式很少用到 primary=eth0表示主备模式下eth0为默认的active网卡
miimon是毫秒数,每100毫秒触发检测线路稳定性的事件。 mode 是ifenslave的工作状态。 一共有7种方式: =0: (balance-rr) Round-robin policy: (平衡抡循环策略):传输数据包顺序是依次传输,直到最后一个传输完毕, 此模式提供负载平衡和容错能力。 =1: (active-backup) Active-backup policy:(主-备份策略):只有一个设备处于活动状态。 一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得。 此模式提供了容错能力。 =2:(balance-xor) XOR policy:(平衡 策略): 传输根据原地址布尔值选择传输设备。 此模式提供负载平衡和容错能力。 =3:(broadcast) broadcast policy: (广播策略):将所有数据包传输给所有接口。 此模式提供了容错能力。 =4:(802.3ad) IEEE 802.3ad Dynamic link aggregation. IEEE 802.3ad 动态链接聚合:创建共享相同的速度和双工设置的聚合组。(我不是太懂。) =5:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡):没有特殊策略,第一个设备传不通就用另一个设备接管第一个设备正在处理的mac地址,帮助上一个传。 =6:(balance-alb) Adaptive load balancing: (适配器传输负载均衡):大致意思是包括mode5,bonding驱动程序截获 ARP 在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是在服务器上不同的人使用不同的硬件地址一样。
这些选项可以用命令:# modinfo bonding 来查看
最后,在/etc/rc.local中加入
modprobe bonding miimon=100 mode=1
重启机器后可以看到虚拟网卡已经生效,可以通过插拔两个物理网卡的网线来进行测试,不过linux中网卡接管的时间好象比较长
from:http://www.360doc.com/content/10/1016/14/1317564_61486325.shtml
====================================================
需要说明的是如果想做成负载均衡,仅仅设置这里modprode bonding miimon=100 mode=0是不够的,还需要设置交换机的端口.
从原理分析一下(bond运行在mode 0下): mode 0下bond所绑定的网卡的IP都被修改成一样的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。 所以mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址 由于家里没有三层交换机,这里的试验留给网友自行验证了.
====================================================
在 /etc/rc.local 文件里加上一行:
/root/bonding.sh
bonding.sh文件内容:

#!/bin/sh modprobe -r bonding modprobe bonding miimon=100 mode=6 ifconfig bond0 172.16.96.46 netmask 255.255.248.0 up route add default gw 172.16.100.1 bond0 #ifenslave bond0 eth0 eth1 eth2 eth3 eth4 eth5 ifenslave bond0 eth0 eth1 service network restart

单网卡绑定多个ip, 多个网卡绑定成一块虚拟网卡的更多相关文章
- Tomcat绑定多个IP地址 多域名绑定
http://blog.csdn.net/stevenyanzhi/article/details/6029776 Tomcat绑定多个IP地址 如果一台服务机上有多个IP地址又有多个工程如何一个IP ...
- Linux双网卡绑定bond详解--单网卡绑定多个IP
Linux双网卡绑定bond详解 1 什么是bond 网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术.Kernels 2.4.12及 ...
- Linux网卡高级命令、IP别名及多网卡绑定 转
http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/26/3100065.html 本篇随笔将详细讲解Linux系统的网卡高级命令.IP别名 ...
- Linux一块网卡添加多个IP地址
环境: RHEL6.4 需求: Linux一块网卡添加多个IP地址 一.临时生效 1.1 网卡eth0添加一个IP地址 1.2 修改eth0:0的广播地址 二.永久生效 2.1 编辑ifcfg-eth ...
- centos linux系统日常管理复习 CPU物理数逻辑核数,iftop ,iotop ,sar ,ps,netstat ,一网卡多IP,mii-tool 连接,ethtool速率,一个网卡配置多个IP,mii-tool 连接,ethtool速率 ,crontab备份, 第十八节课
centos linux系统日常管理复习 物理CPU和每颗CPU的逻辑核数,uptime ,w,vmstat,iftop ,iotop ,sar ,ps,netstat ,一个网卡配置多个IP,mii ...
- Linux下双物理网卡设置成虚拟网卡
为了提供网络的高可用我们须要将多块网卡绑定设置成一块虚拟的网卡对外提供服务,这样能够防止一块网卡损坏或者防止网线连接故障造成的连接中断. 以下我们使用eth0与eth1来虚拟成为bond0为例:--- ...
- Linux添加虚拟网卡的多种方法
Linux添加虚拟网卡的多种方法有时候,一台服务器需要设置多个ip,但又不想添加多块网卡,那就需要设置虚拟网卡.这里介绍几种方式在linux服务器上添加虚拟网卡. 我们向eth0中添加一块虚拟网卡: ...
- 【转】Linux添加虚拟网卡
转自:https://blog.csdn.net/hzhsan/article/details/44677867 有时候,一台服务器需要设置多个ip,但又不想添加多块网卡,那就需要设置虚拟网卡.这里介 ...
- 删除Windows中隐藏的物理网卡和网络虚拟化失败后的虚拟网卡
Windows环境下,在更换硬件服务器主板和网卡等硬件.恢复操作系统或者网络虚拟化失败后,可能会出现网卡方面的问题.例如,设备管理器中多了不应该存在的网卡:因命名冲突无法重命名当前网络连接:IP地址冲 ...
随机推荐
- 解决spring el表达式不起作用
el表达式不起作用,如下图所示 现象: 在显示页面中加入: <%@ page isELIgnored="false" %>就OK了 参考:http://bbs.csdn ...
- 使用Windbg调试.Net应用程序 [转]
Windbg+Procdump解决w3wp.exe CPU过百问题[转] High CPU Dump收集工具 - ProcDump使用方法[转] ProcDump v9.0[官方] windbg查找c ...
- 转 web前端性能分析--分析篇
通过具体实施后就可以获得第一手的web前端性能的数据了,然后每次新版本都跑,这就会获得大量的数据,为性能分析提供了基础的输入,同时应该还要综合使用多种工具去从不同的方向收集数据:比如showslow同 ...
- VC获得window操作系统版本号, 获取操作系统位数
原文链接: http://www.greensoftcode.net/techntxt/2014315195331643021849 #include <Windows.h>include ...
- 页面日期选择控件--jquery ui datepicker 插件
日期选择插件Datepicker是一个配置灵活的插件,我们可以自定义其展示方式,包括日期格式.语言.限制选择日期范围.添加相关按钮以及其它导航等.官方地址:http://docs.jquery.com ...
- Ubuntu下python两个版本的切换
最近在Ubuntu16.04安装了python3.5还有系统自带的python2.7.13,总结一下不同版本的切换问题. alias:别名 bashrc:个人配置文件 一.修改Python版本(针对用 ...
- 深入Javascript中apply、call、bind
最近在看一下node package的源码,发现很多里面都包含了function这个对象的apply.call.bind这三个方法,于是想拿出来再看看.. apply.call 在 javascrip ...
- 使用命令行工具mysqlimport导入数据
Usage: mysqlimport [OPTIONS] database textfile ... mysqlimport 程序是一个将以特定格式存放的文本数据(如通过“select * into ...
- Oracle学习笔记之三,Oracle 11g数据库的启动与关闭
SQL*PLus命令 SQLPLUS username[/password][@connect_identifier][AS SYSOPER|SYSDAB] 1. 启动数据库实例 STARTUP [n ...
- 如何进行SVN数据迁移并保存版本号数据
如何从一台服务器192.168.8.2迁移到另一台服务器192.168.8.30进行SVN数据迁移并保存版本号数据 工具/原料 SVN 方法/步骤 1 打开远程服务,连接192.168.8.2 ...