- RHCSARHCE 紅帽Linux認證學習指南(第7版)EX200 & EX300
- (美)Michael Jang等
- 4409字
- 2020-11-29 00:30:01
認證目標3.05 網絡入門
TCP/IP是一系列按層組織的協(xié)議,也稱為協(xié)議套件。它是專為Unix設計的,但是最終成為Internet的通信標準。IP地址幫助在網絡上進行通信。現(xiàn)在有很多TCP/IP工具和配置文件能幫助用戶管理網絡。
本章前面曾提到,這里的論述過于簡單。因此,如果你認為這一節(jié)的內容難以理解或不全面,可以閱讀第1章介紹的參考書。Linux是專為網絡連接設計的。除非比較全面地理解網絡的基本概念,否則沒有切實可行的辦法幫助考生通過Red Hat考試。
雖然當前網絡的重點仍然是IPv4尋址模式,但是有些組織已經開始轉到IPv6網絡。本節(jié)重點介紹IPv4,第12章將介紹IPv6。不過,用于IPv4的大部分配置文件和工具也適用于IPv6。
3.5.1 IPv4網絡
每個要在網絡上進行通信的計算機必須有一個唯一的IP地址。有些地址已經永久地分配給某一個計算機,這些就是靜態(tài)地址。其他地址是從DHCP服務器那里租用一段時間的,它們就是所謂的動態(tài)IP地址。
IPv4地址是32位的二進制數(shù)字,通常采用“點分十進制”表示法(如192.168.122.50),其中每個小節(jié)代表8位二進制數(shù)字。IP地址由兩個部分組成:網絡地址(或子網)和主機部分。在1993年Interent Engineering Task Force(www.ietf.org)發(fā)布RFC 1517之前,IP地址被分成不同的類別,這些類別定義了網絡的規(guī)模和地址的主機部分。
現(xiàn)在通常使用一種不分類邏輯來分析IP地址。使用子網掩碼而不是地址分類來確定IP地址的網絡和主機部分。RFC 791引入的分類尋址方法如表3-3所示。RFC 791的一些概念在今天仍然得到采用,例如,IP地址段224.0.0.0-239.255.255.255用于多播地址。
表3-3 IP地址的分類

此外還有很多專用IP地址,它們不可以分配給任何直接連接到Internet上的計算機。RFC 1918定義了最常見的專用網絡地址段,它們與10.0.0.0-10.255.255.255、172.168.16.0-172.168.31.255以及192.168.0.0-192.168.255.255等網絡地址相關聯(lián)。另外,網絡地址段127.0.0.0到127.255.255.255用于本地主機上的回環(huán)通信。
3.5.2 網絡和路由
前一節(jié)討論過,IP地址包含兩個部分:網絡前綴和主機標識符。為確定網絡和主機部分,IP地址關聯(lián)著一個子網掩碼(也稱為前綴)。這是一個32位數(shù)字,由一系列二進制的1后跟0組成。
子網掩碼可采用與IPv4地址相同的點分十進制表示法。例如,255.255.255.0是一個子網掩碼,由24個二進制的1和8個0組成。還有一種表示法,稱為無類別域間路由(Classless Inter-Domain Routing, CIDR),由一個斜杠字符(/)后跟表示子網掩碼中1的個數(shù)的數(shù)字組成。例如,在CIDR表示法中,子網掩碼255.255.255.0可寫作/24。
給定一個IP地址和一個子網掩碼,為確定IP地址的網絡部分,只需要在IP地址和子網掩碼之間提供一個邏輯AND。例如,給定IP地址192.168.122.50和子網掩碼/24,地址的前三個字節(jié)(192.168.122)代表了網絡部分,而最后一個字節(jié)(50)則是主機標識符。
定義一個網絡需要三個重要的IP地址:網絡地址、廣播地址和子網掩碼。網絡地址就是地址段中的第一個IP地址;廣播地址通常是同一個地址段中的最后一個IP地址。子網掩碼可以幫助計算機定義IP地址的網絡部分和主機部分。可以把網絡地址與廣播地址之間的任何一個地址(不包括上述地址)分配給網絡上的任何一臺計算機。
現(xiàn)在用一個例子說明如何為一個專用網絡分配地址段。專用網絡地址從192.168.122.0開始,子網掩碼地址是255.255.255.0。基于上述兩個地址,廣播地址為192.168.122.255,則分配給特定網絡上的IP地址段可以從192.168.122.1到192.168.122.254。子網掩碼也可由相應的位數(shù)來定義,本例是24。換言之,這個網絡可以表示為192.168.122.0/24。
IP地址也可分配給網絡接口。如果一個主機有多個網絡接口,將流量轉發(fā)到不同的網絡,則稱該主機為路由器。通過路由器與其他IP主機組分隔開的IP主機必須位于不同的網絡中。
與網絡和子網掩碼相關的是“網關”概念。這是一個定義了本地網絡與外部網絡之間的連接的IP地址。雖然網關IP地址也是本地網絡的一部分,但是它被分配給一個路由器,且該路由器具有另一個網絡(例如公共的Internet)上的IP地址。網關IP地址通常是在本地系統(tǒng)的路由表中配置的,可以用下一節(jié)介紹的ip route命令定義路由表。
3.5.3 工具和命令
有很多工具可用來管理Linux計算機上的TCP/IP協(xié)議套件。在之前版本的RHEL中,一些比較重要的網絡管理命令包括ifconfig、arp、netstat和route。這些命令已被棄用。ip工具支持更高級的功能。為便于過渡到使用ip工具,表3-4提供了已被棄用的命令列表,以及對應的ip命令。
表3-4 ifconfig、arp、netstat命令及對應的ip命令

