1. 程式人生 > >網絡配置命令

網絡配置命令

pid 修改 網關 -o unix sha lacp brctl gen

網卡相關

    網絡接口識別並命名相關的udev 配置文件:
        /etc/udev/rules.d/70-persistent-net.rules

    查看網卡:
        dmesg |grep –i eth
                dmesg - print or control the kernel ring buffer
                dmesg [-c] [-r] [-n level] [-s bufsize]
                    
        ethtool -i eth0
                ethtool - query or control network driver and hardware settings
                     -i --driver     Queries the specified network device for associated(相聯系的) driver (驅動器)information.
                    
                
    卸載網卡驅動:
        modprobe -r e1000
                modprobe - program to add and remove modules from the Linux Kernel
                    modprobe [-v] [-V] [-C config-file] [-d <dirname> ] [-n] [-i] [-q] [-b] [-o <modname>] 
                            [ --dump-modversions ] <modname> [parameters...]
                    modprobe -r [-n] [-i] [-v] <modulename> ...
                    modprobe -l -t <dirname> [ -a <modulename> ...]
                     -r --remove    This  option causes modprobe to remove rather than insert a module.
                    
        rmmod e1000
                rmmod - simple program to remove a module from the Linux Kernel
                rmmod [ -f ]  [ -w ]  [ -s ]  [ -v ]  [ modulename ]

    裝載網卡驅動:
        modprobe e1000
            裝載網卡驅動後,要重啟網絡:service network restart 

    查詢對應設備芯片的數據信息:
        lspci |grep -i  eth
            lspci - list all PCI(外部控制器接口) devices
            lspci [options]
            lspci [<switches>]
            
    網卡名稱
        CentOS 6之前,網絡接口使用連續號碼命名:eth0 、eth1等,當增加或刪除網卡時,名稱可能會發生變化
        CentOS 7使用基於硬件,設備拓撲和設置類型命名。
        使用centos7中采用傳統網卡命名方式
            (1)編輯/etc/default/grub 配置文件
                GRUB_CMDLINE_LINUX ="rhgb quiet net.ifnames=0"
                     或:修改/boot/grub2/grub.cfg(盡量不要用)
            (2)為grub2 生成其配置文件
                grub2-mkconfig -o /etc/grub2.cfg
            (3)重啟系統
            
        
    網卡別名
        網卡主名上,可以設置靜態,同時也可以設置動態對虛擬主機有用
        將多個IP 地址綁定到一個網卡上
            eth0:1  、eth0:2、  eth0:3
        ifconfig命令:
            ifconfig eth0:0 192.168.1.100/24 up
            ifconfig eth0:0 down
        ip 命令:
            ip addr add 172.16.1.2/16 dev eth0
            ip addr add 172.16.1.1/16 dev eth0 label eth0:0
            ip addr add 172.16.1.2/16 dev eth0 label eth0:0
            ip addr del 172.16.1.1/16 dev eth0 label eth0:0
            ip addr flush dev eth0 label eth0:0
        通過配置文件來配置網卡別名
            為每個設備別名生成獨立的接口配置文件
            1。centos6上關閉NetworkManager 服務
            2。復制ifcfg-ethX 給 ifcfg-ethX:xxx
                必須使用靜態聯網
                    DEVICE=eth0:0
                    IPADDR=10.10.10.10
                    NETMASK=255.0.0.0
                    ONPARENT=yes
        註意:重啟網絡服務生效
        參考/usr/share/doc/initscripts-*/sysconfig.txt

配置命令

