zoukankan      html  css  js  c++  java
  • 多网卡绑定实例

    总共有7个配置文件,请参考5)
     
    1)目前服务器有4张网卡
    ifcfg-em1
    ifcfg-em2
    ifcfg-em3
    ifcfg-em4
     
    2)bond配置:
    em1和em2网卡做bond4,配置桥接到cloudbr0  
    IP配置为:172.28.101.11/24 网关为172.28.101.1
    em3和em4网卡做bond4,直接配置IP
    IP配置为:10.194.19.165/24 网关为10.194.19.254
     
     
     
     
    注意:
    1、假如上面4中网卡已经有了桥接的网卡,要先把网卡down掉(ifconfig bri-interfaces down),然后使用命令brctl delbr <bridge name>  #把桥接的网卡删除
    2、注意这个配置文件假如是dos格式的,会导致启动失败,记得要使用命令
    dos2unix file 转换下换行的字符
     
    3)查看系统的桥接情况
    [root@node-142 ~]# brctl show
    bridge name    bridge id        STP enabled    interfaces
    cloudbr0        8000.b82a72d04c2a    no        bond0
    virbr0        8000.5254006df229    yes        virbr0-nic
     
    4)最终IP显示为
    [root@node-142 ~]# ip addr
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN  
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host  
           valid_lft forever preferred_lft forever
    2: em1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
        link/ether b8:2a:72:d0:4c:2a brd ff:ff:ff:ff:ff:ff
    3: em2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
        link/ether b8:2a:72:d0:4c:2a brd ff:ff:ff:ff:ff:ff
    4: em3: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond1 state UP qlen 1000
        link/ether b8:2a:72:d0:4c:2c brd ff:ff:ff:ff:ff:ff
    5: em4: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond1 state UP qlen 1000
        link/ether b8:2a:72:d0:4c:2c brd ff:ff:ff:ff:ff:ff
    7: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN  
        link/ether 52:54:00:6d:f2:29 brd ff:ff:ff:ff:ff:ff
        inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
           valid_lft forever preferred_lft forever
    8: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 500
        link/ether 52:54:00:6d:f2:29 brd ff:ff:ff:ff:ff:ff
    9: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master cloudbr0 state UP  
        link/ether b8:2a:72:d0:4c:2a brd ff:ff:ff:ff:ff:ff
        inet6 fe80::ba2a:72ff:fed0:4c2a/64 scope link  
           valid_lft forever preferred_lft forever
    10: bond1: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP  
        link/ether b8:2a:72:d0:4c:2c brd ff:ff:ff:ff:ff:ff
        inet 10.194.19.160/24 brd 10.194.19.255 scope global bond1
           valid_lft forever preferred_lft forever
        inet6 fe80::ba2a:72ff:fed0:4c2c/64 scope link  
           valid_lft forever preferred_lft forever
    12: cloudbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP  
        link/ether b8:2a:72:d0:4c:2a brd ff:ff:ff:ff:ff:ff
        inet 172.28.101.11/24 brd 172.28.101.255 scope global cloudbr0
           valid_lft forever preferred_lft forever
        inet6 fe80::ba2a:72ff:fed0:4c2a/64 scope link  
           valid_lft forever preferred_lft forever
            
            
    5)网卡配置文件
     
    [root@mail bond]# cat ifcfg-em1
    TYPE=Ethernet
    BOOTPROTO=none
    IPV6INIT=no
    DEVICE=em1
    ONBOOT=yes
    NAME=bond0-slave
    MASTER=bond0
    SLAVE=yes
    [root@mail bond]# cat ifcfg-em2
    TYPE=Ethernet
    BOOTPROTO=none
    IPV6INIT=no
    DEVICE=em2
    ONBOOT=yes
    NAME=bond0-slave
    MASTER=bond0
    SLAVE=yes
    [root@mail bond]# cat ifcfg-em3
    TYPE=Ethernet
    BOOTPROTO=none
    IPV6INIT=no
    DEVICE=em3
    ONBOOT=yes
    NAME=bond1-slave
    MASTER=bond1
    SLAVE=yes
    [root@mail bond]# cat ifcfg-em4
    TYPE=Ethernet
    BOOTPROTO=none
    IPV6INIT=no
    DEVICE=em4
    ONBOOT=yes
    NAME=bond1-slave
    MASTER=bond1
    SLAVE=yes
    [root@mail bond]# cat ifcfg-bond0
    DEVICE=bond0
    NAME=bond0
    TYPE=Bond
    BONDING_MASTER=yes
    ONBOOT=yes
    BOOTPROTO=none
    BONDING_OPTS="mode=4 miimon=100 xmit_hash_policy=1"
    BRIDGE=cloudbr0
    IPV6INIT=no
    [root@mail bond]# cat ifcfg-bond1
    DEVICE=bond1
    NAME=bond1
    TYPE=Bond
    BONDING_MASTER=yes
    ONBOOT=yes
    BOOTPROTO=none
    BONDING_OPTS="mode=4 miimon=100 xmit_hash_policy=1"
    IPADDR=10.194.19.165
    NETMASK=255.255.255.0
    GATEWAY=10.194.19.254
    IPV6INIT=no
    [root@mail bond]# cat ifcfg-cloudbr0  
    DEVICE=cloudbr0
    NAME=cloudbr0
    TYPE=Bridge
    IPADDR=172.28.101.11
    GATEWAY=172.28.101.1
    PREFIX=24
    ONBOOT=yes
    BOOTPROTO=none
    IPV6INIT=no
     
    6)简单的介绍一下上面在加载bonding模块的时候,options里的一些参数的含义:
    miimon: 监视网络链接的频度,单位是毫秒,我们设置的是100毫秒。
    mode: bond模式,主要有以下几种,在一般的实际应用中,0和1用的比较多。
    xmit_hash_policy:
     
    xmit_hash_policy: 这个参数的重要性我认为仅次于mode参数,mode参数定义了分发模式 ,而这个参数定义了分发策略 ,文档上说这个参数用于mode2和mode4,我觉得还可以定义更为复杂的策略呢。
    1.layer2: 使用二层帧头作为计算分发出口的参数,这导致通过同一个网关的数据流将完全从一个端口发送,为了更加细化分发策略,必须使用一些三层信息,然而却增加了计算开销,天啊,一切都要权衡!  
    2.layer2+3: 在1的基础上增加了三层的ip报头信息,计算量增加了,然而负载却更加均衡了,一个个主机到主机的数据流形成并且同一个流被分发到同一个端口,根据这个思想,如果要使负载更加均衡,我们在继续增加代价的前提下可以拿到4层的信息。
    3.layer3+4: 这个还用多说吗?可以形成一个个端口到端口的流,负载更加均衡。然而且慢! 事情还没有结束,虽然策略上我们不想将同一个tcp流的传输处理并行化以避免re-order或者re-transmit,因为tcp本身就是一个串行协议,比如Intel的8257X系列网卡芯片都在尽量减少将一个tcp流的包分发到不同的cpu,同样,端口聚合的环境下,同一个tcp流也应该使用本policy使用同一个端口发送,但是不要忘记,tcp要经过ip,而ip是可能要分段的,分了段的ip数据报中直到其被重组(到达对端或者到达一个使用nat的设备)都再也不能将之划为某个tcp流了。ip是一个完全无连接的协议,它只关心按照本地的mtu进行分段而不管别的,这就导致很多时候我们使用layer3+4策略不会得到完全满意的结果。可是事情又不是那么严重,因为ip只是依照本地的mtu进行分段,而tcp是端到端的,它可以使用诸如mss以及mtu发现之类的机制配合滑动窗口机制最大限度减少ip分段,因此layer3+4策略,很OK!
     
    事实上这个选项的配置是 xmit_hash_policy=layer3+4 (目前配置为1,应该是等价于layer3+4 ,目前未确定)

  • 相关阅读:
    arcEngine classic code(2)
    VisualGraph文档
    基于.net2 的CAD 绘图控件virtualGraph(2)
    沈阳三维GIS软件开发人员
    arcEngine + .net 2 AccessViolationException
    数据库事务并发带来的问题
    理解 WPF Dispatcher
    扇入与扇出
    IComparable 与 IComparer
    同步、异步、多线程
  • 原文地址:https://www.cnblogs.com/zjd2626/p/6555198.html
Copyright © 2011-2022 走看看