實際經驗
默認情況下,RHEL 7根據(jù)物理位置來命名網絡接口(例如,enoX和emX表示板載網絡接口,enpXsY和pXpY代表PCI插槽)。在RHEL 7中,傳統(tǒng)的枚舉方法(eth0、eth1……)只是一種備用選擇。因此,第一個板載網絡接口可能被命名為eno1,而位于PCI總線3、插槽0的接口可能被命名為enp3s0。
其他重要的網絡命令包括ping和traceroute,常用于診斷和排除網絡問題。
但這些只是工具而已。下一節(jié)將分析這樣一些Red Hat文件,它們決定了在引導過程中自動配置網絡需要調用的命令。
1. ping和traceroute命令
ping命令可以測試網絡的連通性。它可以作用于本地系統(tǒng)的一個網絡之內,也可以測試Internet上多個網絡之間的連通性。本節(jié)假設IP地址為192.168.122.50,本地網絡上的網關地址是192.168.122.1。如果用戶發(fā)現(xiàn)網絡連接有問題,則可以按順序執(zhí)行下面的ping命令。第一步測試計算機的TCP/IP的完整性:
# ping 127.0.0.1
通常在Linux中會不停地執(zhí)行ping命令,要終止它的執(zhí)行必須按下CTRL+C。如果要想驗證本地局域網的連接是否正常,可以用ping命令測試本地網卡的IP地址:
# ping 192.168.122.50
如果此命令運行正常,再用ping命令測試網絡上另一個計算機的地址。然后開始跟蹤到Internet的路由過程。用ping命令測試網關的地址,這里是192.168.122.1。如有可能,不妨用ping命令測試網絡連接Internet的地址,此地址可能在網關的另一側。有可能是路由器在Internet上的公共IP地址。最后,用ping命令測試一個在Internet處于活動狀態(tài)的計算機的IP地址。
也可以用www.google.com這樣的主機名代替IP地址。如果用主機名時不能正常工作,則很可能是包含了主機名和IP地址的數(shù)據(jù)庫存在問題,這個數(shù)據(jù)庫也常稱為域名服務(Domain Name Service, DNS)。也可能是/etc/hosts配置文件存在問題。
traceroute命令通過跟蹤到目的地的路由路徑,自動完成上述過程。例如,下面的命令找出IP地址192.168.20.5的路徑:
# traceroute -n 192.168.20.5 traceroute to 192.168.20.5(192.168.20.5), 30 hops max, 60 byte packets 1 192.168.122.1 0.204 ms 0.152 ms 0.148 ms 2 192.168.1.1 1.826 ms 2.413 ms 4.050 ms 3 192.168.20.5 2.292 ms 2.630 ms 2.554 ms
注意這條命令中的-n選項,它告訴traceroute顯示IP地址而不是主機名。此命令還顯示了到達路徑上的每一跳所需的往返時間(Round Trip Time, RTT)。默認情況下,為每一跳發(fā)送3個不同的探測數(shù)據(jù)包。
請注意,一些traceroute命令選項需要root管理員權限。另一個可實現(xiàn)相同目的、但是沒有此限制的命令是tracepath。
實際經驗
默認情況下,traceroute依賴于在IP頭部中包含不斷增加的生存時間(Time-To-Live, TTL)值的UDP探測數(shù)據(jù)包,才能找到給定目的地的路由路徑。有時候,路徑上的防火墻可能阻止UDP數(shù)據(jù)包。此時,可以嘗試在traceroute命令中使用-I或-T選項,以啟用ICMP或TCP探測數(shù)據(jù)包。
2.用ip命令檢查當前網絡適配器
ip命令可以顯示活動網卡的當前狀態(tài),它也可以用于分配網絡地址及其他功能。運行ip link show命令可以檢查本地系統(tǒng)上當前活動網卡的鏈接狀態(tài)。如果想要顯示有關網絡性能的統(tǒng)計數(shù)據(jù),可以包含-s開關。
要查看IP地址信息,可使用ip address show命令,其輸出與ip link show相同,但是還包含了IP地址及其屬性。
下面用ip address show eth0命令顯示第一個以太網卡的當前配置:
# ip addr show eth0 2: eth0: <BROADCAST, MULTICAST, UP, LOWER_UP> mtu 1500 qdisc pfifo_fast state ? UP qlen 1000 link/ether 52:54:00:40:1e:6a brd ff:ff:ff:ff:ff:ff inet 192.168.122.50/24 brd 192.168.122.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::2e0:4cff:fee3:d106/64 scope link valid_lft forever preferred_lft forever
ip命令十分靈活。例如,ip a s命令在功能上等效于ip addr show或ip address show。
3.用ip命令配置網絡適配器
也可以使用ip命令來分配IP地址信息。例如,下面的命令將所標注的IP地址和網絡掩碼分配給eth0網絡適配器:
# ip addr add 192.168.122.150/24 dev eth0
第一個參數(shù)192.168.122.150/24指定了新的IP地址和子網掩碼,下一個參數(shù)dev eth0說明了正在配置的設備。為保證修改有效,需要再次執(zhí)行ip addr show eth0命令看看當前的設置。
利用合適的選項,ip命令可以為選定的網卡修改很多其他配置。表3-5列出其中部分選項。
表3-5 ip命令選項