ifconfig

    ifconfig命令,配置接口設備和ip地址
    ifconfig - configure a network interface(臨時配置網絡接口,網絡重啟後就就會失效)
    ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
        [add <address>[/<prefixlen>]]
        [del <address>[/<prefixlen>]]
        [[-]broadcast [<address>]]  [[-]pointopoint [<address>]]
        [netmask <address>]  [dstaddr <address>]  [tunnel <address>]
        [outfill <NN>] [keepalive <NN>]
        [hw <HW> <address>]  [mtu <NN>]
        [[-]trailers]  [[-]arp]  [[-]allmulti]
        [multicast]  [[-]promisc]
        [mem_start <NN>]  [io_addr <NN>]  [irq <NN>]  [media <type>]
        [txqueuelen <NN>]
        [[-]dynamic]
        [up|down] ...
    
        -a  顯示所有接口
        -s  顯示簡短列表=netstat -i
        -v  ifconfig -v=ifconfig,顯示詳細信息,也包括錯誤情況
        interface   接口名,如eth0,ens33等網卡名
        up  激活接口
        down    關閉接口
        [-]arp  在接口上啟動或關閉arp協議
        [-]promisc  啟動或關閉接口的混雜模式
        [-]allmulti 啟動或關閉多路廣播模式
        mtu N   設置一個接口的Maximum Transfer Unit (MTU)
        dstaddr addr    為點到點鏈接的遠程ip地址,以pointopoint關鍵詞取代
        netmask addr    設置接口子網掩碼
        add addr    給接口添加ip地址
        del addr    從接口上刪除ip地址
        tunnel addr 給目標地址創建個隧道
        irp addr    通過這個設備設置中斷行
        io_addr addr    在IO空間為設備設置開始地址
        mem_start addr  為被設備使用的共享內存設置開始地址
        media type  設置設備使用的物理端口和介質類型
        [-]broadcast [addr] 若地址參數已給,為接口界面設置協議廣播地址
        [-]pointopoint [addr]   激活接口的點到點模式
        hw class address    為接口設置硬件地址
        multicast   在接口界面上設置多路廣播標誌
        address ip地址
        txqueuelen length   設置設備的傳輸隊列的長度
    示例:
        ifconfig -a :顯示所有接口
        ifconfig Interface [up|down]:啟用或禁用
        ifconfig Interface IP/netmask [up]   ;如:172.16.0.1/24
        ifconfig Interface IP netmask NETMASK [up]  ;如:255.255.0.0
        註意:
            設定的地址會立即生效,但不會永久生效。

route

    route命令,配置路由和網關
    route - show / manipulate the IP routing table,路由管理命令
    route [-nNvee] [-FC] [<AF>]           List kernel routing tables
    route [-v] [-FC] {add|del|flush} ...  Modify routing table for AF.
    route {-h|--help} [<AF>]              Detailed usage syntax for specified AF.
    route {-V|--version}                  Display version/author and exit.
        -v, --verbose               顯示詳情
        -n, --numeric               don‘t resolve names,以數字格式顯示
        -e, --extend                顯示更多信息
        -F, --fib                   顯示轉發信息 (default)
        -C, --cache                 取代fib顯示路由緩存
    
    查看:route -n
    添加:route add
        route add [-net|-host] Target [netmask|/Nm] gw  Gateway  [dev Interface]
            -net :後面跟一個網絡地址,表示網絡路由
            -host:後面跟一個主機地址,表示主機路由
            目標:192.168.1.3 ,網關:172.16.0.1
                route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
            目標:192.168.0.0 ,網關:172.16.0.1
                route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
                route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
            默認路由,網關:172.16.0.1
                route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
                route add default gw 172.16.0.1
    刪除:route del
        route del [-net|-host] Target [netmask|/Nm] gw  Gateway  [dev Interface]
            目標:192.168.1.3 ,網關:172.16.0.1
                route del -host 192.168.1.3
            目標:192.168.0.0 ,網關:172.16.0.1
                route del -net 192.168.0.0 netmask 255.255.255.0
    註意:
        所有配置會立即生效,但不會永久生效,想永久生效就要修改對應的靜態路由的配置文件。

