时间:2016-03-12来源:linux网站作者:进京

环境介绍:

系统:目前最新的7.2

[root@localhostnetwork-scripts]# lsb_release -a

LSBVersion: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch

distributorID: CentOS

Description: CentOSLinux release 7.2.1511 (Core)

Release: 7.2.1511

Codename: Core

网络:

VMware虚拟机,添加5块网卡都配置NAT,有一块负责跟主机ssh。


1、环境准备

centos 7是最小化安装,启动后看一下网卡IP,可以通过 ssh 连接了,先安装几个网络管理工具,像 ifconfig默认都没有安装。

yum -y install vimwget pciutils net-tools


2、查看网络设备

[root@localhostnetwork-scripts]# nmcli device status

DEVICE TYPE STATE CONNECTION

eno16777736 ethernet connected eno16777736

eno83886664 ethernet connected Wired connection 1

eno33554960 ethernet disconnected --

eno50332216 ethernet disconnected --

eno67109440 ethernet disconnected --

lo loopback unmanaged --

DEVICE列能看到我们有5块网卡,名字为什么这么奇怪可以看命名规则的文章,因为我这用的是虚拟机,eno后的数字比较长,如果是在真实服务器上,你应该能看到eno1、eno2 ……,下图是网卡的配置文件,系统会自动创建,但也有可能没有,原因我也不清楚,没有也没关系,可以自己创建,所以如果你发现自己的服务器没有网卡配置文件也不要奇怪

wKiom1dcI3KBrVsaAADrO_YmjyQ017.jpg

上面nmcli device status命令的输出结果我们再看一下,STATE状态这一行有connected和 disconnected,我一开始以为是有没有连接网线的,后来发现是表示有没有正确获取IP地址,上面的结果显示只有两块网卡正确获取IP,可能有朋友会问那不接网线会显示什么呢?

[root@localhostnetwork-scripts]# nmcli dev sta

DEVICE TYPE STATE CONNECTION

eno83886664 ethernet connected Wired connection 1

eno33554960 ethernet disconnected --

eno50332216 ethernet disconnected --

eno67109440 ethernet disconnected --

eno16777736 ethernet unavailable --

lo loopback unmanaged --

不接网线网络肯定没法用,所以显示unavailable网络不可用。细心的朋友有没有发现nmcli命令的不同,可以使用缩写,不知道红帽有没有借鉴思科,nmcli device status 可以缩写成 nmcli d s,命令不能缩写啊,可以补全,呵呵。

好了,网卡介绍就到这,下面我们看一下网卡的分配:

eno16777736 -- eno1 -- bond 0 (外网)

eno33554960 -- eno2-- bond 0

eno50332216 -- eno3 -- bond 1(内网)

eno67109440 -- eno4-- bond 1

eno83886664 -- NAT

bond 0连接外网, bond 1连接内网,为了以后方便对网卡操作可以在配置文件中修改设备名。


3、配置Bonding

Centos 7 提供三种方式配置

nmtui

nmcli

cli

nmtui是一种图形化方式,刚开始可以使用这种方式。(配置bond会对网卡重新生成配置文件,系统自动生成的可以删除),我们先使用nmtui来配置。

wKiom1dcI_ThcrdrAAA__Gp4rWI650.jpg

wKioL1dcJQGAJ_6uAABysLUTTt8640.jpg

wKioL1dcJQKScKHnAACFAZdJglo425.jpg

配置完成后会生成三个配置文件,

wKiom1dcJICzTsM_AAAvpe2Y1lA785.jpg

配置文件可以精简一下:

[root@localhostnetwork-scripts]# cat ifcfg-bond0

DEVICE=bond0

TYPE=Bond

BONDING_MASTER=yes

BOOTPROTO=static

NAME=bond0

ONBOOT=yes

BONDING_OPTS="resend_igmp=1updelay=0 use_carrier=1 miimon=100 downdelay=0 xmit_hash_policy=0primary_reselect=0 fail_over_mac=0 arp_validate=0 mode=balance-rr lacp_rate=0arp_interval=0 ad_select=0"

IPADDR=192.168.64.20

NETMASK=255.255.255.0

GATEWAY=192.168.64.2

DNS1=192.168.64.1

