運維技術指導【2】Linux服務器常見服務原理

1、 系統啓動過程

在這裏插入圖片描述
Linux啓動流程
1、加載BIOS
計算機電源加電質檢,首先加載基本輸入輸出系統(Basic Input Output System,BIOS),BIOS中包含硬件CPU、內存、硬盤等相關信息。

2.讀取MBR
讀取完BIOS信息,計算機將會查找BIOS所指定的硬盤MBR引導扇區,將其內容複製到0x7c00地址所在的物理內存中。被複制到物理內存的內容是Boot Loader,然後進行引導。

3.GRUB引導
GRUB啓動引導器是計算機啓動過程中運行的第一個軟件程序,當計算機讀取內存中的GRUB配置信息後,會根據其配置信息來啓動硬盤中不同的操作系統。

4.加載Kernel
計算機讀取內存映像,並進行解壓縮操作,屏幕一般會輸出“Uncompressing Linux”的提示,當解壓縮內核完成後,屏幕輸出“OK, booting the kernel”。系統將解壓後的內核放置在內存之中,並調用start_kernel()函數來啓動一系列的初始化函數並初始化各種設備,完成Linux核心環境的建立。

5.設定Inittab運行等級
內核加載完畢,會啓動Linux操作系統第一個守護進程init,然後通過該進程讀取/etc/inittab文件,/etc/inittab文件的作用是設定Linux的運行等級

6.加載rc.sysinit
讀取完運行級別,Linux系統執行的第一個用戶層文件/etc/rc.d/rc.sysinit,該文件功能包括:設定PATH運行變量、設定網絡配置、啓動swap分區、設定/proc、系統函數、配置Selinux等。

7.加載內核模塊
讀取/etc/modules.conf文件及/etc/modules.d目錄下的文件來加載系統內核模塊。該模塊文件,可以後期添加或者修改及刪除。

8.啓動運行級別程序
根據之前讀取的運行級別,操作系統會運行rc0.d到rc6.d中的相應的腳本程序,來完成相應的初始化工作和啓動相應的服務。其中以S開頭表示系統即將啓動的程序,如果以K開頭,則代表停止該服務。S和K後緊跟的數字爲啓動順序編號。

9.讀取rc.local文件
操作系統啓動完相應服務之後,會讀取執行/etc/rc.d/rc.local文件,可以將需要開機啓動的任務加入到該文件末尾,系統會逐行去執行並啓動相應命令。

10.執行/bin/login程序
執行/bin/login程序,啓動到系統登錄界面,操作系統等待用戶輸入用戶名和密碼,即可登錄到Shell終端,如圖3-7所示,輸入用戶名、密碼即可登錄Linux操作系統,至此Linux操作系統完整流程啓動完畢。

2、 web工作原理

1、用戶在瀏覽器中輸入要訪問的web站點地址或在已打開的站點點擊超鏈接。
2、由DNS進行域名解析,找到服務器的IP地址,向該地址指向的web服務器發出請求。
3、web服務器根據請求將URL地址轉換爲頁面所在的服務器上的文件全名,查找相應的文件。
4、若URL指向靜態文件,則服務器將文件通過http協議傳輸給用戶瀏覽器;若HTML文檔中嵌入了ASP,PHP,JSP等程序,則由服務器直接運行後返回給用戶;
如果web服務器所運行程序包含對數據庫的訪問,服務器會將查詢指令發送給數據庫服務器,對數據庫執行查詢操作,查詢結果由數據庫返回給web服務器,再由web服務器將結果潛入頁面,並以html格式發送給瀏覽器。
5、瀏覽器解釋html文檔,在客戶端屏幕上展示結果。

3、 dhcp工作原理