ip

    ip 命令,配置接口設備、ip地址、路由和網關
    ip - show / manipulate(操縱)routing, devices, policy routing and tunnels(通道)
        Usage:
            ip [options] object {command |help}
            ip [ -force ] -batch filename
                object := { link | address | addrlabel | route | rule | neigh | ntable |tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |netns | l2tp | macsec | tcp_metrics | token }
                options := { -V[version] | -s[statistics] | -d[details] | -r[resolve] |-h[human-readable] | -iec |-f[family] { inet | inet6 | ipx | dnet | bridge | link } |-4 | -6 | -I | -D | -B | -0 |-l[loops] { maximum-addr-flush-attempts } |-o[oneline] | -t[timestamp] | -ts[hort] | -b[batch] [filename] |-rc[rcvbuf] [size] | -n[netns] name | -a[all] }
            
    ip [options] object {command |help}
        object:={link|addr|route} 
            link:鏈接接口,如eth0
                ip link - network device configuration
                set:設定接口屬性;
                    ip link set DEVICE
                    set DEVICE { up|down}:激活或禁用指定接口
                ifup/ifdown:啟用或禁用鏈接
                promisc{on|off}:是否支持文件混雜模式
                show:顯示接口狀態;ip link show [DEVICE],如顯示eth0網卡的硬件信息
                show  up :僅顯示處於激活狀態的接口
                
            addr:管理接口上的地址
                {add|del}:添加或刪除地址;
                    ip addr {add|del} ipaddr  dev DEVICE
                        ip addr add 172.16.200.122 dev eth0
                [label LABEL] :添加地址時指明網卡別名
                [scope {global|link|host}] :指明作用域
                            global: 全局可用
                            link: 僅鏈接可用
                            host: 本機可用
                [broadcast addr] :指明廣播地址
                    
                show :顯示該網卡的所有地址信息;
                    ip address  show - look at protocol addresses
                    dev [DEVICE]
                    [label PATTERN]
                    [primary and secondary]
                    
                 flush:清除協議地址;ip addr flush [dev ifname] 
                    ip address flush -  使用格式同show
                    dev [DEVICE]
                    [label PATTERN]
                    [primary and secondary]
                
                    例子:
                        ip addr add 172.16.100.100/16 dev eth0 label eth0:0
                        ip addr del 172.16.100.100/16 dev eth0 label eth0:0
                        ip addr flush dev eth0 label eth0:0
            route:管理路由
                ip route - routing table management
                lsit|show:顯示路由
                add:添加路由;
                    ip  route  add  Target   via   Gateway   dev   Interface   src   Source_ip
                    設置默認網關:ip route add defalut via 172.18.0.1
                        ip route add 192.168.0.0/24 via 172.16.0.1
                        ip route add 192.168.1.13 via 172.16.0.1
                        
                del:刪除路由;
                    ip route del Target
                    ip route del 192.168.0.0/24
                        TARGET:
                            主機路由:IP
                            網絡路由:NETWORK/MASK
                flush:清空路由表
                    ip route flush [dev IFACE] [via PREFIX]
                    ip route flush dev eth0

