官术网_书友最值得收藏!

認證目標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守護進程。輸出中的其他行表示其他偵聽服務。

主站蜘蛛池模板: 思南县| 云安县| 商洛市| 景洪市| 清远市| 阜新市| 巍山| 淮安市| 陆良县| 太白县| 公主岭市| 绵竹市| 乌拉特前旗| 南川市| 车险| 乐陵市| 平远县| 岳池县| 自治县| 辽中县| 青川县| 资兴市| 南安市| 三河市| 依安县| 昆山市| 朝阳县| 元氏县| 宜君县| 永顺县| 锦州市| 察雅县| 德昌县| 华亭县| 广州市| 平遥县| 策勒县| 安岳县| 准格尔旗| 尖扎县| 嘉禾县|