在這裏插入圖片描述
1、客戶端:利用廣播數據包發送搜索DHCP服務器
客戶端網絡設置爲dhcp獲取ip,則當客戶端開機或重啓網卡時,客戶端主機會發送出查找DHCP服務器的UDP數據包(discover)給所有物理網段內的計算機。因爲客戶端還不知道自己屬於哪一個網絡,所以該數據包的來源地址會爲0.0.0.0,而目的地址則爲255.255.255.255。一般主機接收到這個數據包之後會直接丟棄,若局域網內有DHCP服務器,則會開始後續行爲。

2、服務器端:提供客戶端網絡相關的租約以供選擇。(dhcp offer)
DHCP服務器在監聽到客戶端發出的dhcp discover廣播後,會針對這個客戶端的硬件地址( MAC)與本身的設置數據進行下列工作:

  • 到服務器的日誌文件中查找該用戶之前是否曾經租用過某個IP,若有且該IP目前無人使用,則提供此IP給客戶端。
  • 若配置文件針對該MAC地址提供特定的固定IP時,則提供該固定的IP給客戶端。
  • 若不符合上述兩個條件,則隨機選取當前沒有被使用的IP參數給客戶端,並記錄下來。

3、客戶端:決定選擇DHCP服務器提供的網絡參數租約並向服務器確認。
客戶端通常選擇最先抵達的DHCP offer,當決定好使用此服務器的網絡參數租約後,客戶端便開始使用這組網絡參數來配置自己的網絡環境。此外,客戶端會發送一個dhcp request廣播數據包給所有物理網段內的主機,告知已經接受該服務器的租約。同時,客戶端還會向網絡發送一個ARP封包,查詢網絡上面有沒有其他機器使用該IP地址;如果發現該IP地址已經被佔用,客戶端則會送出一個DHCPDECLIENT包給DHCP服務器,拒絕接受其DHCP offer,並重新發送DHCP discover信息。

4、服務器端:記錄該次租約行爲後並向客戶端發送響應數據包信息以確認客戶端的使用。
當服務器端收到客戶端的確認選擇後,服務器會回送確認的dhcp ack響應數據包,並且告知客戶端這個網絡參數租約的期限,並且開始租約計時。

4、 dns解析原理

在這裏插入圖片描述

  1. 在瀏覽器中輸入www. google .com域名,操作系統會先檢查自己本地的hosts文件是否有這個網址映射關係,如果有,就先調用這個IP地址映射,完成域名解析。
  2. 如果hosts裏沒有這個域名的映射,則查找本地DNS解析器緩存,是否有這個網址映射關係,如果有,直接返回,完成域名解析。
  3. 如果hosts與本地DNS解析器緩存都沒有相應的網址映射關係,首先會找TCP/IP參數中設置的首選DNS服務器,在此我們叫它本地DNS服務器,此服務器收到查詢時,如果要查詢的域名,包含在本地配置區域資源中,則返回解析結果給客戶機,完成域名解析,此解析具有權威性。
  4. 如果要查詢的域名,不由本地DNS服務器區域解析,但該服務器已緩存了此網址映射關係,則調用這個IP地址映射,完成域名解析,此解析不具有權威性。
  5. 如果本地DNS服務器本地區域文件與緩存解析都失效,則根據本地DNS服務器的設置(是否設置轉發器)進行查詢,如果未用轉發模式,本地DNS就把請求發至13臺根DNS,根DNS服 務器收到請求後會判斷這個域名(.com)是誰來授權管理,並會返回一個負責該頂級域名服務器的一個IP。
  6. 本地DNS服務器收到IP信息後,將會聯繫負責.com域的這臺服務器。這臺負責.com域的服務器收到請求後,如果自己無法解析,它就會找一個管理google .com的DNS服務器地址給本地DNS服務器。
    當本地DNS服務器收到這個地址後,就會找google.com域服務器,重複上面的動作,進行查詢,直至找到www. google.com主機。
  7. 如果用的是轉發模式,本地DNS服務 器就會把請求轉發至上一級DNS服務器,由上一級服務器進行解析,上一級服務器如果不能解析,或找根DNS或把請求轉至上上級,以此循環。找到最後把結果返回給本地DNS服務器,由此DNS服務器再返回給客戶機。