netstat

    netstat命令,顯示網絡連接、路由表、接口統計數據等
    netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
    netstat [-vWeenNcCF] [<Af>] -r         
    netstat {-V|--version|-h|--help}
    netstat [-vWnNcaeol] [<Socket> ...]
    netstat { [-vWeenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]
        -r, --route 顯示路由表
        -I, --interfaces=<Iface>    顯示接口表
        -i, --interfaces            顯示接口表
        -g, --groups                顯示多播組成員
        -s, --statistics            顯示網絡狀態例如snmp
        -M, --masquerade            顯示偽裝的連接
        -v, --verbose               詳情
        -W, --wide                  不簡短顯示ip地址
        -n, --numeric               不解析名字
        --numeric-hosts             不解析主機名
        --numeric-ports             不解析端口名
        --numeric-users             不解析用戶名
        -N, --symbolic              解析硬件名
        -e, --extend                顯示更多信息
        -p, --programs              顯示套接字的pid或項目名
        -o, --timers                顯示定時器
        -c, --continuous            監聽
        -l, --listening             顯示監聽服務套接字
        -a, --all                   默認顯示所有連接的套接字
        -F, --fib                   默認顯示轉發信息
        -C, --cache                 取代fib顯示路由緩存
        -Z, --context               顯示套接字的selinux內容
    
    常用組合:
        netstat -tan, -uan, -tnl, -unl,-tunl,-tnlp
        顯示網絡鏈接 :   
            netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
        顯示路由表:
            netstat {--route|-r} [--numeric|-n]
        顯示接口統計數據:
            netstat {--interfaces|-I|-i} [interface] 
            netstat --interfaces=eth0 == netstat -i  eth0 == netstat -I=eth0  ==  ifconfig -s eth0

ss

    ss命令,同netstat差不多的功能,但比netstat強
    netstat 通過遍歷proc 來獲取socket 信息。
    ss 使用netlink 與內核tcp_diag模塊通信獲取socket 信息。
    ss - another utility to investigate sockets
    ss [ OPTIONS ] [ FILTER ]
        -n, --numeric           不解析服務名
        -r, --resolve           解析主機名
        -a, --all               顯示所有套接字
        -l, --listening         顯示監控套接字
        -o, --options           顯示計時器信息
        -e, --extended          顯示詳細信息
        -m, --memory            顯示套接字內存使用率
        -p, --processes         顯示進程使用的套接字
        -i, --info              顯示內容tcp信息
        -s, --summary           顯示套接字使用情況
        -b, --bpf               顯示bpf過濾器套接字信息
        -Z, --context           顯示進程selinux安全內容
        -z, --contexts          顯示進程和套接字selinux安全內容
        -N, --net               切換到指定的網絡空間名
        -4, --ipv4              僅顯示ipv4的套接字
        -6, --ipv6              僅顯示ipv6的套接字
        -0, --packet            顯示包套接字
        -t, --tcp               僅顯示tcp套接字
        -u, --udp               僅顯示udp套接字
        -d, --dccp              僅顯示dccp套接字
        -w, --raw               僅顯示raw套接字
        -x, --unix              僅顯示unix於套接字
        -f, --family=FAMILY     display sockets of type FAMILY
        -D, --diag=FILE         轉存tcp套接字原始信息到文件
        -F, --filter=FILE       從文件中讀取過濾器信息
        -A, --query=QUERY, --socket=QUERY
            QUERY := {all|inet|tcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|packet|netlink}[,QUERY]
        FILTER := [ state STATE-FILTER ] [ EXPRESSION ]
        STATE-FILTER := {all|connected|synchronized|bucket|big|TCP-STATES}
        TCP-STATES := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|closed|close-wait|last-ack|listen|closing}
        connected := {established|syn-sent|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
        synchronized := {established|syn-recv|fin-wait-{1,2}|time-wait|close-wait|last-ack|closing}
        bucket := {syn-recv|time-wait}
        big := {established|syn-sent|fin-wait-{1,2}|closed|close-wait|last-ack|listen|closing}
    常用組合:
        -tan, -tanl, -tanlp, -uan,-tunl
    常見用法
        ss -l  顯示本地打開的所有端口
        ss -pl  顯示每個進程具體打開的socket
        ss -ta  顯示所有tcp socket
        ss -ua 顯示所有的UDP Socekt
        ss -o state established ‘( dport = :ssh or sport = :ssh)‘  顯示所有已建立的ssh 連接
        ss -o state established ‘( dport = :http or sport =:http )‘  顯示所有已建立的HTTP 連接
        ss -s  列出當前socket 詳細信息

nmcli

    nmcli - command-line tool for controlling NetworkManager,控制網絡管理的命令行工具
    nmcli [OPTIONS] OBJECT { COMMAND | help }
    nmcli [OPTIONS...] {help | general | networking | radio | connection | device | agent |monitor} [COMMAND] [ARGUMENTS...]
    OPTIONS
        -t[erse]                                    簡潔輸出
        -p[retty]                                   漂亮輸出
        -m[ode] tabular|multiline                   輸出模式
        -c[olors] auto|yes|no                       是否在輸出上使用顏色
        -f[ields] <field1,field2,...>|all|common    指定輸出區域
        -e[scape] yes|no                            escape columns separators in values
        -a[sk]                                      ask for missing parameters
        -s[how-secrets]                             允許顯示密碼
        -w[ait] <seconds>                           設置等待時間
    OBJECT
        g[eneral]           網絡管理的一般狀態和操作
            nmcli general { COMMAND | help }
            COMMAND := { status | hostname | permissions | logging }
        n[etworking]        完全網絡控制
            nmcli networking { COMMAND | help }
            COMMAND := { [ on | off | connectivity ] }
        r[adio]             網絡管理的無線切換
            nmcli radio { COMMAND | help }
            COMMAND := { all | wifi | wwan [ on | off ]
        c[onnection]        網絡管理的連接
            nmcli connection { COMMAND | help }
            COMMAND := { show | up | down | add | modify | clone | edit | delete | monitor | reload | load | import | export }
        d[evice]            設備的網路管理
            nmcli device { COMMAND | help }
            COMMAND := { status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp }
        a[gent]             代理
            nmcli agent { COMMAND | help }
            COMMAND := { secret | polkit | all }
        m[onitor]           監控網絡管理更改
    
    
    使用nmcli配置網絡
        註意:
            盡量使用tab鍵,會列出你所需要的選項。
        修改IP 地址等屬性:
            nmcli connection modify Interface  [+|-]  setting.property value
        NeworkManager 是管理和監控網絡設置的守護進程。
        設備即網絡接口,連接是對網絡接口的配置。一個網絡接口可有多個連接配置,但同時只有一個連接 配置生效
        顯示所有包括不活動連接
            nmcli con show
        顯示所有活動連接
            nmcli con show --active
        顯示網絡連接配置
            nmcli con show "System eth0“
        顯示設備狀態
            nmcli dev status
        顯示網絡接口屬性
            nmcli dev show eth0
        創建新連接default ,IP自動通過dhcp 獲取
            nmcli con add con-name default type Ethernet ifname eth0
        刪除連接
            nmcli con del default
        創建新連接static  ,指定靜態IP ,不自動連接
            nmcti con add con-name static ifname eth0
            autoconnect no type Ethernet ip4 172.25.X.10/24 gw4  172.25.X.254
        啟用static 連接配置
            nmcli con up static
        啟用default 連接配置
            nmcli con up default
        查看幫助
            nmcli con add help
        修改連接設置
            nmcli con mod “static” connection.autoconnect no
            nmcli con mod “static” ipv4.dns 172.25.X.254
            nmcli con mod “static” +ipv4.dns 8.8.8.8
            nmcli con mod “static” -ipv4.dns 8.8.8.8
            nmcli con mod “static” ipv4.addresses “172.25.X.10/2472.25.X.254”
            nmcli con mod “static” +ipv4.addresses 10.10.10.10/16
        DNS 設置存放在/etc/resolv.conf 文件中PEERDNS=no  表示當IP通過dhcp 自動獲取時,dns 仍是 手動設置,不自動獲取。
        等價於下面命令:
            nmcli con mod “system eth0” ipv4.ignore-auto-dns yes
        
        修改連接配置後,需要重新加載配置
            nmcli con reload
            nmcli con down “system eth0”  可被自動激活
            nmcli con up “system eth0”
            nmcli dev dis eth0  禁用網卡,訪止被自動激活
        圖形工具
            nm-connection-editor
        字符工具
            nmtui
            nmtui-connect
            nmtui-edit
            nmtui-hostname
        
        nmcli 實現bonding
            添加bonding 接口
                nmcli con add type bond con-name mybond0 ifname
                mybond0 mode active-backup
            添加從屬接口
                nmcli con add type bond-slave ifname ens7 master mybond0
                nmcli con add type bond-slave ifname ens3 master mybond0
                註:如無為從屬接口提供連接名,則該名稱是接口名稱加類型構成
            要啟動綁定,則必須首先啟動從屬接口
                nmcli con up bond-slave-eth0
                nmcli con up bond-slave-eth1
            啟動綁定
                nmcli con up mybond0
        網絡組Network Teaming
            網絡組:是將多個網卡聚合在一起方法,從而實現冗錯和提高吞吐量
            網絡組不同於舊版中bonding技術,提供更好的性能和擴展性
            網絡組由內核驅動和teamd 守護進程實現.
            多種方式runner
                broadcast
                roundrobin
                activebackup
                loadbalance
                lacp (implements the 802.3ad Link Aggregation ControlProtocol)
            啟動網絡組接口不會自動啟動網絡組中的port 接口
            啟動網絡組接口中的port 接口總會自動啟動網絡組接口
            禁用網絡組接口會自動禁用網絡組中的port 接口
            沒有port 接口的網絡組接口可以啟動靜態IP 連接
            啟用DHCP 連接時,沒有port 接口的網絡組會等待port接口的加入
            創建網絡組
                ip link
                nmcli con add type team con-name team0 ifname team0 config ‘{"runner": {"name": "activebackup"}}‘
                nmcli con mod team0 ipv4.addresses‘192.168.0.100/24‘
                nmcli con mod team0 ipv4.method manual
                nmcli con add con-name team0-port1 type team-slave ifname eth1 master team0
                nmcli con add con-name team0-port2 type team-slave ifname eth2 master team0
                teamdctl team0 state
                ping -I team0 192.168.0.254
                nmcli dev dis eno1
                teamdctl team0 state
                nmcli con up team0-port1
                nmcli dev dis eno2
                teamdctl team0 state
                nmcli con up team0-port2
                teamdctl team0 state
            刪除網絡組
                nmcli connection down team0
                teamdctl team0 state
                nmcli connection show
                nmcli connectioni delete team0-eth0
                nmcli connectioni delete team0-eth1
                nmcli connection show
            
        創建網絡接口
            nmcli con add type team con-name CNAME ifname INAME [config JSON]
                CNAME  連接名,INAME  接口名
                JSON  指定runner 方式
                格式:‘{"runner": {"name": "METHOD"}}‘
                METHOD  可以是broadcast, roundrobin,
                    activebackup, loadbalance, lacp
        
        創建port接口
            nmcli con add type team-slave con-name CNAME ifname INAME master TEAM
                CNAME  連接名
                INAME  網絡 接口名
                TEAM  網絡組 接口名
            連接名若不指定,默認為team-slave-IFACE
            nmcli dev dis INAME
            nmcli con up CNAME
                INAME 名 設備名 CNAME  網絡組接口名或port 接口

bonding

    bonding是一種網絡接口的配置,都知道給兩塊網卡設置同一個ip地址是不可能的,那麽若確實想設置一個ip該怎麽辦?這就需要用到bonding配置。
    bonding就是將多塊網卡綁定同一ip地址來對外提供服務器,從而實現高可用或負載均衡。
    通過bonding虛擬一塊網卡對外提供連接,物理網卡被修改為相同的MAC地址。
    bonding的工作模式
        Mode 0 (balance-rr),輪轉(Round-robin )策略:
            從頭到尾順序的在每一個slave接口上面發送數據包。
            本模式提供負載均衡和容錯的能力
        Mode 1 (active-backup),活動- 備份(主備)策略:
            只有一個slave被激活,當且僅當活動的slave 接口失敗時才會激活其他slave。
            為了避免交換機發生混亂此時綁定的MAC 地址只有一個外部端口上可見
        Mode 3 (broadcast),廣播策略:
            在所有的slave 接口上傳送所有的報文,提供容錯能力
        active-backup 、balance-tlb 和 balance-alb 模式不需要交換機的任何特殊配置。
        其他綁定模式 需要配置交換機以便整合鏈接 。
            如: Cisco 式 交換機需要在模式 0 、2 和 和 3  中使用EtherChannel ,但在模式4中需要 LACP和 和 EtherChannel
        
    Bonding 配置
        創建bonding 設備的配置文件
            /etc/sysconfig/network-scripts/ifcfg-bond0
                DEVICE=bond0
                BOOTPROTO=none
                BONDING_OPTS= “miimon=100 mode=0”
            /etc/sysconfig/network-scripts/ifcfg-eth0
                DEVICE=eth0
                BOOTPROTO=none
                MASTER=bond0
                SLAVE=yes
                USERCTL=no
        查看bond0 狀態:/proc/net/bonding/bond0
        
        miimon是用來進行鏈路監測的,如果miimon=100 ,那麽系統每100ms  監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路
        
        刪除bond0
            ifconfig bond0 down
            rmmod bonding
        
        詳細幫助:
            /usr/share/doc/kernel-doc-version/Documentation/networking/bonding.txt
            https://www.kernel.org/doc/Documentation/networking/bonding.txt

brctl

技術分享圖片

    網橋
    橋接:
        把一臺機器上的若幹個網絡接口“連接”起來。其結果是,其中一個網口收到的報文會被復制給其他網口並發送出去。以使得網口之間的報文能夠互相轉發。網橋就是這樣一個設備,它有若幹個網口,並且這些網口是橋接起來的。與網橋相連的主機就能通過交換機的報文轉發而互相通信。
        主機A 發送的報文被送到交換機S1 的eth0 口,由於eth0與eth1 、eth2 橋接在一起,故而報文被復制到eth1 和eth2 ,並且發送出去,然後被主機B 和交換機S2 接收到。而S2 又會將報文轉發給主機C 、D。 

        
    配置實現網橋
        創建網橋
            brctl addbr br0
        查看網橋
            cat /etc/sysconfig/network-scripts/ifcfg-br0
            brctl show
        刪除網橋 brctl delbr br0
        刪除網橋中網卡 brctl delif eth0
        註意:NetworkManager只支持以太網接口接口連接到網橋,不支持聚合接口
        
    brctl命令
        brctl - ethernet bridge administration
             brctl is used to set up, maintain, and inspect the ethernet bridge configuration in the linux kernel.
        brctl [command]
            addbr       <bridge>            添加網橋
            delbr       <bridge>            刪除網橋
            addif       <bridge> <device>       添加接口到網橋
            delif       <bridge> <device>       從網橋上刪除接口
            hairpin     <bridge> <port> {on|off}        打開或關閉 hairpin
            setageing   <bridge> <time>         設置老化時間
            setbridgeprio   <bridge> <prio>         設置網橋優先級
            setfd       <bridge> <time>         設置橋前延遲
            sethello    <bridge> <time>         設置 hello 時間
            setmaxage   <bridge> <time>         設置最大消息期限
            setpathcost <bridge> <port> <cost>      設置路徑成本
            setportprio <bridge> <port> <prio>      設置端口優先級
            show        [ <bridge> ]            顯示網橋列表
            showmacs    <bridge>            顯示mac 地址列表
            showstp     <bridge>            顯示網橋stp信息
            stp         <bridge> {on|off}       開啟或關閉

網絡配置命令