[root@localhostnetwork-scripts]# cat ifcfg-eno1

TYPE=Ethernet

NAME=eno1

DEVICE=eno16777736

ONBOOT=yes

MASTER=bond0

SLAVE=yes

[root@localhostnetwork-scripts]# cat ifcfg-eno2

TYPE=Ethernet

NAME=eno2

DEVICE=eno33554960

ONBOOT=yes

MASTER=bond0

SLAVE=yes

重启服务:

[root@localhostnetwork-scripts]# nmcli conn reload

[root@localhostnetwork-scripts]# systemctl restart network

][root@localhostnetwork-scripts]# nmcli dev sta

DEVICE TYPE STATE CONNECTION

bond0 bond connected bond0

eno16777736 ethernet connected eno1

eno33554960 ethernet connected eno2

eno83886664 ethernet connected Wired connection 1

eno50332216 ethernet disconnected --

eno67109440 ethernet disconnected --

lo loopback unmanaged --

[root@localhostnetwork-scripts]# ifconfig bond0

bond0:flags=5187<UP,broADCAST,RUNNING,MASTER,MULTICAST> mtu 1500

inet 192.168.220.20 netmask 255.255.255.0 broadcast 192.168.220.255

inet6 fe80::4d1:d2ff:fe5b:804a prefixlen 64 scopeid 0x20<link>

ether 00:0c:29:d7:dc:0d txqueuelen 0 (Ethernet)

