网 卡 和 IP 的 应 用

今天不经意间了解到了一块网卡可以绑定多个IP的设置,然后想去看看别人关于这类的文档,又发现了网卡绑定的应用与设置,和一些详细的一卡多IP的配置,在这总结一下;

一块网卡绑定多个IP

有的时候我们确实有这样的需求,因为我是个新手遇到的不多嘛,我遇到的是在做高可用的主备集群时,因为要设置一个流动(虚拟)IP,所以在原有网卡上配置了个虚拟IP;

网卡eth0:192.168.1.103   netmask:255.255.255.0

临时配置

ifconfig   eth0:0  192.168.0.1    netmask  255.255.255.0   up

ifconfig   eth0:1  192.168.0.2    netmask 255.255.255.0    up

测试

ping   192.168.0.1

ping   192.168.0.2

将eth0改为eth0:x(x=0-255),eth0:x称为虚拟网络接口,是建立在网络接口(eth0)上边;

临时配置的IP重启后就会消失。


永久配置

法一:将上述命令加入到开机自动执行的/etc/rc.d/rc/local脚本中去;

法二:给虚拟网卡写一个配置文件

cd    /etc/sysconfig/network-scripts/

cp    ifcfg-eth0    ifcfg-eth0\:0                           \ 脱义符

vim   ifcfg-eth0:0                                                将ifcfg-eth0内容拷贝过去,更改如下

只需要更改DEVICE 和 IPADDR即可,别的无所谓

只要设备名字和IP不一样,可以增加255个这样的IP,但会没有必要,配置方法一样;

多网卡绑定

Linux下双网卡绑定技术实现负载均衡和失效保护,既增加了服务器的可靠性,又增加了可用网络带宽,为用户提供不间断的关键服务。

双网卡绑定实现就是使用两块网卡虚拟成为一块网卡;

其实这项技术在Sun和Cisco中早已存在,被称为Trunking和Etherchannel技术,在Linux的2.4.x的内核中也采用这这种技术,被称为bonding。

在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身Mac的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担。但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,比如说tcpdump,就是运行在这个模式下。

bonding也运行在这个模式下,而且修改了驱动程序中的mac地址,将两块网卡的Mac地址改成相同,可以接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。

绑定的条件:芯片组型号相同,而且网卡应该具备自己独立的BIOS芯片

编辑虚拟网络接口配置文件,指定网卡IP

cd    /etc/sysconfig/network-scripts/

cp    ifcfg-eth0 ifcfg-bond0

vim   ifcfg-bond0                                        将第一行改成 DEVICE=bond0

DEVICE=bond0

BOOTPROTO=static

IPADDR=172.31.0.13

NETMASK=255.255.252.0

BROADCAST=172.31.3.254

ONBOOT=yes

TYPE=Ethernet

这里要注意,不要指定单个网卡的IP 地址、子网掩码或网卡 ID,改为dhcp 动态获取IP;

配置启动加载模块

vi   /etc/modules.conf

添加:

alias  bond0  bonding

options  bond0  miimon=100  mode=1

miimon是用来进行链路监测的。 比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。

mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。

mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说

默认情况下只有一块网卡工作,另一块做备份.

bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用

配置开机执行脚本

vi   /etc/rc.d/rc.local

添加

ifenslave  bond0  eth0  eth1                                 指定工作顺序

route  add  -net  172.31.3.254  netmask  255.255.255.0 bond0      设置静态路由

重启:看见以下信息就表示配置成功了

................

Bringing up interface bond0 OK

Bringing up interface eth0 OK

Bringing up interface eth1 OK

mode=1工作在主备模式下,当一个网络接口失效时,不会出现网络中断,系统会按照cat /etc/rc.d/rc.local里指定网卡的顺序工作,机器仍能对外服务,起到了失效保护的功能。

ifconfig          验证网卡的配置信息

bond0     Link encap:Ethernet  HWaddr 00:0E:7F:25:D9:8B

inet addr:172.31.0.13  Bcast:172.31.3.255  Mask:255.255.252.0

UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1

RX packets:18495 errors:0 dropped:0 overruns:0 frame:0

TX packets:480 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:1587253 (1.5 Mb)  TX bytes:89642 (87.5 Kb)

