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(顯示更全的資訊)
[[email protected] ~]#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
[[email protected] ~]#nmcli connection modify eth2 autoconnect no
[[email protected] ~]#nmcli connection modify eth2 ipv4.method auto
[[email protected] ~]#nmcli connection modify eth2 +ipv4.addresses 192.168.111.122/24
[[email protected] ~]#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
[[email protected] ~]#nmcli connection reload
網路介面的啟用與停用:
nmcli connection down eth0
nmcli connection up eth0
[[email protected] ~]#nmcli connection down eth2 Connection 'eth2' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/77) [[email protected] ~]#nmcli connection up eth2 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/78)
顯示網路介面
顯示所有包括不活動連線
nmcli connection show
[[email protected] ~]#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
[[email protected] ~]#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
[[email protected] ~]#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
[[email protected] ~]#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,不自動連線
[[email protected] ~]#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.
刪除連線
[[email protected] ~]#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
[[email protected] 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
[[email protected] 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 域名就可以了。
[[email protected] 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命令是常用的分析域名查詢工具,可以用來測試域名系統工作是否正常。
[[email protected] 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命令是常用的域名查詢工具,可以用來測試域名系統工作是否正常
[[email protected] ~]#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
[[email protected] ~]#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
[[email protected]691 ~]#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 檢視原始碼