码迷,mamicode.com
首页 > 其他好文 > 详细

RHEL7聚合网络

时间:2015-05-30 01:55:10      阅读:531      评论:0      收藏:0      [点我收藏+]

标签:rhel7   linux   聚合网络   

RHEL7聚合网络

实际生产环境中,大公司的网络要求是比较严格的,特别是针对有特别服务的服务器,是要求不能出现问题的。要保证365x24的运行,以便提供更好的服务。还有,针对流量访问大的服务,还要求提供负载均衡,保证服务器不会出现访问拥堵的情况。本实验,我们简单介绍下Linux环境中的的聚合网络,通过多块网卡的绑定实现负载和容错的功能。

 

 

 

1.课程目标

 

  • 了解什么是聚合网络;

  • 了解聚合网络的作用、益处;

  • 掌握聚合网络的配置;

  • 能够单独熟练运用聚合网络。

 

 

2.添加网卡

 

首先,关闭虚拟机,添加两块网卡。此过程不在赘述,相信大家都OK的!添加后如下:

技术分享

在虚拟机环境中,&两块网卡要在同一个桥接模式。添加好后,点击【开启此虚拟机】开机。

 

 

 

3.nmcli的使用

 

根据以往的经验,在虚拟机中,关机之后添加的网卡,再次开机是不会自动生成配置文件的,但是ifconfig可以查看的到。

Ifconfig查看网卡信息

[root@freeit ~]# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.10.10  netmask 255.255.255.0  broadcast 192.168.10.255

        inet6 fe80::20c:29ff:fe70:f064  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:70:f0:64  txqueuelen 1000  (Ethernet)

        RX packets 122  bytes 16482 (16.0 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 71  bytes 12785 (12.4 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        ether 00:0c:29:70:f0:6e  txqueuelen 1000  (Ethernet)

        RX packets 17  bytes 4171 (4.0 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        ether 00:0c:29:70:f0:78  txqueuelen 1000  (Ethernet)

        RX packets 17  bytes 4171 (4.0 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

注:

  • RHEL7系统中,网卡的默认显示名是BIOS读取设备信息之后取的,如:第一块网卡名为eno16777736。此处显示eth0eth1eth2是因为之前人工修改了第一块网卡名为eth0,所以之后添加的网卡默认为eth1eth2……

 

查看网卡配置文件文件

[root@freeit ~]# ls /etc/sysconfig/network-scripts/

ifcfg-eno16777736.bak  ifdown-post      ifup-eth     ifup-Team

ifcfg-eth0             ifdown-ppp       ifup-ippp    ifup-TeamPort

ifcfg-lo               ifdown-routes    ifup-ipv6    ifup-tunnel

ifcfg-Profile_1        ifdown-sit       ifup-isdn    ifup-wireless

ifdown                 ifdown-Team      ifup-plip    init.ipv6-global

ifdown-bnep            ifdown-TeamPort  ifup-plusb   network-functions

ifdown-eth             ifdown-tunnel    ifup-post    network-functions-ipv6

ifdown-ippp            ifup             ifup-ppp

ifdown-ipv6            ifup-aliases     ifup-routes

ifdown-isdn            ifup-bnep        ifup-sit

如上:只有ifcfg-eth0的配置文件,没有另外两块网卡的配置文件。而此时的eth1eth2处于未活动状态,还没有active

按照之前在RHEL6及之前系统中的实验做法,是把eth0的文件复制之后修改其配置信息为eth1的,然后重启网络服务,让eth1处于active状态。但是这种做法是没办法修改网卡的UUID(UUID为系统自动分配的设备唯一标示符。针对此,下面我们将介绍一种更好的生成新增网卡配置文件的方式,就是使用nmcli命令。

 

nmcli是在RHEL7中一个管理NetworkManager很方便工具,会自动把配置文件写到/etc/sysconfig/network-scripts下,下面就看其具体使用。

 

在生成网卡配置文件之前,我们先查看下当前网卡标示信息,查看那些网卡为active状态

[root@freeit ~]# nmcli connection show

NAME       UUID                                  TYPE            DEVICE

Profile 1  3dc840bd-b13f-4e51-b1ac-6fe0a9dcc498  802-3-ethernet  eth0  

如上:现在只有缺省的eth0。还没有另外两块网卡信息。

 

使用nmcli添加eth1eth2的配置文件信息并激活两块网卡

[root@freeit ~]# nmcli connection add con-name eth1 type ethernet ifname eth1

//add添加名为eth1的网卡,类型为以太网,物理设备名字为eth1(如果没改en16777736eth0的话默认就是原设备名)

Connection ‘eth1‘ (042d6385-8670-4dcd-91c4-989e4924df66) successfully added.

[root@freeit ~]# nmcli connection add con-name eth2 type ethernet ifname eth2

Connection ‘eth2‘ (36e513bf-07b1-4ee7-b8be-b04aa3cd383e) successfully added.

------------------------------------------------添加成功之后查看------------------------------------------------

[root@freeit ~]# nmcli connection show

NAME       UUID                                  TYPE            DEVICE

eth2       36e513bf-07b1-4ee7-b8be-b04aa3cd383e  802-3-ethernet  eth2  

eth1       042d6385-8670-4dcd-91c4-989e4924df66  802-3-ethernet  eth1  

Profile 1  3dc840bd-b13f-4e51-b1ac-6fe0a9dcc498  802-3-ethernet  eth0 

 

查看是否生成配置文件

[root@freeit ~]# ls /etc/sysconfig/network-scripts/

ifcfg-eno16777736.bak  ifdown-ipv6      ifup-aliases  ifup-routes

ifcfg-eth0             ifdown-isdn      ifup-bnep     ifup-sit

ifcfg-eth1             ifdown-post      ifup-eth      ifup-Team

ifcfg-eth2             ifdown-ppp       ifup-ippp     ifup-TeamPort

如上,使用nmcli之后,自动生成了网卡配置文件,并active了网卡。

 

eth1为例,使用nmclieth1设置IP地址

[root@freeit network-scripts]# nmcli connection modify eth1 ipv4.addresses "172.16.30.100/24" ipv4.method manual

[root@freeit network-scripts]# nmcli connection up eth1

//启用此网卡

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)

[root@freeit network-scripts]# ifconfig eth1

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 172.16.30.100  netmask 255.255.255.0  broadcast 172.16.30.255

        inet6 fe80::20c:29ff:fe70:f06e  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:70:f0:6e  txqueuelen 1000  (Ethernet)

        RX packets 132  bytes 21376 (20.8 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 117  bytes 13546 (13.2 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

除了使用上面的一条命令直接设置外,还可以分步骤设置,如下:

[root@freeit ~]# nmcli con edit "eth1"

//打开编辑模式

===| nmcli interactive connection editor |===

 

Editing existing ‘802-3-ethernet‘ connection: ‘eth1‘

 

Type ‘help‘ or ‘?‘ for available commands.

Type ‘describe [<setting>.<prop>]‘ for detailed property description.

 

You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, ipv4, ipv6, dcb

nmcli> set ipv4.addresses  172.16.30.100/24 172.16.30.1

//设置IP地址

nmcli> save

//保存设置

Connection ‘eth1‘ (042d6385-8670-4dcd-91c4-989e4924df66) successfully updated.

nmcli> activate eth1

//激活网卡

Monitoring connection activation (press any key to continue)

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)

 

nmcli> quit

//退出编辑模式

 

 

 

4.聚合网络设置

 

聚合网络的原理

技术分享

真实的ip地址并不是在物理网卡上设置的,而是把两个或多个物理网卡聚合成一个虚拟的网卡,在虚拟网卡上设置地址,而外部网络访问本机时,就是访问的这个虚拟网卡的地址,虚拟网卡接到数据后经过两个网卡的负载交给服务器处理。如果一块网卡出现问题,则通过另一块传递数据,保证正常通信。此原理与CISCOHSRP协议相似,懂网络的同学理解更容易。

 

本部分实验我们将详细介绍网卡的绑定,实现聚合网络以达到负载和容错的能力。

聚合网络实验过程中,添加的两块新网卡可以不是active状态,甚至nmcli connect show查看没有新添加的网卡信息。也可以使active状态的网卡。前者聚合后的网络,eth1&eth2MAC地址是一样的,而后者聚合后的网络,eth1&eth2MAC地址是不一样的。本实验接着上部分实验继续。

添加虚拟网卡配置文件并设置策略自动激活(active)此虚拟网卡、自动容错切换

[root@freeit ~]# nmcli connection add con-name team0 type team ifname team0 config ‘{"run":{"name":"activeback"}}‘

//team类型、卡名team0为规定。无物理设备,名字可以填写虚拟的team0Config后为策略,让网卡之间出问题时自动切换。

Connection ‘team0‘ (8d0a1f5a-348f-4537-8adf-aaf87d106277) successfully added.

[root@freeit ~]# nmcli connection show

NAME       UUID                                  TYPE            DEVICE

Profile 1  3dc840bd-b13f-4e51-b1ac-6fe0a9dcc498  802-3-ethernet  eth0  

eth2       36e513bf-07b1-4ee7-b8be-b04aa3cd383e  802-3-ethernet  eth2  

team0      8d0a1f5a-348f-4537-8adf-aaf87d106277  team            team0 

 

添加虚拟网卡之后,为其设置IP

[root@freeit ~]# nmcli connection modify  team0 ipv4.addresses "172.16.30.100/24" ipv4.method manual connection.autoconnect yes

//设置自动连接

 

把两块网卡添加到team0中,即把两块网卡聚合在一起

[root@freeit ~]# nmcli connection add con-name slave1 ifname eth1 type team-slave master team0

Connection ‘slave1‘ (8abcd1af-21b3-4571-a72b-b5835228e570) successfully added.

[root@freeit ~]# nmcli connection add con-name slave2 ifname eth2 type team-slave master team0 

Connection ‘slave2‘ (824a0b75-bfe9-40a7-bd72-4c41a05cd763) successfully added.

 

查看聚合后的信息

[root@freeit ~]# nmcli connection show

NAME       UUID                                  TYPE            DEVICE

Profile 1    3dc840bd-b13f-4e51-b1ac-6fe0a9dcc498  802-3-ethernet        eth0  

eth2       36e513bf-07b1-4ee7-b8be-b04aa3cd383e  802-3-ethernet       eth2  

slave2      824a0b75-bfe9-40a7-bd72-4c41a05cd763  802-3-ethernet       --    

slave1      8abcd1af-21b3-4571-a72b-b5835228e570  802-3-ethernet       eth1  

team0      8d0a1f5a-348f-4537-8adf-aaf87d106277  team                team0

 

启用网卡

[root@freeit ~]# nmcli connection up team0

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)

 

Ifconfig查看网卡信息

[root@freeit ~]# ifconfig

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.10.10  netmask 255.255.255.0  broadcast 192.168.10.255

        inet6 fe80::20c:29ff:fe70:f064  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:70:f0:64  txqueuelen 1000  (Ethernet)

        RX packets 1573  bytes 145080 (141.6 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 1202  bytes 138099 (134.8 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        ether 00:0c:29:70:f0:6e  txqueuelen 1000  (Ethernet)

        RX packets 34  bytes 5999 (5.8 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 117  bytes 16308 (15.9 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        ether 00:0c:29:70:f0:78  txqueuelen 1000  (Ethernet)

        RX packets 181  bytes 26498 (25.8 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 137  bytes 13867 (13.5 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 0  (Local Loopback)

        RX packets 6  bytes 560 (560.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 6  bytes 560 (560.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

 

team0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 172.16.30.100  netmask 255.255.255.0  broadcast 172.16.30.255

        inet6 fe80::20c:29ff:fe70:f06e  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:70:f0:6e  txqueuelen 0  (Ethernet)

        RX packets 2  bytes 283 (283.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 54  bytes 7770 (7.5 KiB)

        TX errors 0  dropped 1 overruns 0  carrier 0  collisions 0

如上,启动之后,只有team0有地址,其余两个网卡为team0的负载网卡。

 

验证(请自行验证):

使用同网段的主机ping  team0地址:172.16.30.100,然后断开其中一块网卡的连接,可以看到ping仍然在继续,并没有断开。如果断开全部聚合的网卡,则ping中断。这也就体现了聚合网络的负载和容错能力。

 

本文出自 “海贼王” 博客,请务必保留此出处http://freeithzw.blog.51cto.com/7297595/1656509

RHEL7聚合网络

标签:rhel7   linux   聚合网络   

原文地址:http://freeithzw.blog.51cto.com/7297595/1656509

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!