eth0      Link encap:Ethernet  HWaddr 00:0E:7F:25:D9:8B

inet addr:172.31.0.13  Bcast:172.31.3.255  Mask:255.255.252.0

UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1

RX packets:9572 errors:0 dropped:0 overruns:0 frame:0

TX packets:480 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:833514 (813.9 Kb)  TX bytes:89642 (87.5 Kb)

Interrupt:11

eth1      Link encap:Ethernet  HWaddr 00:0E:7F:25:D9:8B

inet addr:172.31.0.13  Bcast:172.31.3.255  Mask:255.255.252.0

UP BROADCAST RUNNING NOARP SLAVE MULTICAST  MTU:1500  Metric:1

RX packets:8923 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:753739 (736.0 Kb)  TX bytes:0 (0.0 b)

Interrupt:15

在mode=0    负载均衡工作模式,他能提供两倍的带宽,在这种情况下出现一块网卡失效,仅仅会是服务器出口带宽下降,也不会影响网络使用。

ifconfig

bond0     Link encap:Ethernet  HWaddr 00:0E:7F:25:D9:8B

inet addr:172.31.0.13  Bcast:172.31.3.255  Mask:255.255.252.0

UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1

RX packets:2817 errors:0 dropped:0 overruns:0 frame:0

TX packets:95 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:226957 (221.6 Kb)  TX bytes:15266 (14.9 Kb)

eth0      Link encap:Ethernet  HWaddr 00:0E:7F:25:D9:8B

inet addr:172.31.0.13  Bcast:172.31.3.255  Mask:255.255.252.0

UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1

RX packets:1406 errors:0 dropped:0 overruns:0 frame:0

TX packets:48 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:113967 (111.2 Kb)  TX bytes:7268 (7.0 Kb)

Interrupt:11

eth1      Link encap:Ethernet  HWaddr 00:0E:7F:25:D9:8B

inet addr:172.31.0.13  Bcast:172.31.3.255  Mask:255.255.252.0

UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1

RX packets:1411 errors:0 dropped:0 overruns:0 frame:0

TX packets:47 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:112990 (110.3 Kb)  TX bytes:7998 (7.8 Kb)

Interrupt:15

通过查看bond0的工作状态查询能详细的掌握bonding的工作状态 

[[email protected] bonding]# cat   /proc/net/bonding/bond0

bonding.c:v2.4.1 (September 15, 2003)

Bonding Mode: load balancing (round-robin)

MII Status: up

MII Polling Interval (ms): 0

Up Delay (ms): 0

Down Delay (ms): 0

Multicast Mode: all slaves

Slave Interface: eth1

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0e:7f:25:d9:8a

Slave Interface: eth0

MII Status: up

Link Failure Count: 0

Permanent HW addr: 00:0e:7f:25:d9:8b

两个地方不是很清楚:

第一  route  add  -net  172.31.3.254  netmask  255.255.255.0 bond0  ?

第二  对bond0 eth0 eth1 都配置为dhcp动态获取么?

我的理解是三个网卡都配置为dhcp,配置静态路由的IP是指向三个网卡的,但问题是下面ifconfig得到的

IP,却是172.31.0.13,为什么?



时间: 2024-11-03 00:28:42

网 卡 和 IP 的 应 用的相关文章

CentOS多网卡单个ip和单个网卡多个ip的设置

一.单个网卡设置一个IP地址 1.初始状态已添加一个网卡eth0,并设置的均为自动获取IP地址,如下图所示:网卡为eth0,ip地址为10.1.249.36:为了后续实验的顺利进行,我们把NetworkManager服务关闭 chkconfig NetworkManager off service NetworkManager stop    2.在/etc/sysconfig/network-scripts下面有网卡eth0的配置信息:ifcfg-eth0,复制ifcfg-eth0 并改名为i

一块网卡多个IP实现

////////////////////////////写在前面//////////////////////////////////////////// 需要注意,这里我们是一块网卡多个IP,而并非是多个网卡 即网络接口卡和网络接口并非一个概念 而且,新增的这个IP并不可以改善带宽吞吐量等网络性能,只能作为一个虚拟网卡使用 再者,因为是虚拟网卡,所以如果eth0不启用的话便启用不了,eth0关闭,eth0:0也会随之关闭 /////////////////////////////////////

