网络管理之网络配置与网络组

网络属性配置

回顾:

TCP/IP协议栈:物理层,数据链路层,网络层,传输层,应用层,
    链路数据层:以太网帧
    网络层:IP报文 
    传输层:TCP,UDP
    应用层:Http,https,ftp,ldap
以太网帧:MTU 最大传输单元 (1500)

概述:

1.将Linux加入到网络中,一般包括如下内容:

主机名
IP/mask
路由:默认网关
DNS服务器:
    主DNS服务器
    次DNS服务器
    第三DNS服务器

2.网络配置方式:

静态指定:
    ifcfg: 
        ifconfig:配置IP
        route:路由
        netstat:状态及统计数据查看
    ip: 
        object 
             link:地址和掩码
             addr:接口
             route:路由 
        ss:状态及统计数据查看
        tc:
    system-config-network-tui (setup)

    CentOS 7新增工具: 
        nmcli:命令行工具
        nmtui:text Windows工具
    注意:
        (1)DNS服务器指定
            配置文件:/etc/resolv.conf
        (2)主机名
            hostname命令 临时有效
            centos6:/etc/sysconfig/network
            centos7:/etc/hostname
            centos7    :hostnameectl        
配置文件:    
    RedHet及相关发行版
        /etdc/sysconfig/network-scripts/ifcfg-NETCARD_name
动态分配:依赖于本地网络中的DHCP服务
    DHCP: Dynamic Host Configuration Protocol

注意:命令指定能使网络配置临时有效,但不永久生效,只是送到送行中的内核执行,关机消失
     修改配置文件不能马上生效,但是永久生效的,可以重启系统或运行命令重读配置文件.

3.网络接口命名方式:

传统命名:
    以太网:ethX
    ppp网络:pppX

基于BIOS支持启用biosdevname软件(DELL公司)
内置网卡: em1,em2
pci卡: pYpX Y: slot ,X:port

可预测命名方案:
    支持多种不同的命名机制:
     Firware,拓扑结构
      (1),如果Firware或Biso为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如eno1,eno2...
      (2),如果Firware或Biso为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1,ens2...
      (3)如果硬件接口的物理位置信息可用,则根据其信息命名,如enp2so....
      (4)如果用户显式定义,也可根据MAC地址命名,例如enx121612e10....
    注意:上述均不可用,则仍然使用传统方式命名:

命名格式的组成:
   en:ethernet 以太网
   wl:wlan   无线局域网
   ww:wwan      无线广域网

   名称的类型:
     o<index>:集成设备的设备索引号
     s<slot>:扩展槽的索引号
     x<MAC>:基于MAC地址的命名
     p<bus>s<lost>:基于总线及槽的拓扑结构进行命名

网卡命名方式

网卡设备的命名过程:
第一步:
    udev, 辅助工具程序/lib/udev/rename_device,
    /usr/lib/udev/rules.d/60-net.rules
第二步:
    biosdevname 会根据/usr/lib/udev/rules.d/71-
    biosdevname.rules
第三步:
    通过检测网络接口设备,根据
    /usr/lib/udev/rules.d/75-net-description
    ID_NET_NAME_ONBOARD
    ID_NET_NAME_SLOT
    ID_NET_NAME_PATH

改用传统命名方式
(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) 重启系统

Centos7 网络属性配置

rhel6之前,网络接口使用连续号码命名: eth0、 eth1等,当增加或删除网卡时,名称可能会发生变化
rhel7使用基于硬件,设备拓扑和设置类型命名:
(1) 网卡命名机制
    systemd对网络设备的命名方式
