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 查看源碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM