zoukankan      html  css  js  c++  java
  • centOS7网络配置(nmcli,bonding,网络组)

    关于网络接口命名

    CentOS 6之前,网络接口使用连续号码命名: eth0、 eth1等,当增加或删除网卡时,名称可能会发生变化。CentOS 7使用基于硬件,设备拓扑和设置类型命名。

    网卡命名机制

    systemd对网络设备的命名方式

      (a) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1

      (b) 如果Firmware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1

      (c) 如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0

      (d) 如果用户显式启动,也可根据MAC地址进行命名,enx2387a1dc56

      (e) 上述均不可用时,则使用传统命名机制

    网卡名称

    (1)基于BIOS支持启用biosdevname软件

      内置网卡: em1,em2

      pci卡: pYpX Y: slot ,X:port

    (2) 名称组成格式

      en: Ethernet 有线局域网

      wl: wlan 无线局域网

      ww: wwan无线广域网

        名称类型:

      o<index>: 集成设备的设备索引号

      s<slot>: 扩展槽的索引号

      x<MAC>: 基于MAC地址的命名

      p<bus>s<slot>: enp2s1

    网卡设备的命名过程

    第一步:

      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) 重启系统

    CentOS 7网络配置工具

    centOS7主机名

    配置文件:/etc/hostname ,默认没有此文件, 通过DNS反向解析获取主机名, 主机名默认为: localhost.localdomain

    显示主机名信息

      hostname

      hostnamectl status(显示更全的信息)

    [root@CT731 ~]#hostnamectl status 
       Static hostname: CT731
             Icon name: computer-vm
               Chassis: vm
            Machine ID: 618d3baeb5754f7092242f811c7aa740
               Boot ID: 3e2702fde99242248e0f20c0b7c5c19c
        Virtualization: vmware
      Operating System: CentOS Linux 7 (Core)
           CPE OS Name: cpe:/o:centos:centos:7
                Kernel: Linux 3.10.0-514.el7.x86_64
          Architecture: x86-64

    设置主机名

      hostnamectl set-hostname centos7(即时生效,直接写入配置文件)

      删除文件/etc/hostname, 恢复主机名localhost.localdomain

    CentOS 7网络配置工具nmcli

    由于这个工具是centOS7上面的新工具,不仅大而且选项很多,但是工具很强大,我们就学习它的一部分功能。

    地址配置工具: nmcli

    nmcli [ OPTIONS ] OBJECT { COMMAND | help }

    device - show and manage network interfaces

    connection - start, stop, and manage network connections

    nmcli connection/device help 查看帮助

    修改IP地址等属性

    nmcli connection modify IFACE [+|-]setting.property value

    setting.property:

      ipv4.addresses

    ipv4.gateway

      ipv4.dns1

      ipv4.method manual/auto

    [root@CT731 ~]#nmcli connection modify eth2 autoconnect no
    [root@CT731 ~]#nmcli connection modify eth2 ipv4.method auto
    [root@CT731 ~]#nmcli connection modify eth2 +ipv4.addresses 192.168.111.122/24
    [root@CT731 ~]#nmcli connection modify eth2 +ipv4.dns 8.8.8.8

    DNS设置,存放在/etc/resolv.conf文件中

    PEERDNS=no 表示当IP通过dhcp自动获取时, dns仍是手动设置,不自动获取。等价于下面命令:

    nmcli con mod "system eth0" ipv4.ignore-auto-dns yes

    修改配置文件执行生效

      systemctl restart network

      nmcli connection reload

    [root@CT731 ~]#nmcli connection reload 

    网络接口的启用与停用:

      nmcli connection down eth0

      nmcli connection up eth0

    [root@CT731 ~]#nmcli connection down eth2
    Connection 'eth2' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/77)
    [root@CT731 ~]#nmcli connection up eth2  
    Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/78)

    显示网络接口

    显示所有包括不活动连接

      nmcli connection show

    [root@CT731 ~]#nmcli connection show 
    NAME  UUID                                  TYPE            DEVICE 
    eth0  c96bc909-188e-ec64-3a96-6a90982b08ad  802-3-ethernet  eth0   
    eth1  94aea789-efb3-ef4c-81b0-e8b18ecc9797  802-3-ethernet  eth1   
    eth2  3a73717e-65ab-93e8-b518-24f5af32dc0d  802-3-ethernet  eth2

    显示所有活动连接

      nmcli connection show --active

    显示网络连接配置

      nmcli connection show eth0

    [root@CT731 ~]#nmcli connection show eth2
    connection.id:                          eth2
    connection.uuid:                        3a73717e-65ab-93e8-b518-24f5af32dc0d
    connection.stable-id:                   --
    connection.interface-name:              eth2
    ... ...
    802-3-ethernet.wake-on-lan:             1 (default)
    802-3-ethernet.wake-on-lan-password:    --
    ipv4.method:                            auto
    ipv4.dns:                               8.8.8.8
    ipv4.dns-search:                        
    ipv4.dns-options:                       (default)
    ipv4.dns-priority:                      0
    ipv4.addresses:                         192.168.111.160/24, 192.168.111.122/24
    ipv4.gateway:                           --
    ... ...
    GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/5
    GENERAL.SPEC-OBJECT:                    /
    GENERAL.MASTER-PATH:                    --
    IP4.ADDRESS[1]:                         192.168.111.122/24
    IP4.ADDRESS[2]:                         192.168.111.160/24
    IP4.ADDRESS[3]:                         192.168.111.143/24
    IP4.GATEWAY:                            
    IP4.DNS[1]:                             192.168.111.1
    IP4.DNS[2]:                             8.8.8.8
    IP4.DOMAIN[1]:                          localdomain
    DHCP4.OPTION[1]:                        requested_domain_search = 1
    DHCP4.OPTION[2]:                        requested_time_offset = 1
    DHCP4.OPTION[3]:                        requested_domain_name = 1
    DHCP4.OPTION[4]:                        requested_rfc3442_classless_static_routes = 1
    ... ...

    显示设备状态

      nmcli device status

    [root@CT731 ~]#nmcli device status 
    DEVICE  TYPE      STATE      CONNECTION 
    eth0    ethernet  connected  eth0       
    eth1    ethernet  connected  eth1       
    eth2    ethernet  connected  eth2       
    lo      loopback  unmanaged  --   

    显示网络接口属性

      nmcli device show eth0

    [root@CT731 ~]#nmcli device show eth2
    GENERAL.DEVICE:                         eth2
    GENERAL.TYPE:                           ethernet
    GENERAL.HWADDR:                         00:0C:29:84:00:C8
    GENERAL.MTU:                            1500
    GENERAL.STATE:                          100 (connected)
    GENERAL.CONNECTION:                     eth2
    GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/78
    WIRED-PROPERTIES.CARRIER:               on
    IP4.ADDRESS[1]:                         192.168.111.122/24
    IP4.ADDRESS[2]:                         192.168.111.160/24
    IP4.ADDRESS[3]:                         192.168.111.143/24
    IP4.GATEWAY:                            
    IP4.DNS[1]:                             192.168.111.1
    IP4.DNS[2]:                             8.8.8.8
    IP4.DOMAIN[1]:                          localdomain
    IP6.ADDRESS[1]:                         fe80::bd9a:88f7:695e:fdce/64

    创建新的网络接口(存在未使用的网卡)

    创建新连接default, IP自动通过dhcp获取

    nmcli connection add con-name eth0 type Ethernet ifname eth0

    创建新连接static ,指定静态IP,不自动连接

    [root@CT731 ~]#nmcli connection add con-name eth4 ifname eth4 autoconnect no type Ethernet ipv4.address 172.25.12.10/24 ipv4.gateway 172.25.12.254  
    Connection 'eth4' (403fe692-04cd-4a01-b8bb-7e2bb468daf1) successfully added.

    删除连接

    [root@CT731 ~]#nmcli connection delete eth4
    Connection 'eth4' (403fe692-04cd-4a01-b8bb-7e2bb468daf1) successfully deleted

    nmcli命令与配置文件对应关系

    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

    关闭并删除bond

    nmcli con down mybond0

    rm –f /etc/sysconfig/network-scripts/ifcfg-*bond*

    nmcli connection reload

    网络组Network Teaming

    网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量

    网络组不同于旧版中bonding技术,提供更好的性能和扩展性

    网络组由内核驱动和teamd守护进程实现.

    多种方式runner

      broadcast

      roundrobin

      activebackup

      loadbalance

      lacp (implements the 802.3ad Link Aggregation Control、Protocol)

    网络组的注意事项:

      启动网络组接口不会自动启动网络组中的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

    我们创建的接口就是对外的连接口,是用于让服务器以外的主机进行访问的,在创建接口的同时,我们可以直接在创建的同时设置IP地址,如果我们不设置IP地址,它会采用DHCP的方式寻求DHCP服务器给分配一个IP地址

    创建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接口

    创建port其实就是将原来存在的网卡加入到网络组中,使用统一的网址进行访问,通过不同的模式使用网卡,可实现负载均衡,高可用性等。

    启用网络接口

    先启用port接口(逐个启用)

      nmcli connection up team-slave-eth*

    再启用网络接口

      nmcli connection up con-team0

    完成后就可以访问了。

    查看网络组网卡状态

      teamdctl team0 state

    关闭网络组

    首先,我们要down掉网络组,命令:

      nmcli connection up con-team0

    然后删除相关配置文件:

      rm /etc/sysconfig/network-scripts/ifcfg-*team*

    最后重新加载网络

      nmcli connection reload

    管理网络组配置文件

    我们使用nmcli设置网络组,实际上就是直接操作的配置文件,我们可以对关于网络组的一些配置文件做一个了解。

    /etc/sysconfig/network-scripts/ifcfg-con-team0

      DEVICE=team0

      TEAM_CONFIG="{"runner":{"name":"roundrobin"}}"

      BOOTPROTO=none

      DEFROUTE=yes

      NAME=con-team0

      ONBOOT=yes

      DEVICETYPE=Team

      IPADDR=192.168.111.100

      PREFIX=24

    /etc/sysconfig/network-scripts/ifcfg-team-slave-eth1

      NAME=team-slave-eth1

      UUID=af7e25aa-6a08-4fda-a33d-3a9de62b6f66

      DEVICE=eth1

    ONBOOT=yes

      TEAM_MASTER=team0

      DEVICETYPE=TeamPort

    网桥的软实现

    桥接:把一台机器上的若干个网络接口"连接"起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。

    主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、 eth2桥接在一起,故而报文被复制到eth1和eth2,并且发送出去,然后被主机B和交换机S2接收到。而S2又会将报文转发给主机C、 D。

    创建软件网桥

    创建接口

      nmcli con add type bridge con-name br0 ifname br0

    设置IP(不设置则DHCP分配)

        nmcli connection modify br0 ipv4.addresses 192.168.74.100/24 ipv4.method manuall

    向往桥中添加网卡(一般添加两个以上)

      nmcli con add type bridge-slave [con-name br0-port0] ifname eth0 master br0

    启动网桥

      nmcli connection up br0-port0

    关闭并取消网桥设置

        先down掉网桥

            nmcli connection down br0

        在删除设置

            nmcli connection delete bridge-slave-eth1

            nmcli connection delete br0

        重新加载网络

            nmcli connection reload

    扩展

    网络测试工具

    测试网络连通性

    ping

    [root@CT731 network-scripts]#ping 172.17.0.1
    PING 172.17.0.1 (172.17.0.1) 56(84) bytes of data.
    64 bytes from 172.17.0.1: icmp_seq=1 ttl=64 time=1.27 ms
    64 bytes from 172.17.0.1: icmp_seq=2 ttl=64 time=0.849 ms
    64 bytes from 172.17.0.1: icmp_seq=3 ttl=64 time=0.662 ms

    mtr

           My traceroute  [v0.85]
    CT731 (0.0.0.0)                                                                    Thu Sep  7 21:26:59 2017
    Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                                       Packets               Pings
     Host                                                            Loss%   Snt   Last   Avg  Best  Wrst StDev
     1. 172.17.0.1                                                    0.0%    10    1.0   0.8   0.5   1.0   0.0
     2. ???

    显示正确的路由表

    ip route

    [root@CT731 network-scripts]#ip route
    default via 172.17.0.1 dev eth0  proto static  metric 100 
    172.17.0.0/16 dev eth0  proto kernel  scope link  src 172.17.254.57  metric 100 
    192.168.111.0/24 dev eth1  proto kernel  scope link  src 192.168.111.120  metric 100 
    192.168.111.0/24 dev eth2  proto kernel  scope link  src 192.168.111.122  metric 101

    确定名称服务器使用:

    nslookup

    nslookup命令是常用域名查询工具,就是查DNS信息用的命令。 nslookup4有两种工作模式,即“交互模式”和“非交互模式”。在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。 进入交互模式,直接输入nslookup命令,不加任何参数,则直接进入交互模式,此时nslookup会连接到默认的域名服务器(即/etc/resolv.conf的第一个dns地址)。或者输入nslookup -nameserver/ip。进入非交互模式,就直接输入nslookup 域名就可以了。

    [root@CT731 network-scripts]#nslookup www.sina.com
    Server:         172.17.0.1
    Address:        172.17.0.1#53
    
    Non-authoritative answer:
    www.sina.com    canonical name = us.sina.com.cn.
    us.sina.com.cn  canonical name = wwwus.sina.com.
    Name:   wwwus.sina.com
    Address: 66.102.251.33

    host

    host命令是常用的分析域名查询工具,可以用来测试域名系统工作是否正常。

    [root@CT731 network-scripts]#host www.baidu.com
    www.baidu.com is an alias for www.a.shifen.com.
    www.a.shifen.com has address 111.13.100.92
    www.a.shifen.com has address 111.13.100.91

    dig

    dig命令是常用的域名查询工具,可以用来测试域名系统工作是否正常

    [root@CT731 ~]#dig www.baidu.com
    
    ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> www.baidu.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23008
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 6

    跟踪路由

    traceroute

    [root@CT691 ~]#traceroute www.baidu.com
    traceroute to www.baidu.com (14.215.177.38), 30 hops max, 60 byte packets
     1  172.17.0.1 (172.17.0.1)  2.929 ms  2.823 ms  2.779 ms
     2  * * *
     3  * * *

    tracepath

    [root@CT691 ~]#tracepath www.baidu.com
     1?: [LOCALHOST]     pmtu 1500
     1:  172.17.0.1 (172.17.0.1)                                0.707ms 
     1:  172.17.0.1 (172.17.0.1)                                0.648ms 
     2:  no reply

    网络客户端工具

    ftp

        下载命令 get,mget

        查看 ls

        帮助 help ?

        !ls 看本机的文件列表

    lftp

        比ftp更好用

    lftpget URL直接下载,非交互(下载ftp服务上的文件,也支持http协议)

    wget [option] [url] 非交互式的下载文件

        -q:静默模式

        -c:断点续传

        -O:保存位置

        -P:指定下载到某个目录

        --limit-rate= :指定传输速率,单位K,M等。

    links URL字符界面的浏览器

        --dump 显示页面文字

        --source 查看源码

  • 相关阅读:
    Linux 下的dd命令使用详解
    理解Linux的inode
    2021.11.11
    转一篇DLL逆向的文章,适用于一般的dll逆向
    关于Exchange DSAccess组件目录检测机制
    一些KB
    Inside of my heart
    C/C++是程序员必须掌握的语言吗?
    一个自动检测并安装hotfix的脚本
    VC++中DLL的创建和使用
  • 原文地址:https://www.cnblogs.com/duzhaoqi/p/7491761.html
Copyright © 2011-2022 走看看