(a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1
(b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1
(c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0
(d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56
(e) 上述均不可用时,则使用传统命名机制

网卡信息注释:

Centos5-6:
eth0  Link encap:Ethernet  HWaddr(硬件地址) 52:54:00:C6:91:A4  
      inet addr:10.141.8.137  Bcast:10.141.63.255  Mask:255.255.192.0
      UP BROADCAST(广播) RUNNING(运行) MULTICAST(组播)  MTU:1500(最大传输单元)  Metric:1
      RX packets:1255795 errors:0 dropped:0 overruns:0 frame:0
      TX packets:952955 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen((传输队列长度)):1000 
      RX bytes:130858806 (124.7 MiB)  TX bytes:169199814 (161.3 MiB)

Centos7:
eno16777736: flags(标志位)=4163<UP(启动状态),BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 172.18.19.219  netmask 255.255.255.0  broadcast 172.18.19.255(广播地址)
    inet6 fe80::20c:29ff:fe42:6eb9  prefixlen 64  scopeid 0x20<link>
    ether(以太网地址) 00:0c:29:42:6e:b9  txqueuelen(传输队列长度) 1000  (Ethernet)
    RX packets(接收报文数量) 43611  bytes 56377913 (53.7 MiB)
    RX errors(错误个数) 0  dropped(丢包数量) 0  overruns(溢出) 0  frame(帧) 0
    TX packets(传出报文数量) 13910  bytes 1806137 (1.7 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions(冲突报文个数) 0

配置网络命令

配置主机名

hostname centos6

查看:hostname
配置:hostname HOSTNAME    临时有效,重启无效

hostnamectl

centos7专用

hostname status :显示当前主机名信息
hostname set-hostname:设定主机名,永久有效
配置DNS服务器指向
配置文件:/etc/resolv.conf
    nameserver DNS_server_ip
如何测试:
    (1).连网,可ping外网
        dig -t A www.baidu.com
    (2).无连网.
        修改/etc/hosts文件 ,通过ping
ifcfg命令家族:ifconfig,route,netstat

ifocnfig 接口及地址查看和管理

使用用法:

    1.ifconfig [-v] [-a] [-s] [interface]
        ifconfig默认命令,查看运行网卡信息,可指定特定网卡
        ifconfig -a:显示所有网卡信息
        ifcondif -S 显示接口信息

    2.ifconfig [-v] interface [aftype] options | address ...
        #ifconfig IFACE IP/MASK [up|down] 启动某网卡
                ifocnfig eth1 192.168.10.100/24 up
        #ifconfig IFACE IP netmask NETNASK 更改某网卡的ip及子网掩码(必须完整格式)
                ifocnfig eth1 192.168.100.101 netmask 255.255.255.0
        #ifconfig interface options|address

    3.管理IPV6地址
        ifconfig add addr/prefixlen
        ifcondig del addr/prefixlen            

注意:立即送往内核中的tcp/ip协议栈,并生效;

route 路由查看及管理

路由条目类型:
    主机路由:目标地址为单个IP
    网路路由:目标地址为IP网络
    默认路由:目标为任意网络: 0.0.0.0

使用方法:
    route [-CFvnee]
    route  [-v]  [-A  family]  add  [-net|-host]  target  [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]
    route  [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]
    route  [-V] [--version] [-h] [--help]

    查看:
     route -n

     Destination(目的网络地址 ) Gateway(下一跳地址) Genmask(目标网络的掩码)  Flags(标志)  Metric(度量值) Ref Use Iface(经过本地的网卡接口)
     10.141.0.0        0.0.0.0      55.255.192.0                     U       0         0 0      eth0

    添加:
    route  add  [-net|-host]  target  [netmask Nm] [gw(下一跳地址) Gw] [[dev] If]

    例:
    1.[root@wen-7 ~]# route add default gw 172.18.19.1  添加默认网关
     [root@wen-7 ~]# route -n
     Kernel IP routing table
      Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
      0.0.0.0         172.18.19.1     0.0.0.0         UG    0      0        0 eno16777736
        2.[root@wen-7 ~]# route add -net 10.0.0.0/8 gw 172.18.19.1 
     root@wen-7 ~]# route -n
     Kernel IP routing table
     Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
     0.0.0.0         172.18.19.1     0.0.0.0         UG    100    0        0 eno16777736
     10.0.0.0        172.18.19.1     255.0.0.0       UG    0      0        0 eno16777736

    删除:
     route   del [-net|-host] target [gw Gw] [netmask Nm]  [[dev] If]

     例: 
      [root@wen-7 ~]# route del -net 10.0.0.0/8 gw [下一跳地址]
      [root@wen-7 ~]# route del default 删除默认路由

      [root@wen-7 ~]# route -n
      Kernel IP routing table
      Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
      0.0.0.0         172.18.19.1     0.0.0.0         UG    100    0        0 eno16777736
      172.18.19.0     0.0.0.0         255.255.255.0   U     100    0        0 eno16777736
      192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
      [root@wen-7 ~]# route del default
      [root@wen-7 ~]# route -n
      Kernel IP routing table
      Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
      172.18.19.0     0.0.0.0         255.255.255.0   U     100    0        0 eno16777736
      192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

        注意:相同网段,不同掩码,要多条删除

配置动态路由
    通过守护进程获取动态路由
    安装quagga包,支持多种格式的RIP、 OSPF和BGP
    命令vtysh配置,思科命令

netstat命令:显示状态信息

Print network connections, routing tables, interface statistics, masquerade connections, and multi cast memberships 
    显示网络连接,路由表,接口统计数据,地址伪装连接,多波成员关系

使用方法:
    (1)显示路由信息    
        netstat -rn 
            -r:显示内核路由表
            -n:数字格式

        [root@wen-7 ~]# netstat -rn
        Kernel IP routing table
        Destination Gateway Genmask Flags   MSS Window  irtt Iface
        0.0.0.0 172.18.19.1 0.0.0.0 UG0 0  0 eno16777736
        172.18.19.0 0.0.0.0 255.255.255.0   U 0 0  0 eno16777736
        192.168.122.0   0.0.0.0 255.255.255.0   U 0 0  0 virbr0

    (2)显示网路连接
        netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
        选项:
            -t: tcp协议相关连接,连接均有其状态;FSM(Finate state Machine)
            -u: udp协议相关
            -w: raw socket相关 裸套接字
            -l: 处于监听状态,等待别人连接;不加的l话,正在建立的连接或正在通信的状态
            -a: 所有状态
            -n: 以数字显示IP和端口;
            -e:扩展格式
            -p: 显示相关进程及PID
        常用选项:
            -tan -uan -tnl -unl -tunlp 

        [root@wen-7 ~]# netstat -tan
        Active Internet connections (servers and established)
        Proto Recv-Q Send-Q Local Address   Foreign Address State  
        tcp0  0 192.168.122.1:530.0.0.0:*   LISTEN 
        tcp0  0 0.0.0.0:22  0.0.0.0:*   LISTEN 
        tcp0  0 127.0.0.1:631   0.0.0.0:*   LISTEN 
        tcp0 52 172.18.19.219:22172.18.19.1:49819   ESTABLISHED
        tcp0  0 172.18.19.219:22172.18.19.1:49720   ESTABLISHED
        tcp6   0  0 :::22   :::*LISTEN 
        tcp6   0  0 ::1:631 :::*LISTEN 
        [root@wen-7 ~]# netstat -uan
        Active Internet connections (servers and established)
        Proto Recv-Q Send-Q Local Address   Foreign Address State  
        udp0  0 0.0.0.0:53530.0.0.0:*  
        udp0  0 0.0.0.0:49458   0.0.0.0:*  
        udp0  0 127.0.0.1:323   0.0.0.0:*  
        udp0  0 192.168.122.1:530.0.0.0:*  
        udp0  0 0.0.0.0:67  0.0.0.0:*  
        udp6   0  0 ::1:323 :::*   
        [root@wen-7 ~]# netstat -tnl
        Active Internet connections (only servers)
        Proto Recv-Q Send-Q Local Address   Foreign Address State  
        tcp0  0 192.168.122.1:530.0.0.0:*   LISTEN 
        tcp0  0 0.0.0.0:22  0.0.0.0:*   LISTEN 
        tcp0  0 127.0.0.1:631   0.0.0.0:*   LISTEN 
        tcp6   0  0 :::22   :::*LISTEN 
        tcp6   0  0 ::1:631 :::*LISTEN 
        [root@wen-7 ~]# netstat -unl
        Active Internet connections (only servers)
        Proto Recv-Q Send-Q Local Address   Foreign Address State  
        udp0  0 0.0.0.0:53530.0.0.0:*  
        udp0  0 0.0.0.0:49458   0.0.0.0:*  
        udp0  0 127.0.0.1:323   0.0.0.0:*  
        udp0  0 192.168.122.1:530.0.0.0:*  
        udp0  0 0.0.0.0:67  0.0.0.0:*  
        udp6   0  0 ::1:323 :::*   



    (3)显示接口统计数据:
        netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
            # netstat -i  所有接口
            # netstat -I<IFACE>  显示指定网卡的信息
            # netstat -IIFACE
            配合watch -n 1 查看实时动态信息

ifup 启用某接口

 该命令是读取网卡配置文件识别的

ifup <iface>
    例:

ifdown 禁用某接口

ifdown <iface>
    例:
IP命令家族:ip,ss tc
由程序包 iproute 安装

ip命令

name
   ip - show / manipulate routing, devices, policy routing and tunnels
            查看及管理 路由,设备,策略路由,隧道
使用方法
   ip [ OPTIONS ] OBJECT { COMMAND | help }

   ip [ -force ] -batch filename

   OBJECT := { link | addr | route|netns }   可简写,各子命令也可简写

   OPTIONS := { -V[ersion] | -s[tatistics] | -r[esolve] | -f[amily] { inet | inet6 | ipx | dnet | link } |
           -o[neline] | -n[etns] name }

常用命令:可简写 
    ip link 网络设备配置
     help 显示简要使用帮助
     (show|list) 显示设备属性
     set     修改设备属性
      dev name  {dev关键字 可省略,直接写设备名}
      up|down :关闭或开启设备
      multicast on|off  开启|关闭组播功能
      name NAME:重命名网卡名称
      txqlen #:设置队列长度
      mtu NUMber:设置最大传输单元,默认1500
      netns PID:ns为namespace,用于实现将接口移动到指定的网络名称空间
          [root@wen-7 ~]# ip netns help
          Usage: ip netns list
           ip netns add NAME
           ip netns set NAME NETNSID
           ip [-all] netns delete [NAME]
           ip netns identify [PID]
           ip netns pids NAME
           ip [-all] netns exec [NAME] cmd ...
           ip netns monitor
           ip netns list-id
          [root@wen-7 ~]# ip netns add mynet
          [root@wen-7 ~]# ip link show
           1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
               link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
           2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
                        link/ether 00:0c:29:42:6e:b9 brd ff:ff:ff:ff:ff:ff
           3: eno33554984: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
                        link/ether 00:0c:29:42:6e:c3 brd ff:ff:ff:ff:ff:ff
           4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT 
                        link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
           5: virbr0-nic: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 500
                        link/ether 52:54:00:19:66:c2 brd ff:ff:ff:ff:ff:ff
          [root@wen-7 ~]# ip link set eno33554984 netns mynet
          [root@wen-7 ~]# ip link show
           1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
               link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
           2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
               link/ether 00:0c:29:42:6e:b9 brd ff:ff:ff:ff:ff:ff
           4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT 
               link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
           5: virbr0-nic: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 500
                  link/ether 52:54:00:19:66:c2 brd ff:ff:ff:ff:ff:ff
           [root@wen-7 ~]# ip netns  show
             mynet
           [root@wen-7 ~]# ip netns exec mynet ip link show
           1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT 
              link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
           3: eno33554984: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
               link/ether 00:0c:29:42:6e:c3 brd ff:ff:ff:ff:ff:ff
           [root@wen-7 ~]# ip netns del mynet
           [root@wen-7 ~]# ip link show
           1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT 
               link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
           2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
               link/ether 00:0c:29:42:6e:b9 brd ff:ff:ff:ff:ff:ff
           3: eno33554984: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
               link/ether 00:0c:29:42:6e:c3 brd ff:ff:ff:ff:ff:ff
            4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT 
               link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
           5: virbr0-nic: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 500
               link/ether 52:54:00:19:66:c2 brd ff:ff:ff:ff:ff:ff
    ip netns 网络命名空间的管理
        help 显示简要使用帮助 
        add 创建指定netns
        del    删除指定的netns
        list 列出所有的Netns
        exec name COMMADN  在指定netns中执行 命名 ip的命令

    ip addr 实现网卡的协议地址管理
        ip addr add 增
            add IFADDR(地址) dev IFACE(网卡)
                label IFACE:#:为额外添加的地址指明接口别名.方便ifconfig识别新添加的地址    
                    [root@wen-7 ~]# ip addr add 10.1.1.10/8  dev eno33554984 label eno33554984:1 
                [broadcast {ADDRESS}]:广播地址 可省略,根据ip行尾NETMASK自动计算得到;
                [scope {SCOPE VALUE}]:
                    global:全局可用
                    link:接口可用
                    host:仅本机可用                    
        ip addr del 删
            ip addr delete IFADDR dev IFACE
        ip addr show 查看 或省略show 
            [IFACE]:指定特定的网卡
        ip addr flush 清空某个网卡的所有地址
            ip addr flush dev IFACE

    ip route 管理路由表    
        ip route add
             ip route add TYPE PREFIX via GW [dev IFACE][src SOURCE_IP]
        ip route change
             TYPE PREFIX via GW [dev IFACE][src SOURCE_IP]
        ip route replace
          TYPE PREFIX via GW [dev IFACE][src SOURCE_IP]

          TYPE PREFIX:到达的目标地址    
          dev name:
          via ADDRESS:指定下一跳
          src ADDRESS:原地址

          示例:
          ip route add 172.16.0.0/24 via 10.1.0.1 dev eth1 src 10.0.20.100
          ip route add default via 172.16.0.1            


        ip route delete
           ip routh del TYPE PRIFIX
            例:
             [root@wen-7 ~]# ip route del 10.0.0.0/8

        ip route show 显示route表
        ip route flush 清空所有路由表
           dev IFACE:指定特定的网卡    
           TYPE PRIFIX:指定网段地址和掩码,精确清空地址范围内的路由条目
        ip routh get :获取某条路由条目
           ip route get TYPERPIFIX        
            例:
             [root@wen-7 ~]# ip route get 172.16.1.0
             broadcast 172.16.1.0 dev eno33554984  src 172.16.1.12 cache <local,brd>

SS 命令

ss - another utility to investigate sockets
        另一个显示sockets的工具

SYNOPSIS
 ss [options] [ FILTER ]
   options:
     -t: tcp协议相关连接,连接均有其状态;FSM(Finate state Machine)
     -u: udp协议相关
      -w: raw socket相关
     -l: 处于监听状态,等待别人连接;不加的l话,正在建立的连接或正在通信的状态
     -a: 所有状态
     -n: 以数字显示IP和端口;
     -e:扩展格式
     -p:     显示相关进程及PID
      -m:内存用量
      -o:计时器信息
   FILTER:=[state TCP-STATE][EXPRESSION] 过滤器
    tcp-STATE:
       LISTEN:监听
       ESTABLISEHD:建立的连接
        FIN_WAIT1:
        FIN_WAIT2:
       SYN-SENT:
       SYN_RECV:
       CLOSED:
    EXPRESSION:
       dport=
       sport=
    实例:( dport = 22 or sport = :22 )
        state ESTABLISHED 
      [root@wen-7 ~]# ss -tan state ESTABLISHED
      Recv-Q Send-Q                    Local Address:Port           Peer Address:Port              
      0      52                        172.18.19.219:22          172.18.19.1:49819              
      0      0                         172.18.19.219:22
      [root@wen-7 ~]# ss -tan '( dport = :22 or sport = :22 )'
      State       Recv-Q Send-Q               Local Address:Port       Peer Address:Port              
      LISTEN      0      128                              *:22      *:*                  
      ESTAB       0      52                   172.18.19.219:22         172.18.19.1:49819              
      ESTAB       0      0                    172.18.19.219:22         172.18.19.1:49720              
       LISTEN      0      128                 :::22      

常见用法:        
    ss -l 显示本地打开的所有端口
    ss -pl 显示每个进程具体打开的socket
    ss -t -a 显示所有tcp socket
    ss -u -a 显示所有的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详细信息

配置文件

IP/NETMASK/GW/DNS
    /etc/sysconfig/network-scripts/ifcfg-IFACE
        IFACE:接口名称
route:
    /etc/sysconfig/network-scripts/route-IFACE


配置文件需要通过大量的参数来定义接口的属性;其可通过vim等文本编辑命令直接修改,也可使用相关窗口命名.
    centos6:setup (system-config-network)
    centos7:nmtui

/etc/sysconfig/network-scripts/ifcfg-IFACE文件详细介绍
    DEVICE:此配置文件应用到的设备名(同IFACE相同)
    ONBOOT:在系统引导时是否激活此设备
    BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
    NM_CONTROLLED: NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“ no”
    TYPE:接口类型;常见有的Ethernet, Bridge
    UUID:设备的惟一标识
    IPADDR:指明IP地址
    NETMASK:子网掩码
    GATEWAY: 默认网关
    PREFIX:掩码长度(可代替NETWASK)
    IPV6INIT:是否初始化IPV6
    HWADDR:对应的设备的MAC地址
    DNS1:第一个DNS服务器指向
    DNS2:第二个DNS服务器指向
    DOMAIN:DNS搜索域
    USERCTL:普通用户是否可控制此设备,一般为no
    PEERDNS:如果BOOTPROTO的值为“ dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中,默认为yes,允许.

修改网络配置文件后,不会立刻修改配置.需要网络服务重启

网路服务管理:
  centos6: 
     service 命令
       service 服务名称 {start|status|stop|restart} 
  centos7:
    systemctl 命令
        systemctl {start|status|stop|restart} 服务名称[.service]

用到非默认网关路由:/etc/sysconfig/network-scripts/route-IFACE
    支持两种配置方式,但不可混用:
        (1):每行一条路由条目;
            TARGET via GW
                例:10.0.0.0/24 via 192.168.0.1
        (2)每三行一个路有条目
            ADDRESS#=TARGET
            NETMASK#=MASK
            GATEWAY#=NEXTHOP      

            例:
            ADDRESS0=192.168.0.0
            NETMASK0=255.255.255.0
            GATEWAY0=172.16.0.2

单网卡绑定多地址

ip addr 之外,ifocnfig或配置文件都可以,可重复绑定多地址

(1)ifcondig  eno22554984:1 192.18.19.12/24 临时有效
(2)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 del 172.16.1.1/16 dev eth0 label eth0:0
    ip addr flush dev eth0 label eth0:0

(3)复制配置文件并修改相关参数 (前提:关闭NetworkManager服务) 永久有效
    A.cp ifcfg-eth1 igcfg-eth1:1
    B.vim igcfg-eth1:1    
        BOOTPROTO:必须是静态iP,不支持动态获取地址
        ONPARENT=yes
    C.重启网络服务
    D.ifocnfig,查看是否成功
        [root@wen-7 network-scripts]# ifconfig 
    eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 172.18.19.219  netmask 255.255.255.0  broadcast 172.18.19.255
    inet6 fe80::20c:29ff:fe42:6eb9  prefixlen 64  scopeid 0x20<link>
    ether 00:0c:29:42:6e:b9  txqueuelen 1000  (Ethernet)
    RX packets 49634  bytes 56937122 (54.2 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 18268  bytes 2419679 (2.3 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    eno16777736:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 172.18.19.218  netmask 255.255.255.0  broadcast 172.18.19.255
    ether 00:0c:29:42:6e:b9  txqueuelen 1000  (Ethernet)

多网卡绑定单地址

Bonding
    就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。
    通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。
Bonding的工作模式

    Mode 0 (balance-rr)
        轮转( Round-robin)策略:从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均衡和容错的能力
    • Mode 1 (active-backup)
        活动-备份(主备)策略:在绑定中,只有一个slave被激活。
        当且仅当活动的slave接口失败时才会激活其他slave。为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见
    • Mode 3 (broadcast)
        广播策略:在所有的slave接口上传送所有的报文。本模式提供容错能力

    binding的所有工作模式可以分为两种:
        多主型工作
        主备型工作模式
bonding配置:
    miimon 是用来进行链路监测的。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
    • 查看bond0状态: /proc/net/bonding/bond
    • 关于bonding的详细配置请参照
    /usr/share/doc/kernel-docversion/Documentation/networking/bonding.txt



配置:
    1.创建bonding设备的配置文件
        vim  /etc/sysconfig/network-scripts/ifcfg-bond0
        DEVICE=bond0
        BOOTPROTO=none
        BONDING_OPTS= “miimon=100 mode=0”
    2.配置 /etc/sysconfig/network-scripts/ifcfg-eth0,可指定多块网卡
        DEVICE=eth0
        BOOTPROTO=none
        MASTER=bond0
        SLAVE=yes
        USERCTL=no
    3.配置 /etc/sysconfig/network-scripts/ifcfg-eth1
        DEVICE=eth01
        BOOTPROTO=none
        MASTER=bond0
        SLAVE=yes
        USERCTL=no
    3.重启网络服务,并查看
        service network restart
        ifocnfig

nmcli命令:地址配置工具

NeworkManager是管理和监控网络设置的守护进程
 设备即网络接口,连接是对网络接口的配置。一个网络接口可有多个连接配置,但同时只有一个连接配置生效。


NAME
  nmcli - command?line tool for controlling NetworkManager

SYNOPSIS
  nmcli  [ OPTIONS ] OBJECT { COMMAND | help }
    device - show and manage network interfaces
    nmcli device help
    connection - start, stop, and manage network connections
    nmcli connection help

修改IP地址等属性:
    #nmcli connection modify IFACE [+|-]setting.property value
        setting.property:
        ipv4.addresses ipv4.gateway
        ipv4.dns1 ipv4.method manual | auto
修改配置文件执行生效: systemctl restart network
            nmcli con reload
nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0
显示所有包括不活动连接
    nmcli con show
显示所有活动连接
    nmcli con show –active
显示网络连接配置
    nmcli con show "System eth0“
显示设备状态
    mcli dev status    

显示网络接口属性
    nmcli dev show eno16777736
创建新连接default, IP自动通过dhcp获取
    nmcli con add con-name default type Ethernetifname 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/24
    172.25.X.254”
    nmcli con mod “static” +ipv4.addresses 10.10.10.10/16

网络管理之网络配置与网络组
网络管理之网络配置与网络组

网络配置文件
    设备配置被保存在文本文件中
     /etc/sysconfig/network-scripts/ifcfg-<name>
   帮助文档列出完整选项列表: /usr/share/doc/initcripts-*/sysconfig.txt

网络管理之网络配置与网络组

修改连接配置后,需要重新加载配置
    nmcli con reload
    nmcli con down “system eth0” 可被自动激活
    nmcli con up “system eth0”
    nmcli dev dis eth0 禁用网卡,访止被自动激活
图形工具
    nm-connection-editor


使用nmcli更改主机名

rhel6之前主机名配置文件: /etc/sysconfig/network
rhel7.0主机名配置文件:/etc/hostname ,默认没有这个文件, 通过DNS反向解析获取主机名, 主机名默认为:localhost.localdomain
显示主机名信息
    hostname
    hostnamectl status
创建并修改文件并生效
    hostnamectl set-hostname desktopX.example.com
删除文件,恢复主机名localhost.localdomain
DNS设置,存放在/etc/resolv.conf文件中
PEERDNS=no 表示当IP通过dhcp自动获取时, dns仍是手动设置,不自动获取。等价于下面命令:
    nmcli con mod “system eth0” ipv4.ignore-auto-dns yes

网络组(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接口的加入

命令:
    创建网络组接口
        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接口 15631134675

       示例:(两块网卡)

        nmcli con add type team con-name team0 ifname team0 config '{"runner": {"name": "loadbalance"}}'
        nmcli con mod team0 ipv4.addresses 172.18.19.100/24
        nmcli con mod team0 ipv4.method manual
        nmcli con add con-name team0-eth1 type team-slave ifname eno33554984  master team0
        nmcli con add con-name team0-eth2 type team-slave ifname eno50332208  master team0
        nmcli con up team0
        nmcli con up team0-eth1
        nmcli con up team0-eth2
        teamdctl team0 state
        ifconfig 
        teamdctl team0 state
        测试:
            ping team0组的ip,顺序断开两个组内网卡的物理连接,查看ping是否有延迟,通过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 con del 接口名称

管理网络组的配置文件
    # /etc/sysconfig/network-scripts/ifcfg-team0
        DEVICE=team0
        DEVICETYPE=Team
        TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"
        BOOTPROTO=none
        IPADDR0=172.25.5.100
        PREFIX0=24
        NAME=team0
        ONBOOT=yes

    # /etc/sysconfig/network-scripts/ifcfg-team0-eth1
        DEVICE=eth1
        DEVICETYPE=TeamPort
        TEAM_MASTER=team0
        NAME=team0-eth1
        ONBOOT=yes

测试网络的命令

在命令行下测试网络的连通性
    显示主机名
        hostname
    测试网络连通性
        ping
        mtr
显示正确的路由表
    ip route
确定名称服务器使用:
    nslookup
    host
    dig
跟踪路由
    traceroute
    Tracepath

网络客户端工具

ftp,lftp
    lftp [-p port] [-u user[,password]] SERVER
    子命令:
        get、 mget、 ls、 help
lftpget URL

wget :下载工具
    wget [option]... [URL]...
    -q: 静默模式
    -c: 断点续传
    -O: 保存位置
    --limit-rates=: 指定传输速率
links :命令行浏览器
    --dump;以文字方式查看网站
    --source:查看网站源码
curl:浏览器 直接以源码方式查看网站
    -I:查看网站详细信息

原创文章,作者:wencx,如若转载,请注明出处:http://www.178linux.com/44062

(0)
上一篇 2016-09-06 19:02
下一篇 2016-09-06 19:53

相关推荐

  • grep命令与正则表达式的应用示例、find命令应用示例

    grep命令与正则表达式的应用示例、find命令应用示例 显示当前系统上root、fedora或user1用户的默认shell。 使用扩展正则表达式,它支持使用A|B表示或者之意。查看用户的默认shell,cat /etc/passwd文件,根据用户名所处位置进行锚定,其最后一个字段即表示该用户的默认shell。实现方式及结果如下:   找出/et…

    Linux干货 2016-11-28
  • 第五周作业

    1. 显示当前系统上root、fedora或user1用户的默认shell; grep -E "^(root|centos|user1)\>" /etc/passwd 或 awk -F: '{if($1=="root" || $1==…

    Linux干货 2017-01-10
  • CentOS7修改网卡为eth0

    1.编辑网卡信息 [root@linux~]# cd /etc/sysconfig/network-scripts/  #进入网卡目录 [root@linux~network-scripts]# mv ifcfg-eno16777728 ifcfg-eth0  #重命名网卡名称 [root@linux network-…

    Linux干货 2016-10-25
  • 用户创建过程&grep练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。     ~]# cp -r /etc/skel /home/tuser1     ~]# ls -la /home/tuser1  &…

    Linux干货 2016-10-17
  • linux程序包管理

    对第五周学习的内容进行总结

    2018-01-01
  • 分布式存储介绍、FastDFS 部署

    什么是分布式系统? 简单来说,多台主机提供同一个服务,例如负载均衡集群,就是一个分布式系统。 什么是分布式存储? 看看某宝,上面多少图片,如果使用传统的单机存储,需要准备多大的磁盘空间?读写性能如何提升? 上图就是一个分布式存储的结构,此处存储节点不在是磁盘,而是多个主机组成,多个主机内部通信实现数据副本,客户端发来的请求发往前端,前端分发至后端,有点像负载…

    2017-03-08