當然,無論是在考試中,還是對于想要遠程管理的服務器,需要確保所做修改在重啟后能夠保存下來。這就需要在/etc/sysconfig/network-scripts目錄的配置文件中做出合適的修改,稍后就會進行介紹。另外,根據(jù)定義,使用ip命令所做的任何修改都是暫時性的。
4.啟用和禁用網絡適配器
可使用ip命令啟用和禁用網絡適配器。例如,下面的命令可以禁用和再次啟用第一個以太網適配器:
# ip link set dev eth0 down # ip link set dev eth0 up
但是,還有幾個直觀的腳本是專為控制網卡而設計的:ifup和ifdown。與ip命令不同的是,它們都要調用/etc/sysconfig/network-scripts目錄中合適的配置文件和腳本。
例如,ifup eth0命令根據(jù)/etc/sysconfig/network-scripts目錄中的ifcfg-eth0配置文件和ifup-eth腳本啟用以太網卡eth0。
5. ip作為網絡診斷工具
地址解析協(xié)議(Address Resolution Protocol, ARP)協(xié)議在網絡接口的硬件地址(MAC)和一個IP地址之間建立對應關系。ip neigh命令輸出一個本地計算機的硬件和IP地址表。此命令可以檢測類似網絡上重復IP地址這樣的問題。此問題可能是由于不正確地配置系統(tǒng)或克隆虛擬機而引起的。如果需要,ip neigh命令可以用來手動設置或修改ARP表。由于硬件地址是不可路由的,因此ARP表僅限于本地網絡。下面是此命令的一個示例輸出,它顯示本地數(shù)據(jù)庫中的全部ARP記錄:
# ip neigh show 192.168.122.150 dev eth0 lladdr 52:a5:cb:54:52:a2 REACHABLE 192.168.100.100 dev eth0 lladdr 00:a0:c5:e2:49:02 STALE 192.168.122.1 dev eth0 lladdr 00:0e:2e:6d:9e:67 REACHABLE
輸出的第一列顯示了局域網中的已知IP地址,其后是網上鄰居所附加到的接口,以及其鏈接層地址(MAC地址)。最后一條記錄顯示了鄰居的硬件地址是否可達。STALE記錄可能表明,自上次從該主機收到數(shù)據(jù)包以后,其ARP緩存已超時。如果ARP表為空,則表示當前系統(tǒng)與本地網絡上其他系統(tǒng)沒有任何連接。
6.用ip route命令顯示路由表
ip命令功能很多。這個命令的一個重要形式是ip route,它顯示路由表。在功能上它等效于已被棄用的route命令。當使用-r開關選項時(ip -r route),此命令會查看/etc/hosts文件和DNS服務器,以顯示主機名,而不是數(shù)字IP地址。
本地系統(tǒng)的路由表通常包含了對默認網關地址的引用。例如,下面是ip route命令的輸出結果:
default via 192.168.122.1 dev eth0 proto static metric 1024 192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.50
已經棄用的netstat -nr命令也會輸出相同的路由表。在這個路由表中,網關地址是192.168.122.1。凡不是發(fā)送給192.168.122.0網絡的任何包都發(fā)送到這個網關地址(換句話說,查看此網站的第二層地址,并放到幀中,作為目標MAC地址)。位于網關地址的系統(tǒng)(通常是一個路由器)負責根據(jù)自己的路由表把包轉發(fā)到下一個路由器,直至到達一個與目標直接連接的路由器。
7.用dhclient命令動態(tài)配置IP地址
盡管命令的名稱經常發(fā)生變化,但是其功能還是一樣的。dhclient命令與網卡的設備名(如eth0)一起使用時,向DHCP服務器請求一個IP地址和其他功能:
# dhclient eth0
一般而言,由DHCP服務器配置的網絡選項包括IP地址、子網掩碼、訪問外部網絡的網關地址以及此網絡上任何DNS服務器的IP地址。
換言之,dhclient eth0命令不僅能像ip命令那樣分配IP地址,而且還會在路由表中建立默認的路由(用ip route命令可以得到路由表)。此外,它還會把DNS服務器的IP地址添加到/etc/resolv.conf配置文件中。
8.使用ss顯示網絡連接
ss命令取代了已被棄用的netstat工具來顯示網絡連接。通過使用正確的命令開關,它可以顯示偵聽和非偵聽TCP和UDP套接字。下面是我們喜歡使用的一個命令:
# ss -tuna4
這里命令使用IPv4(-4)顯示所有(-a)網絡套接字,并以數(shù)字格式(-n)顯示TCP(-t)和UDP(-u)協(xié)議。如果指定了-p開關,ss還會顯示使用每個套接字的進程的PID。圖3-9演示了基準服務器上的輸出。