RX packets 8 bytes 690 (690.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 2 bytes 138 (138.0 B)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0


4、bond测试

我们的环境一共有5块网卡,2块刚才配置成bond0,有2块没有配置,也就没有IP,有1块用来连接ssh的有Ip地址,需要停用掉,否则影响实验效果,使用 ifdown 设备名将设备停用,详见下图:

wKioL1dcJceyxIOeAAEhTkuXJRs172.jpg

最后使用 ip addr命令查看,确保只有bond0有ip地址就可以了,其他接口都使用ifdown停掉。

测试时使用 ifdown eno1断开一块网卡再测试。

wKiom1dcJM2hSPaJAADtB3pOi5Y257.jpg

5、CLI配置Bonding

可以直接修改配置文件来配置bonding,将之前的配置文件复制一份,把IP地址、device名称修改一下就可以了。

[root@localhostnetwork-scripts]# cat ifcfg-bond1

DEVICE=bond1

TYPE=Bond

BONDING_MASTER=yes

BOOTPROTO=static

NAME=bond1

ONBOOT=yes

BONDING_OPTS="resend_igmp=1updelay=0 use_carrier=1 miimon=100 downdelay=0 xmit_hash_policy=0primary_reselect=0 fail_over_mac=0 arp_validate=0 mode=balance-rr lacp_rate=0arp_interval=0 ad_select=0"

IPADDR=192.168.64.30

NETMASK=255.255.255.0

GATEWAY=192.168.64.2

DNS1=192.168.64.2

[root@localhostnetwork-scripts]# cat ifcfg-eno3

TYPE=Ethernet

NAME=eno3

DEVICE=eno67109440

ONBOOT=yes

MASTER=bond1

SLAVE=yes

[root@localhostnetwork-scripts]# cat ifcfg-eno4

TYPE=Ethernet

NAME=eno4

DEVICE=eno50332216

ONBOOT=yes

MASTER=bond1

SLAVE=yes

重启网络服务,service命令系统还支持,但会提示转给 systemctl,可以直接使用 systemctl重启服务。

wKioL1dcJiTjcNASAABAv3uGvtI028.jpg

测试一下应该没问题的,所以以后要配置bond,可以直接修改配置文件就可以了。


6、使用nmcli命令创建Bonding

nmcli con add type bond ifname bond0 mode balance-rr #创建master,模式为round-robin

nmcli con add type bond-slave ifname eno1 master bond0 #添加eno1为slave

nmcli con add type bond-slave ifname eno2 master bond0 #添加eno2为slave


本文永久更新地址:http://www.linuxdiyf.com/linux/18870.html

centos7.2 虚拟机多网卡处理的更多相关文章

  1. XCode 5远程调试OS X应用程序

    我正在使用XCode5.0.2在OSX10.9上开发一个应用程序并获得了一个我无法在这台开发机器上重现的错误报告.但是,我有一个10.7虚拟机出现崩溃,所以我想调试那里没有在这个VM中安装XCode.我搜索了有关远程调试的信息,但我没有得到有用的答案.我甚至担心它根本不受支持.但无论如何我还是要问一下.或者,除了执行完整的XCode安装等之外,还有哪些其他选项来调试这样的问题?

  2. cinder swift的区别

    [原]OpenStack入门以及一些资料之2014-4-29阅读1144评论0注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明。它拥有自己的文件系统,通过网络文件系统NFS或通用文件系统CIFS对外提供文件访问服务。Raid,不同的raid等级在增加数据可靠性以及增加存储器(群)读写性能间取得平衡。卷组描述区域,和磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。

  3. OpenStack中Swift和cinder区别

    swift是objectstorage,将object存储到bucket里,你可以用swift创建container,然后上传文件,例如视频,照片,这些文件会被replication到不同服务器上以保证可靠性,swift可以不依靠虚拟机工作。如果你把这个虚拟机terminate了,这个volume和里边的数据依然还在,你还可以把它接到其他虚拟机上继续使用里边的数据。cinder创建的volume必须被接到虚拟机上才能工作。

  4. Swift属性观察者在协议扩展?

    换句话说,我可以观察协议扩展中的属性的更改吗?这并不意味着它是不可能实现的,但如果我们有这样的话可能会有点令人惊讶.

  5. 解决Swift 3中缺少递归协议约束的问题

    Swift3目前对“递归协议约束”有一个限制.有一个公开的问题here,在here,here和here有类似的讨论.但是,我仍然没有看到应该如何解决这个限制.可能吗?或者我需要开始引入较不严格的协议,直到在Swift中实现?会出现.然而,通过这种方法,我们可以得到正确的类型,而无需做很多专业化.当然,可以添加更多的协议来获得更多的抽象,但同样的解决方案将会适用.由于某些原因/语言缺陷,您必须在View.foo中分配委托时使用显式转换:viewmodel.delegate=selfas?

  6. Android VM不允许我们分配xx字节

    我正在开发一款安卓游戏.当我尝试使用3张图像作为背景时问题就出现了.图像为1280x720px和100kb大.图像真的不是那么大,所以我有点困惑,为什么它们应该导致内存问题.注意:屏幕分辨率为800×400,因此我无法通过因子2调整图像大小,因为它是suggestedonandroiddeveloper注意:我正在使用HTC欲望手机(这里崩溃来了),我也尝试过在三星galaxyS1和三星上运行正常

  7. 在Android中编译java文件后,注释会发生什么?

    Android编译器如何工作?它是否在编译时删除了Java代码和AndroidXML文件中的注释?

  8. 为什么Android上的每个应用程序都有单独的VM(Dalvik / ART)实例?

    正如标题所述,为什么Android上的每个App都有单独的VM实例?(需要它)如果Android操作系统选择了单个虚拟机运行所有应用程序的模型,会发生什么?解决方法在单个进程中运行多个应用程序不起作用的原因有很多;这是两个:安全区.两个不相互信任的应用程序不应该能够查看彼此的内存,即使它们使用本机代码或反射.失败隔离.如果进程泄漏内存并崩溃,则只会损害自身.

  9. android – 如何选择最佳图像大小不超过VM预算?

    在我的应用用户中,选择图像和程序可让用户对图像进行更改.由于有很多不同的Android设备,我的程序在一些设备上崩溃,这些设备的堆大小较少.我想计算用户手机的最佳尺寸,以免因VM预算而崩溃.我添加了“PicsayPro”的截图,它正是我正在寻找的.我知道“BitmapFactory.Options”我唯一的问题是找到一种方法来决定图像尺寸,这不会因为VM预算而导致应用程序崩溃.解决方法计算手机剩余

  10. Virtualbox上的Android x86中的蓝牙

    解决方法VirtualBox能够共享USB设备.您的蓝牙适配器可能通过USB内部连接也可能不通过USB连接.我有两个Thinkpad,里面都有蓝牙,只有一个在USB上.许多“我想测试我的Android蓝牙应用程序”解决方案中提到的技巧假设您的蓝牙设备使用USB,但是当它没有时它将无法工作.

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部