5、 nfs的作用

NFS(Network File System)功能是可以通過網絡,讓不同的機器、不同的操作系統可以共享彼此的文件。NFS服務器可以讓PC將網絡中的NFS服務器共享的目錄掛載到本地端的文件系統中,而在本地端的系統中來看,那個遠程主機的目錄就好像是自己的一個磁盤分區一樣,在使用上相當便利;

6、 ftp的主動模式和被動模式

主動模式/standard/port方式

主動模式下,FTP客戶端從任意的非特殊的端口(N > 1023)連入到FTP服務器的命令端口–21端口。然後客戶端在N+1(N+1 >= 1024)端口監聽,並且通過N+1(N+1 >= 1024)端口發送命令給FTP服務器。服務器會反過來連接用戶本地指定的數據端口,比如20端口。

被動模式/passive/pasv方式

在被動方式FTP中,命令連接和數據連接都由客戶端,這樣就可以解決從服務器到客戶端的數據端口的入方向連接被防火牆過濾掉的問題。

當開啓一個FTP連接時,客戶端打開兩個任意的非特權本地端口(N >; 1024和N+1)。第一個端口連接服務器的21端口,但與主動方式的FTP不同,客戶端不會提交PORT命令並允許服務器來回連它的數據端口,而是提交PASV命令。這樣做的結果是服務器會開啓一個任意的非特權端口(P >; 1024),併發送PORT P命令給客戶端。然後客戶端發起從本地端口N+1到服務器的端口P的連接用來傳送數據。

7、 pxe+kickstart安裝系統原理

1、 PXE Client向DHCP發送請求
PXE Client從自己的PXE網卡啓動,通過PXE BootROM(自啓動芯片)會以UDP(簡單用戶數據報文協議)發送一個廣播請求,向本網絡中的DHCP服務器索取IP

2、DHCP服務器提供信息
DHCP服務器收到客戶端的請求,驗證是否來自合法的PXEClient的請求,驗證通過它將給客戶端一個“提供”響應,這個“提供”響應中包含了爲客戶端分配的IP地址、pxelinux啓動程序(TFTP)位置,以及配置文件所在位置。

3、PXE客戶端請求下載啓動文件
客戶端收到服務器的“迴應”後,會迴應一個幀,以請求傳送啓動所需文件。這些啓動文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。

4、Boot Server響應客戶端請求並傳送文件
當服務器收到客戶端的請求後,他們之間之後將有更多的信息在客戶端與服務器之間作應答,用以決定啓動參數。BootROM由TFTP通訊協議從Boot Server下載啓動安裝程序鎖必須的文件(pxelinux.0、pxelinux.cfg/default)。default文件下載完成後,會根據該文件中定義的引導順序,啓動Linux安裝程序的引導內核。

5、請求下載自動應答文件
客戶端通過pxelinux.cfg/default文件成功的引導Linux安裝內核後,安裝程序首先必須確定你通過什麼安裝介質來安裝Linux,如果是通過網絡安裝(NFS、FTP、HTTP),則會在這個時候初始化網絡,並定位安裝源位置。接着會讀取default文件中指定的自動應答文件ks.cfg所在位置,根據該位置請求下載該文件。

注意:
這裏有個問題,在第2步和第5步初始化2次網絡了,這是由於PXE獲取的是安裝用的內核以及安裝程序等,而安裝程序要獲取的是安裝系統所需的二進制包以及配置文件。因此PXE模塊和安裝程序是相對獨立的,PXE的網絡配置並不能傳遞給安裝程序,從而進行兩次獲取IP地址過程,但IP地址在DHCP的租期內是一樣的。

6、客戶端安裝操作系統
將ks.cfg文件下載回來後,通過該文件找到OSServer,並按照該文件的配置請求下載安裝過程需要的軟件包。OS Server和客戶端建立連接後,將開始傳輸軟件包,客戶端將開始安裝操作系統。安裝完成後,將提示重新引導計算機。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章