antony@notes:~/suse$ cat "Network-Management.md"
Network Management
Network Management
Preface
本文主要介紹在 SUSE Linux Enterprise 中的網路管理、Wicked 中的網路管理、firewalld 防火牆,如何透過使用 firewall-cmd 命令 或是 firewall-config 來管理 firewalld 防火牆和了解 防火牆區域設計
可以透過點擊展開以下目錄,選擇想看的內容,跳轉至特定章節
:::warning
:::spoiler 文章目錄
[TOC]
:::
Understand Network Management in SLE
Linux Network Terms (術語)
Device
在系統中內建的網路卡。
Interface (介面)
為了使用一個物理設備,驅動程序會為該設備創建一個介面,使得這個介面可以被其他應用程序使用。
在 Linux 中,網路介面使用一個標準的命名方案,以太網網路卡的介面遵循的命名方案是 eth0、eth1、eth2,等等。
對於系統中安裝的每一個網路卡,在加載適當的驅動程序時都會創建一個介面。
網路配置的命令行工具在實際指的是 Interface 時使用了 Device 這個術語。
術語 “Device” 在本節中同時用於物理設備和軟體介面。
Link
一個設備與網路的連接。
Address
分配給一個設備的 IP 地址。該地址可以是一個 IPv4 或 IPv6 地址。要在網路中使用一個設備,你必須至少給它分配一個地址。你可以為一個設備分配一個以上的地址。
Broadcast
一個網路的廣播地址,通過向廣播地址發送網路數據包,你可以同時到達本地連接網路中的所有主機。當你給設備分配一個 IP 地址時,你也可以設置這個廣播地址。
Route
是一個 IP 封包從來源裝置到目標裝置所經過的路徑。在 Linux 核心中,「Route」這個詞也用來指代路由表中的一個條目。
The ping Command
- Syntax :
ping <destination>- The
<destination>can be an ip address, host name or fqdn
- The
- 通常使用 ping 工具來測試是否有正常的網路連接
- 在路由器或防火牆上設定過濾規則時,有可能會封鎖 ping 工具的功能,使得裝置之間無法進行連線測試
ping Options
-c, count:指定要發送的封包數量。-I, interface:指定要使用的網路介面(大寫 i)。-i, seconds:指定在發送每個封包之間等待的秒數(預設為1秒)。-f:將封包按照接收回應的速度連續發送。-l, preload:發送封包時不等待回應。-n:以數字形式輸出 IP 位址。-t, ttl:指定要發送的封包的生命週期(TTL)。-w, maxwait:設定 ping 命令在超時之前等待回應的時間(單位為秒),即使已經發送或接收了多少封包。-b:將封包發送到網路的廣播位址。
範例
:~> ping -c 2 8.8.8.8螢幕輸出 :
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=11.4 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=17.0 ms
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 11.350/14.174/16.998/2.824 ms輸出顯示以下信息:
- ICMP 封包的大小( 64 字節 )
- 目標系統的 IP 位址( 從 8.8.8.8 )。
- 每個封包的序列號( seq=1 )
- 封包的TTL(TTL,生存時間)( ttl=128 )
- 從傳輸封包到收到相應的答復之間的時間量(time=11.4 ms),這個時間也被稱為 “Round Trip Time (往返時間)"。
如果從目標系統得到一個回答,可以確定基本的網絡設備設置和到目標主機的路由是有效的。
Trace Network Packets
- 使用方式:
traceroute <目標主機> - 檢查不同網路之間的路由狀況
- 使用稱為 “datagrams 資料包” 的 UDP 封包
- 選項:
-n,顯示 IP 地址而非完整網域名稱
traceroute 是一個網路診斷工具,主要用來檢查不同網路之間的路由狀況。它會發送多個 TTL 值逐漸增加的封包到目的地主機,每個 TTL 值會發送三個封包。
traceroute 使用的是 UDP 封包,也稱為 datagrams (資料包)。首先,會發送三個 TTL=1 的資料包到目的地主機,然後是三個 TTL=2 的封包,以此類推。每當一個資料包通過一個路由器時,它的 TTL 值就會減少一個。
當 TTL 值達到零時,該資料包就會被丟棄,並發送一個消息給發送者。因為每三個封包就會增加一個 TTL 值,traceroute 可以收集到到達目的地主機之前的每個路由器的資訊。
範例 :
~> traceroute pluto.example.com螢幕輸出 :
traceroute to pluto.example.com (192.168.2.1), 30 hops max, 40 byte packets using UDP
1 gateway.digitalairlines.com (172.17.2.254) 0 ms 0 ms 0 ms
2 antares.example.com (192.168.1.254) 14 ms * 14 ms
3 pluto.example.com (192.168.2.1) 19 ms 20 ms 26 mstraceroute 執行時第一行會顯示一般性的資訊,之後每一行都代表到達目標主機時所經過的路由器,每個路由器都會顯示主機名稱和 IP 位址。
traceroute 也會顯示每個路由器回傳的三個 datagrams 的來回時間資訊。如果沒有收到回應,就會顯示星號 (*)。最後一行顯示的是目標主機本身。
Network Related Configuration Files
- 網路介面的設定檔放在以下目錄:
/etc/sysconfig/network/
- Name Resolution
- System’s hostname:
/etc/hostname - Name resolution locally:
/etc/hosts - DNS Servers:
/etc/resolv.conf - 名稱解析服務的順序:
/etc/nsswitch.conf
- System’s hostname:
/etc/resolv.conf 內容如下 :
search digitalairlines.com
nameserver 172.17.8.254
nameserver 172.17.1.1
nameserver 192.168.1.1search:在這個項目中的網域名稱會用來自動補完不完整的主機名稱。例如,如果你查詢主機名稱 server3,它會自動完成成完整的網域名稱
server3.digitalairlines.com。nameserver:以 nameserver 開頭的每個項目後面都會跟著一個名稱伺服器的 IP 位址。你可以設定最多三個名稱伺服器。如果第一個名稱伺服器失敗,就會使用下一個。
SUSE sysconfig Network Commands
- Syntax:
<command> <interface> - Bring a configured network interface up:
ifup eth0
- Bring a configured network interface down:
ifdown eth0
- Renew DHCP IP Address:
ifrenew eth0
- Display information about a configured network interface:
ifstatus eth0
要對位於 /etc/sysconfig/network/ 的組態檔案進行更改,你需要停止和重新啟動相應的介面。
你可以使用 ifdown和 ifup 命令來執行此操作。例如,輸入 ifdown eth0 將禁用 eth0 設備,ifup eth0 則會再次啟用 eth0,當設備重新啟動時,新的設定會從配置文件中讀取。
Address Configuration
- Syntax:
ip [address|addr|a] <task> <arguments>
- Display IP Address configuration:
ip addr show
- Add an IP address to an interface:
ip addr add 10.0.0.10/24 brd + dev eth0brd +選項根據網路遮罩來確定自動設定廣播位址。
- Remove an IP address from an interface:
ip addr del 10.0.0.10/24 dev eth0
ip 指令只會在記憶體中修改網路設定,若要保存永久設定則必須儲存在 /etc/sysconfig/network/ 中的 ifcfg 檔案中。
所有的 SUSE 網路設定腳本都使用 ip 指令來進行實際的網路設定。
Route Configuration
- Syntax:
ip [route|r] <task> <arguments> - Display routing table:
ip route show
- Add a route to the local network:
ip route add 172.17.0.0/16 dev eth0
- Add a route to a different network:
ip route add 192.168.1.0/24 via 172.17.1.1
- Add a default route:
ip route add default via 172.17.2.2
- Delete a route:
ip route delete 192.168.1.0/24 dev eth0
要將更改應用於路由配置檔,您需要使用 ifdown 和 ifup 命令重新啟動受影響的網路設備。
Link Configuration
- Syntax:
ip [link|l] <task> <arguments> - Display link level configuration:
ip link show
- Bring an interface up:
ip link set eth0 up
- Bring an interface down:
ip link set eth0 down
- Change the MAC address of an interface:
ip link set eth0 addr 00:11:22:AA:BB:CC
- Rename a network interface:
ip link set eth0 name peth0
範例 :
server1:~ # ip link show螢幕輸出 :
1: lo: <LOOPBACK,UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:0c:29:11:c6:b8 brd ff:ff:ff:ff:ff:ff
- UP - 裝置已開啟,可以傳送和接收網路上的封包。
- LOOPBACK - 裝置是回送裝置。
- BROADCAST - 裝置可以發送封包到共享同一網路的所有主機。
- POINTOPOINT - 裝置僅與另一個裝置相連。所有封包都會發送到另一個裝置,也會從另一個裝置接收封包。
- MULTICAST - 裝置可以同時向一群其他系統發送封包。
- PROMISC - 裝置會監聽網路上的所有封包,不只是發送給裝置硬體地址的封包。這通常用於網路監控。
使用 ip 命令時,你可以使用 -s 選項來顯示有關網路介面的其他統計資訊。這個命令的格式如下:
ip -s link show eth0透過在命令行尾部輸入裝置名稱,你可以限制輸出僅顯示特定的裝置,這還可以用於顯示地址設定或裝置屬性。
以下是顯示給裝置 eth0 的資訊範例:
~> ip -s link show eth0螢幕輸出 :
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:0e:56:be brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped missed mcast
64239 725 0 0 0 0
TX: bytes packets errors dropped carrier collsns
62369 612 0 0 0 0
altname enp2s0
altname ens32對於每個裝置都顯示了兩個額外的包含資訊的部分,每個部分都有一個標題說明顯示的資訊。
以 RX 為開頭的部分顯示有關已接收的封包的資訊,以 TX 為開頭的部分顯示有關已發送的封包的資訊。
這些部分顯示以下資訊:
- Bytes:裝置已接收或傳輸的所有位元組總數。
- Packets:裝置已接收或傳輸的所有封包總數。
- Errors:接收器或發送器錯誤的總數。
- Dropped:由於資源不足而被丟棄的封包總數。
- Overrun:因接收器超限而導致被丟棄的封包總數。通常,如果裝置發生超限,這意味著 Linux 內核存在嚴重問題或者你的計算機對該裝置的處理速度太慢。
- Mcast:已接收的多播封包總數。這個選項僅支援少數裝置。
- Carrier:因喪失載波而導致的連結媒介故障總數。
- Collsns:在以太網媒介上的碰撞事件總數。
- Compressed:已壓縮的封包總數。
你也可以使用 ip 工具來更改裝置屬性。以下是設定裝置屬性的基本命令格式:
ip link set <device> <attribute>上述已經描述了可能的屬性。最重要的屬性是 “up” 和 “down”。通過設置這些屬性,可以啟用或停用網路裝置。 要啟用網路裝置(例如 eth0),請輸入以下命令:
ip link set eth0 up要停用網絡設備(例如 eth0),請輸入以下命令:
ip link set eth0 down