圖3-9 ss -tuna4命令的輸出
在輸出的末尾,注意對等地址192.168.122.1:43910。43910端口是遠程服務器上的源端口。對應的本地地址192.168.122.50:22為來自192.168.122.1的連接指定了端口22(本地SSH服務)。還可能看到另一個具有相同端口號的條目,它表示相關的偵聽連接的SSH守護進程。輸出中的其他行表示其他偵聽服務。
- Windows Vista基礎與應用精品教程
- UNIX操作系統(tǒng)設計
- Google系統(tǒng)架構解密:構建安全可靠的系統(tǒng)
- Kali Linux滲透測試全流程詳解
- WordPress Mobile Web Development:Beginner's Guide
- 構建可擴展分布式系統(tǒng):方法與實踐
- Ganglia系統(tǒng)監(jiān)控
- STM32庫開發(fā)實戰(zhàn)指南:基于STM32F4
- 完美應用RHEL 8
- Linux網絡操作系統(tǒng)項目教程(RHEL 7.4/CentOS 7.4)(第3版)(微課版)
- Linux集群之美
- Zabbix監(jiān)控系統(tǒng)之深度解析和實踐
- 基于Arduino的嵌入式系統(tǒng)入門與實踐
- 微軟360度
- OpenSolaris系統(tǒng)管理