ROS单内网服务器源IP限速

最近项目有个需求,局域网有个文件服务器提供外网用户访问,但由于带宽较小,所以想限制总带宽比如10M,然后单个建立的链接也就是上传不能超过比如3M,一旦超过总带宽就均分 标记访问该内网服务器的IP /ip firewall mangle add chain=forward dst-address=192.168.10.10 action=mark-connection new-connection-mark=users-con /ip firewall mangle add connection-

linux配置ip地址、多网卡绑定、单网卡多个ip

1.ifconfig命令临时配置ip地址 ifconfig命令:查看和配置网路状态命令 ifconfig ens32 192.168.200.200/24 #临时设置ens32网卡的ip地址和子网掩码 ifconfig ens32:0 10.1.1.254 netmask 255.255.255.0 #单个网卡设置多个ip地址 ifconfig ens32:0 down         #关闭网卡 2.修改网络配置文件 vim /etc/sysconfig/network-scripts/ifc

查找网内活跃IP和自动传输文本

ifconfig p32p1|egrep -o "broadcast [^ ]*" |grep -o "[0-9.]*"grep -o "broadcast [^ ]*" 标示以broadcast开始,以非空格字符(由[^ ]*指定)序列作为结束,[0-9.]标示数字和点号,后面的*如果不加将每个数字占一行 查找网内活跃的IP地址#!/bin/sh#()&后台并行执行#wait 等待所有子程序结束for ip in 192.168.5.{

red hat关于桥接模式连不上外网或者没有IP

很多人·在启动虚拟机后连接不上外网,即ifconfig没有ip地址,我总结了一下需要注意的地方: 以下全是在桥接模式. 1.在windows中打开任务管理器-->服务中找到一下几个服务,确保它们开启 2.重启虚拟机,若还是连不上网,需要初始化下VMware的网络配置,如下: 还原默认设置后,手动选择桥接到那一栏,选择有线网卡,重启虚拟机即可. 虚拟机的需要修改: 3.我以前还遇见过都不可以的,需要把上面做好后整台电脑都需要重启的情况,也不知道为什么,等以后知道了再补充上咯.

安网路由器 静态IP和PPOE混用时,如果设置了路由器定时重启可能导致路由器罢工

背景:公司这边使用了电信的静态IP和电信的PPOE网络接入,PPOE有个弊端就是每个一段时间(大概48小时)会释放ip重连,造成极短时间的断网.为了不影响到公司的正常办公,原同事的解决方法是给路由器设置每天早上7点定时重启,这样PPOE链接状态就被重置了,接下来的工作时间内都不会因为电信释放ip而造成网络波动. 不巧的是,这个设置会有几率导致内网无法使用,具体表现为路由器无法连接外网,内网机器也无法获取到内网ip,无法访问路由器进行设置. 解决方法:跟安网的技术人员交流后,他们给了一个新的固件,

公司内网搭建代理DNS使用内网域名代替ip地址

企业场景 一般在企业内部,开发.测试以及预生产都会有一套供开发以及测试人员使用的网络环境.运维人员会为每套环境的相关项目配置单独的Tomcat,然后开放一个端口,以 IP+Port 的形式访问.然而随着项目的增多,对于开发和测试人员记住如此多的内网地址,无疑是一件头疼的事情(当然你也可以使用浏览器书签管理器或者记录在某个地方).但是你不永远不会确定,那天由于升级突然改了IP,我们可能又要重新撸一遍配置,所以内网域名还是非常有必要的. 内网域名具体有哪些优点: 方便记忆 变更IP,只需要修改DNS

【docker】【Gitlab】gitlab中clone项目时,IP地址是一串数字(内网Gitlab的IP地址不正确)的问题解决

首次在内网搭建Gitlab环境,在成功后在Gitlab上新建了一个项目. 然而在IDEA上clone项目时发现,项目地址如下: git@0096ce63c43f:root/jump.git 或者这样 http://0096ce63c43f/root/jump.git 然而在setting中看到的IP地址却是虚拟机的IP地址: 但是此处是无法改变的IP地址,也就是我在IDEA进行clone项目时,还是这一串: 而这样进行Clone操作,这种IP是识别不了的 OK,问题描述完了,现在来说说解决方法: