美文网首页redhat7.2网络配置
多网卡同IP和同网卡多IP技术

多网卡同IP和同网卡多IP技术

作者: geekdeedy | 来源:发表于2017-07-01 16:20 被阅读0次

    多网卡同IP技术

    将多个网卡端口绑定为一个,可以提升网络的性能。在linux系统上有两种技术可以实现,Linux 网络组和bond,通过绑定多个网卡作为一个逻辑网口并配置单个的IP地址,大幅提升服务器的网络吞吐。

    Bonding

    目前发布各个Linux版本内核均已包含了此模块,大多数情况下不需要重新编译内核。 Linux 的 bonding 驱动提供了绑定/集成(bond)多个网卡为一个虚拟逻辑网口的功能。 一般来说绑定的网口(bonded)有多种工作模式,主要有热后备(hot standby) 和 负载均衡(load balancing).
    1.创建bond0配置文件

    1.创建bond0配置文件

    vi /etc/sysconfig/network-scripts/ifcfg-bond0 添加配置参数

    配置属性 含义
    DEVICE 物理设备名字
    ONBOOT 在系统引导时是否激活此设备
    TYPE 接口类型;常见有的Ethernet,Bridge
    IPADDR 指明IP地址
    NETMASK 子网掩码
    GATEWAY 默认网关
    NAME bond名称
    DNS1 第一个DNS服务器指向
    DNS2 第二个DNS服务器指向
    USERCTL 普通用户是否可控制此设备
    PEERDNS 如果BOOTPROTO的值为“dhcp”,是否允许
    2.修改被绑定的eth0和eth1的配置文件

    vi /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE="eth0"
    USERCTL=no
    ONBOOT=yes
    MASTER=bond0
    SLAVE=yes(设置从属关系)
    BOOTPROTO=none
    HWADDR=00:15:17:CC:FC:35
    eth1的配置文件与之相同,只是device的值改为eth1即可。

    3.装载bond模块驱动

    编辑/etc/modprobe.conf或者/etc/modules.conf文件,加入如下内容,使系统启动时加载bonding模块驱动
    alias bond0 bonding
    option bond0 miimon=100 mode=1
    说明:
    1).miimon=100 用来进行链路监测的。即每100ms监测一次链路状态。bonding只监测主机与交换机之间链路。如果交换机出去的链路出问题而本身没有问题,那么bonding认为链路没有问题而继续使用。
    2).mode=1 表示提供冗余功能。除此之外还可以为0、2、3,共四种模式。0表示负载均衡

    4.在/etc/rc.d/rc.local文件中加入如下语句,使得系统启动自动运行

    ifenslave bond0 eth0 eth1
    route add -net 192.168.1.254 netmask 255.255.255.0 bond0 #如有需要才加该路由

    5.检测、验证配置

    首先执行命令装载bonding模块:modprobe bonding
    重启网络服务,并确认bond0正确启动:service network restart
    确认设备已经正确加载:less /proc/net/bonding/bond0
    至此,bond 的设置就基本结束了
    删除bond
    ifconfig bond0 down
    rmmod bonding

    网络组配置

    网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量,网络组不同于旧版中bonding 技术,能提供更好的性能和扩展性,网络组由内核驱动和teamd 守护进程实现.

    1.创建网络组接口

    nmcli connection add type team con-name TEAMname ifname INTname [config JSON]
    TEAMname 指定连接名,INname指定接口名,JSON指定runner方式,格式为:'{"runner":{"name":"METHOD"}}'
    METHOD 可以是broadcast、roundrobin、activebackup、loadbalance、lacp
    (1)创建网络接口组team0
    [root@centos7 ~]# nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"loadbalance"}}'
    Connection 'team0' (e70483a1-2688-4eb2-9466-8e732360291d) successfully added.
    (2)给网路组team0配置IP地址
    [root@centos7 ~]# nmcli connection modify team0 ipv4.method manual ipv4.addresses 200.200.200.200/24 gw4 200.200.200.1

    2 创建port接口(SLAVE)

    既就是生成组TEAM组成员的配置文件,这个配置文件和网卡配置文件是相互独立的。
    nmcli connection add type team-slave con-name SLAVEname ifname INname master TEAMname
    SLAVEname 指定连接名,INTname指定网络接口名(相当于指定要加入网络组的网卡名),TEAMnmae指定所属网络组。
    若连接名不指定,默认为team-slave-IFACE
    创建接口组
    这里使用ens34、ens38两块网卡
    [root@centos7 ~]# nmcli connection add con-name team0-ens34 type team-slave ifname ens34 master team0

    Connection 'team0-ens34' (a481fb6d-bf61-413d-a2c7-289966bee1a7) successfully added.

    [root@centos7 ~]# nmcli connection add con-name team0-ens38 type team-slave ifname ens38 master team0

    Connection 'team0-ens38' (758d0eba-1625-46b2-b539-1d853a45be6b) successfully added.

    3 启用网络组

    启用网络组:nmcli connection up team0
    启用组成员:nmcli connection up SLAVEname
    [root@centos7 ~]# nmcli connection up team0

    Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/20)

    [root@centos7 ~]# nmcli connection up team0-ens34

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

    [root@centos7 ~]# nmcli connection up team0-ens38

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

    4 查看网络组状态

    teamdctl TEAMname state
    [root@centos7 ~]# teamdctl team0 state

    setup:
    runner: loadbalance
    ports:
    ens34

    link watches:
    link summary: up
    instance[link_watch_0]:
    name: ethtool
    link: up
    down count: 0
    ens38
    link watches:
    link summary: up
    instance[link_watch_0]:
    name: ethtool
    link: up
    down count: 0

    5 网络组配置文件

    (1)MASTER配置文件
    [root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-team0

    DEVICE=team0
    TEAM_CONFIG="{"runner":{"name":"loadbalance"}}"
    BOOTPROTO=none
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    NAME=team0
    UUID=e70483a1-2688-4eb2-9466-8e732360291d
    ONBOOT=yes
    DEVICETYPE=Team
    IPADDR=200.200.200.200
    PREFIX=24
    GATEWAY=200.200.200.1

    (2)组成员(SLAVE)配置文件
    [root@centos7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-team0-ens34

    NAME=team0-ens34
    UUID=a481fb6d-bf61-413d-a2c7-289966bee1a7
    DEVICE=ens34
    ONBOOT=yes
    TEAM_MASTER=team0
    DEVICETYPE=TeamPort

    6 删除网络组

    (1)断开连接
    [root@centos7 ~]# nmcli connection down team0

    Connection 'team0' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)

    再次查看状态
    [root@centos7 ~]# teamdctl team0 state

    Device "team0" does not exist

    [root@centos7 ~]# nmcli connection show

    NAME UUID TYPE DEVICE
    ens33 be9d1f2f-20e0-4282-9cb5-0da4c8b0fc7c 802-3-ethernet ens33
    virbr0 8b1532d4-d99b-4201-8163-44d733302230 bridge virbr0
    team0 e70483a1-2688-4eb2-9466-8e732360291d team --
    team0-ens34 a481fb6d-bf61-413d-a2c7-289966bee1a7 802-3-ethernet --
    team0-ens38 758d0eba-1625-46b2-b539-1d853a45be6b 802-3-ethernet --

    可以看到已经关闭成功
    (2)删除TEAM组成员
    [root@centos7 ~]# nmcli connection delete team0-ens34

    Connection 'team0-ens34' (a481fb6d-bf61-413d-a2c7-289966bee1a7) successfully deleted.

    [root@centos7 ~]# nmcli connection delete team0-ens38

    Connection 'team0-ens38' (758d0eba-1625-46b2-b539-1d853a45be6b) successfully deleted.

    (3)删除TEAM组
    [root@centos7 ~]# nmcli connection delete team0

    Connection 'team0' (e70483a1-2688-4eb2-9466-8e732360291d) successfully deleted.
    再次查看状态
    [root@centos7 ~]# nmcli connection show
    NAME UUID TYPE DEVICE
    ens33 be9d1f2f-20e0-4282-9cb5-0da4c8b0fc7c 802-3-ethernet ens33
    virbr0 8b1532d4-d99b-4201-8163-44d733302230 bridge virbr0
    已经看不到team0 相关的内容,说明删除成功

    同网卡多IP技术

    不同的工作环境通常IP地址以及相关网络属性通常是不一样的.如果我们每次都是手动去修改,那将是非常繁琐的.所以我们去修改一些网络配置让网卡去自适应工作环境.在linux系统上配置同一个网卡拥有多个IP的技术也就是为网卡添加多个子网卡,如eth0:0、eth1:1这种网络接口,LINUX最多可以支持255个IP子网卡。
    在linux系统上有两种方式添加子网卡。一种是使用网络配置命令,这种方式会立即生效,但不会永久生效,如果重启则会立即丢失。如果想要永久生效则是另一种方式去修改网络配置文件。配置子网卡命令前要卸载或者禁用NetworkManager服务,因为和NetworkManager有冲突。

    使用命令添加子网卡:

    使用ifconfig命令管理子网卡:
    ifconfig device[label] [address] [up|down]
    ifconfig eth0:0 192.168.1.100/24 up(添加并启用eth0:0子网卡)
    ifconfig eth0:0 down(禁用eth0:0子网卡)
    使用ip命令管理子网卡:
    ip addr add [address] device [label]
    ip addr add 172.16.1.2/16 dev eth0(为eth0网卡添加一个IP)
    ip addr add 172.16.1.1/16 dev eth0 label eth0:0(为eth0网卡添加一个IP并且指定label)
    ip addr del 172.16.1.1/16 dev eth0 label eth0:0(删除eth0上172.16.1.1/16这条IP)
    ip addr flush dev eth0 label eth0:0(刷新)
    把相关配置写入文件
    将上边的命令ifconfig加入到rc.local中去(永久生效)

    手动编写ip的网卡配置文件

    配置属性 含义
    ONBOOT 在系统引导时是否激活此设备
    DEVICE 物理设备名字
    TYPE 接口类型;常见有的Ethernet,Bridge
    UUID 设备的惟一标识
    IPADDR 指明IP地址
    NETMASK 子网掩码
    GATEWAY 默认网关
    DNS1 第一个DNS服务器指向
    DNS2 第二个DNS服务器指向
    USERCTL 普通用户是否可控制此设备
    PEERDNS 如果BOOTPROTO的值为“dhcp”,是否允许

    所有网卡的配置文件都保存在/etc/sysconfig/network-scripts目录中,一个网卡对应一个配置文件
    手工添加IP地址的
    以下是网卡配置文件的部分信息说明,其他类似信息默认即可:

    配置属性 含义
    ONBOOT 在系统引导时是否激活此设备
    DEVICE 物理设备名字
    TYPE 接口类型;常见有的Ethernet,Bridge
    UUID 设备的惟一标识
    IPADDR 指明IP地址
    NETMASK 子网掩码
    GATEWAY 默认网关
    DNS1 第一个DNS服务器指向
    DNS2 第二个DNS服务器指向
    USERCTL 普通用户是否可控制此设备
    PEERDNS 如果BOOTPROTO的值为“dhcp”,是否允许

    配置完成重启网卡即可:service network restart

    相关文章

      网友评论

        本文标题:多网卡同IP和同网卡多IP技术

        本文链接:https://www.haomeiwen.com/subject/brfgcxtx.html