版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、LINUX原理及應(yīng)用武漢大學(xué)計(jì)算機(jī)學(xué)院 鄭鵬 第12章 Linux網(wǎng)絡(luò)應(yīng)用 Linux是以Intel x86系列CPU為硬件平臺(tái)的32位多用戶多任務(wù)操作系統(tǒng),具備強(qiáng)大的網(wǎng)絡(luò)服務(wù)功能,是商用網(wǎng)絡(luò)服務(wù)器首選的操作系統(tǒng)之一,根據(jù)需要,Linux可安裝成各種各樣的服務(wù)器,比如數(shù)據(jù)庫服務(wù)器、Web服務(wù)器、FTP服務(wù)器、DNS服務(wù)器、DHCP服務(wù)器、郵件服務(wù)、代理服務(wù)器、防火墻等。在本章,我們以Red Hat Linux系列為例,介紹如何安裝與配置Web服務(wù)器、FTP服務(wù)器、DNS服務(wù)器和郵件服務(wù)器。 12.1 Linux對(duì)網(wǎng)絡(luò)的支持 在一個(gè)網(wǎng)絡(luò)系統(tǒng)中,操作系統(tǒng)的地位是非常重要的。Linux網(wǎng)絡(luò)操作系統(tǒng)以
2、高效性和靈活性而著稱,其組網(wǎng)能力非常強(qiáng)大,它的TCP/IP代碼是最高級(jí)的。Linux不僅提供了對(duì)當(dāng)前的TCP/IP協(xié)議的完全支持,也包括了對(duì)下一代Internet協(xié)議IPv6的支持,Linux內(nèi)核還包括了IP防火墻代碼、IP防偽、IP服務(wù)質(zhì)量控制等許多安全特性。12.1.1 互聯(lián)網(wǎng)TCP/IP的基本結(jié)構(gòu) 傳輸控制協(xié)議/互連網(wǎng)協(xié)議TCP/IP(Transmission Control Protocol/Internet Protocol)是一個(gè)使用非常普遍的網(wǎng)絡(luò)互連標(biāo)準(zhǔn)協(xié)議。 12.1.1 互聯(lián)網(wǎng)TCP/IP的基本結(jié)構(gòu)TCP/IP是一組協(xié)議的代名詞。根據(jù)TCP/IP協(xié)議,互聯(lián)網(wǎng)分為4層,加上最底
3、層的物理層一共是5層,每一層的設(shè)計(jì)各有其目的,負(fù)責(zé)不同的功能。1、網(wǎng)絡(luò)接口層:負(fù)責(zé)數(shù)據(jù)幀的發(fā)送和接收,幀是獨(dú)立的網(wǎng)絡(luò)信息傳輸單元。網(wǎng)絡(luò)接口層將幀放在網(wǎng)上,或從網(wǎng)上把幀取下來。網(wǎng)絡(luò)接口層屏蔽了網(wǎng)絡(luò)環(huán)境中網(wǎng)絡(luò)設(shè)備的多樣性,實(shí)現(xiàn)數(shù)據(jù)包(幀)在物理網(wǎng)絡(luò)間的可靠傳輸。2、互聯(lián)網(wǎng)層:互聯(lián)協(xié)議將數(shù)據(jù)包封裝成Internet數(shù)據(jù)報(bào),并運(yùn)行必要的路由算法。3、傳輸層:傳輸協(xié)議在計(jì)算機(jī)之間提供通信會(huì)話。傳輸協(xié)議的選擇根據(jù)數(shù)據(jù)傳輸方式而定。 4、應(yīng)用層:應(yīng)用程序通過這一層訪問網(wǎng)絡(luò)。應(yīng)用層包含了豐富的應(yīng)用協(xié)議,如HTTP、FTP、SMTP、Telnet及SNMP等。5、物理層:對(duì)應(yīng)于網(wǎng)絡(luò)的基本硬件,這也是Intern
4、et物理構(gòu)成,即我們可以看得見的硬件設(shè)備,如PC機(jī)、互連網(wǎng)服務(wù)器、網(wǎng)絡(luò)設(shè)備等,必須對(duì)這些硬件設(shè)備的電氣特性作一個(gè)規(guī)范,使這些設(shè)備都能夠互相連接并兼容使用。12.1.2 Linux網(wǎng)絡(luò)中的層Linux 操作系統(tǒng)的最大特性之一就是它的網(wǎng)絡(luò)棧。它最初源于 BSD 的網(wǎng)絡(luò)棧,具有一套非常干凈的接口,組織得非常好。其接口范圍從協(xié)議無關(guān)層(例如通用 socket 層接口或設(shè)備層)到各種網(wǎng)絡(luò)協(xié)議的具體層。12.1.2 Linux網(wǎng)絡(luò)中的層Linux 中基本網(wǎng)絡(luò)棧的介紹分為四層的 Internet 模型(如圖所示)。 12.1.2 Linux網(wǎng)絡(luò)中的層鏈路層是指提供對(duì)物理層訪問的設(shè)備驅(qū)動(dòng)程序,這可以是各種介質(zhì)
5、,例如串口鏈路或以太網(wǎng)設(shè)備。 網(wǎng)絡(luò)層,它負(fù)責(zé)將報(bào)文定向到目標(biāo)位置。 傳輸層,負(fù)責(zé)端到端的通信(例如,在一臺(tái)主機(jī)內(nèi)部)。 應(yīng)用層,它通常是一個(gè)語義層,能夠理解要傳輸?shù)臄?shù)據(jù)。例如,超文本傳輸協(xié)議(HTTP)就負(fù)責(zé)傳輸服務(wù)器和客戶機(jī)之間對(duì) Web 內(nèi)容的請(qǐng)求與響應(yīng)。 12.1.2 Linux網(wǎng)絡(luò)中的層核心網(wǎng)絡(luò)架構(gòu)下圖提供了 Linux 網(wǎng)絡(luò)棧的高級(jí)視圖。最上面是用戶空間層,或稱為應(yīng)用層,其中定義了網(wǎng)絡(luò)棧的用戶。底部是物理設(shè)備,提供了對(duì)網(wǎng)絡(luò)的連接能力(串口或諸如以太網(wǎng)之類的高速網(wǎng)絡(luò))。中間是內(nèi)核空間,即網(wǎng)絡(luò)子系統(tǒng),也是本文介紹的重點(diǎn)。流經(jīng)網(wǎng)絡(luò)棧內(nèi)部的是 socket 緩沖區(qū)(sk_buffs),它負(fù)責(zé)
6、在源和匯點(diǎn)之間傳遞報(bào)文數(shù)據(jù)。 12.1.2 Linux網(wǎng)絡(luò)中的層Linux 高級(jí)網(wǎng)絡(luò)棧架構(gòu) 12.1.2 Linux網(wǎng)絡(luò)中的層系統(tǒng)調(diào)用接口層,實(shí)質(zhì)是一個(gè)面向用戶空間應(yīng)用程序的接口調(diào)用庫,向用戶空間應(yīng)用程序提供使用網(wǎng)絡(luò)服務(wù)的接口。 12.1.2 Linux網(wǎng)絡(luò)中的層協(xié)議無關(guān)接口層,就是SOCKET層,這一層的目的是屏蔽底層的不同協(xié)議(更準(zhǔn)確的來說主要是TCP與UDP,當(dāng)然還包括RAW IP, SCTP等),以便與系統(tǒng)調(diào)用層之間的接口可以簡(jiǎn)單,統(tǒng)一。簡(jiǎn)單的說,不管我們應(yīng)用層使用什么協(xié)議,都要通過系統(tǒng)調(diào)用接口來建立一個(gè)SOCKET,這個(gè)SOCKET其實(shí)是一個(gè)巨大的sock結(jié)構(gòu),它和下面一層的網(wǎng)絡(luò)協(xié)議
7、層聯(lián)系起來,屏蔽了不同的網(wǎng)絡(luò)協(xié)議的不同,只吧數(shù)據(jù)部分呈獻(xiàn)給應(yīng)用層(通過系統(tǒng)調(diào)用接口來呈獻(xiàn))。 12.1.2 Linux網(wǎng)絡(luò)中的層網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn)層,毫無疑問,這是整個(gè)協(xié)議棧的核心。這一層主要實(shí)現(xiàn)各種網(wǎng)絡(luò)協(xié)議,最主要的當(dāng)然是IP,ICMP,ARP,RARP,TCP,UDP等。這一層包含了很多設(shè)計(jì)的技巧與算法。它們都是在 linux/net/ipv4/af_inet.c 文件中一個(gè)名為 inet_init 的函數(shù)中進(jìn)行初始化的。 inet_init 函數(shù)使用 proto_register 函數(shù)來注冊(cè)每個(gè)內(nèi)嵌協(xié)議。這個(gè)函數(shù)是在 linux/net/core/sock.c 中定義的,除了可以將這個(gè)協(xié)議添加
8、到活動(dòng)協(xié)議列表中之外,如果需要,該函數(shù)還可以選擇分配一到多個(gè) slab 緩存。通過 linux/net/ipv4/目錄中udp.c和raw.c文件中的proto接口,可以了解各個(gè)協(xié)議是如何標(biāo)識(shí)自己的。這些協(xié)議接口每個(gè)都按照類型和協(xié)議映射到 inetsw_array,該數(shù)組將內(nèi)嵌協(xié)議與操作映射到一起。inetsw_array 結(jié)構(gòu)及其關(guān)系如后圖所示。最初,會(huì)調(diào)用 inet_init 中的 inet_register_protosw 將這個(gè)數(shù)組中的每個(gè)協(xié)議都初始化為 inetsw。函數(shù) inet_init 也會(huì)對(duì)各個(gè) inet 模塊進(jìn)行初始化,例如 ARP、ICMP 和 IP 模塊,以及 TCP
9、和 UDP 模塊。12.1.2 Linux網(wǎng)絡(luò)中的層Internet 協(xié)議數(shù)組結(jié)構(gòu)圖 12.1.2 Linux網(wǎng)絡(luò)中的層注意在前圖中,proto 結(jié)構(gòu)定義了傳輸特有的方法,而 proto_ops 結(jié)構(gòu)則定義了通用的 socket 方法??梢酝ㄟ^調(diào)用 inet_register_protosw 將其他協(xié)議加入到 inetsw 協(xié)議中。例如,SCTP 就是通過調(diào)用 linux/net/sctp/protocol.c 中的 sctp_init 加入其中的。socket 中的數(shù)據(jù)移動(dòng)是使用一個(gè)socket 緩沖區(qū)(sk_buff)的核心結(jié)構(gòu)實(shí)現(xiàn)的。sk_buff 中包含了報(bào)文數(shù)據(jù),以及涉及協(xié)議棧中多個(gè)
10、層次的狀態(tài)數(shù)據(jù)。所發(fā)送或接收的每個(gè)報(bào)文都是使用一個(gè) sk_buff 表示。sk_buff 結(jié)構(gòu)是在 linux/include/linux/skbuff.h 中定義的,如后圖所示。12.1.2 Linux網(wǎng)絡(luò)中的層Socket 緩沖區(qū)及其與其他結(jié)構(gòu)的關(guān)系圖 12.1.2 Linux網(wǎng)絡(luò)中的層如前圖所示,多個(gè) sk_buff 可以針對(duì)某個(gè)給定連接鏈接在一起。每個(gè) sk_buff 都在設(shè)備結(jié)構(gòu)(net_device)中標(biāo)識(shí)報(bào)文發(fā)送的目的地,或者接收?qǐng)?bào)文的來源地。由于每個(gè)報(bào)文都是使用一個(gè) sk_buff 表示的,因此報(bào)文頭都可以通過一組指針(th、iph 和 mac用于 Media Access C
11、ontrol 或者 MAC 頭)方便地進(jìn)行定位。由于 sk_buff 是 socket 數(shù)據(jù)管理的中心,因此創(chuàng)建了很多支持函數(shù)來對(duì)它們進(jìn)行管理。其中有些函數(shù)用于創(chuàng)建和銷毀 sk_buff 結(jié)構(gòu),或?qū)λM(jìn)行克隆或排隊(duì)管理。針對(duì)給定的 socket,Socket 緩沖區(qū)可以鏈接在一起,這樣可以包含眾多信息,包括到協(xié)議頭的鏈接、時(shí)間戳(報(bào)文是何時(shí)發(fā)送或接收的),以及與這個(gè)報(bào)文相關(guān)的設(shè)備。12.1.2 Linux網(wǎng)絡(luò)中的層與具體設(shè)備無關(guān)的驅(qū)動(dòng)接口層,這一層的目的主要是為了統(tǒng)一不同的接口卡的驅(qū)動(dòng)程序與網(wǎng)絡(luò)協(xié)議層的接口,它將各種不同的驅(qū)動(dòng)程序的功能統(tǒng)一抽象為幾個(gè)特殊的動(dòng)作,如open,close,init
12、等,這一層可以屏蔽底層不同的驅(qū)動(dòng)程序。 首先,設(shè)備驅(qū)動(dòng)程序可能會(huì)通過調(diào)用 register_netdevice 或 unregister_netdevice 在內(nèi)核中進(jìn)行注冊(cè)或注銷。調(diào)用者首先填寫 net_device 結(jié)構(gòu),然后傳遞這個(gè)結(jié)構(gòu)進(jìn)行注冊(cè)。內(nèi)核調(diào)用它的 init 函數(shù)(如果定義了這種函數(shù)),然后執(zhí)行一組健全性檢查,并創(chuàng)建一個(gè) sysfs 條目,然后將新設(shè)備添加到設(shè)備列表中(內(nèi)核中的活動(dòng)設(shè)備鏈表)。在 linux/include/linux/netdevice.h 中可以找到這個(gè) net_device 結(jié)構(gòu)。這些函數(shù)都是在 linux/net/core/dev.c 中實(shí)現(xiàn)的。12.1
13、.2 Linux網(wǎng)絡(luò)中的層要從協(xié)議層向設(shè)備中發(fā)送 sk_buff,就需要使用 dev_queue_xmit 函數(shù)。這個(gè)函數(shù)可以對(duì) sk_buff 進(jìn)行排隊(duì),從而由底層設(shè)備驅(qū)動(dòng)程序進(jìn)行最終傳輸(使用 sk_buff 中引用的 net_device 或 sk_buff-dev 所定義的網(wǎng)絡(luò)設(shè)備)。dev 結(jié)構(gòu)中包含了一個(gè)名為 hard_start_xmit 的方法,其中保存有發(fā)起 sk_buff 傳輸所使用的驅(qū)動(dòng)程序函數(shù)。報(bào)文的接收通常是使用 netif_rx 執(zhí)行的。當(dāng)?shù)讓釉O(shè)備驅(qū)動(dòng)程序接收一個(gè)報(bào)文(包含在所分配的 sk_buff 中)時(shí),就會(huì)通過調(diào)用 netif_rx 將 sk_buff 上傳至
14、網(wǎng)絡(luò)層。然后,這個(gè)函數(shù)通過 netif_rx_schedule 將 sk_buff 在上層協(xié)議隊(duì)列中進(jìn)行排隊(duì),供以后進(jìn)行處理??梢栽?linux/net/core/dev.c 中找到 dev_queue_xmit 和 netif_rx 函數(shù)。最近,內(nèi)核中引入了一種新的應(yīng)用程序編程接口(NAPI),該接口允許驅(qū)動(dòng)程序與設(shè)備無關(guān)層(dev)進(jìn)行交互。有些驅(qū)動(dòng)程序使用的是 NAPI,但是大多數(shù)驅(qū)動(dòng)程序仍然在使用老式的幀接收接口(比例大約是 6 比 1)。NAPI 在高負(fù)載的情況下可以產(chǎn)生更好的性能,避免了為每個(gè)傳入的幀都產(chǎn)生中斷。12.1.2 Linux網(wǎng)絡(luò)中的層設(shè)備驅(qū)動(dòng)程序,就是建立與硬件的接口層
15、。負(fù)責(zé)管理物理網(wǎng)絡(luò)設(shè)備的設(shè)備驅(qū)動(dòng)程序。例如以太網(wǎng)設(shè)備使用的以太網(wǎng)驅(qū)動(dòng)程序都是這一層的設(shè)備。在進(jìn)行初始化時(shí),設(shè)備驅(qū)動(dòng)程序會(huì)分配一個(gè) net_device 結(jié)構(gòu),然后使用必須的程序?qū)ζ溥M(jìn)行初始化。這些程序中有一個(gè)是 dev-hard_start_xmit,它定義了上層應(yīng)該如何對(duì) sk_buff 排隊(duì)進(jìn)行傳輸。這個(gè)程序的參數(shù)為 sk_buff。這個(gè)函數(shù)的操作取決于底層硬件,但是通常 sk_buff 所描述的報(bào)文都會(huì)被移動(dòng)到硬件環(huán)或隊(duì)列中。就像是設(shè)備無關(guān)層中所描述的一樣,對(duì)于 NAPI 兼容的網(wǎng)絡(luò)驅(qū)動(dòng)程序來說,幀的接收使用了 netif_rx 和 netif_receive_skb 接口。NAPI 驅(qū)
16、動(dòng)程序會(huì)對(duì)底層硬件的能力進(jìn)行一些限制。 設(shè)備驅(qū)動(dòng)程序在 dev 結(jié)構(gòu)中配置好自己的接口之后,調(diào)用 register_netdevice 便可以使用該配置。在 linux/drivers/net 中可以找出網(wǎng)絡(luò)設(shè)備專用的驅(qū)動(dòng)程序。12.1.3 Linux網(wǎng)絡(luò)配置 要建立一個(gè)Linux服務(wù)器首先要了解Linux環(huán)境下和網(wǎng)絡(luò)服務(wù)相關(guān)配置文件的含義及如何進(jìn)行配置。在Linux系統(tǒng)中,TCP/IP網(wǎng)絡(luò)是通過若干個(gè)文本文件進(jìn)行配置的,可以通過編輯這些文件來完成聯(lián)網(wǎng)工作,這些文件一般在/etc目錄下,在系統(tǒng)啟動(dòng)的過程中,將執(zhí)行一個(gè)shell腳本程序/etc/rc.d/init.d/network來完成網(wǎng)絡(luò)的
17、配置,該程序中調(diào)用了網(wǎng)絡(luò)配置命令/sbin/ifconfig,由/sbin/ifconfig命令讀取各個(gè)網(wǎng)絡(luò)接口卡(網(wǎng)卡)的配置文件來配置接口。例如系統(tǒng)中的第一塊以太網(wǎng)卡(設(shè)備名eth0)其配置文件是/etc/sysconfig/network-scripts/ifcfg ifcfg-eth0。這些配置文件用戶可以直接編輯文件的內(nèi)容。 12.1.3 Linux網(wǎng)絡(luò)配置下面介紹幾個(gè)基本的TCP/IP網(wǎng)絡(luò)配置文件。1、/etc/sysconfig/network-scripts/ifcfg ifcfg-ethN文件在RedHat中網(wǎng)絡(luò)設(shè)備的配置文件保存在/etc/sysconfig/network
18、-scripts目錄下,ifcfg-eth0包含第一塊網(wǎng)卡的配置信息,ifcfg-eth1包含第二塊網(wǎng)卡的配置信息。在啟動(dòng)時(shí),系統(tǒng)通過讀取這個(gè)配置文件決定某個(gè)網(wǎng)卡是否啟動(dòng)和如何配置。下面是/etc/sysconfig/network-scripts/ifcfg-eth0文件的示例:DEVICE=eth0 表示物理設(shè)備的名字IPADDR= 表示賦給該網(wǎng)卡的IP地址NETMASK= 表示子網(wǎng)掩碼BROADCAST=55 表示廣播地址ONBOOT=yes 啟動(dòng)時(shí)是否激活該卡BOOTPROTO=none none:無須啟動(dòng)協(xié)議 bootp:使用bootp協(xié)議 dhcp:使用dhcp協(xié)議GATEWAY
19、表示默認(rèn)網(wǎng)關(guān)若希望手工修改網(wǎng)絡(luò)地址或增加新的網(wǎng)絡(luò)連接,可以通過修改對(duì)應(yīng)的文件ifcfg-ethN或創(chuàng)建新的文件來實(shí)現(xiàn)。 12.1.3 Linux網(wǎng)絡(luò)配置2、/etc/resolv.conf文件文件/etc/resolv.conf配置DNS客戶端,它包含了DNS服務(wù)器地址和域名搜索配置,每一行應(yīng)包含一個(gè)關(guān)鍵字和一個(gè)或多個(gè)的由空格隔開的參數(shù)。下面是一個(gè)例子文件:search nameserver nameserver “search域名”表示當(dāng)提供了一個(gè)不包括完全域名的主機(jī)名時(shí),在該主機(jī)名后添加 的后綴;“nameserver”表示解析域名時(shí)使用該地址指定的主機(jī)為域名服務(wù)器。其中域名服務(wù)器是按照文
20、件中出現(xiàn)的順序來查詢的。 12.1.3 Linux網(wǎng)絡(luò)配置3、/etc/sysconfig/network文件該文件用來指定服務(wù)器上的網(wǎng)絡(luò)配置信息,下面是一個(gè)示例:NETWORK=yes 網(wǎng)絡(luò)是否被配置RORWARD_IPV4=yes 是否開啟IP轉(zhuǎn)發(fā)功能HOSTNAME=whucs 表示服務(wù)器的主機(jī)名GAREWAY= 表示網(wǎng)絡(luò)網(wǎng)關(guān)的IP地址GATEWAYDEV=eth0 表示網(wǎng)關(guān)的設(shè)備名為了和一些較老版本軟件相兼容,“/etc/HOSTNAME”文件應(yīng)該用和HOSTNAME = hostname相同的主機(jī)名。 12.1.3 Linux網(wǎng)絡(luò)配置4、/etc/hosts文件當(dāng)機(jī)器啟動(dòng)時(shí),在可以查
21、詢DNS以前,機(jī)器需要查詢一些主機(jī)名到IP地址的匹配。這些匹配信息存放在/etc/hosts文件中。在沒有域名服務(wù)器情況下,系統(tǒng)上的所有網(wǎng)絡(luò)程序都通過查詢?cè)撐募斫馕鰧?duì)應(yīng)于某個(gè)主機(jī)名的IP地址。下面是一個(gè)/etc/hosts文件的示例: Localhost 最左邊一列是主機(jī)IP信息,中間一列是主機(jī)名。任何后面的列都是該主機(jī)的別名。 12.1.3 Linux網(wǎng)絡(luò)配置5、/etc/HOSTNAME文件/etc/HOSTNAME文件保存了系統(tǒng)的主機(jī)名稱,即系統(tǒng)的正規(guī)域名,在Red Hat中,主機(jī)名保存在/set/sysconfig/network文件的一個(gè)變量中,該變量稱為HOSTNAME。在系統(tǒng)啟
22、動(dòng)過程中,初始化腳本/etc/rc.d/rc.sysinit使用hostname命令將系統(tǒng)的主機(jī)名設(shè)置為/set/sysconfig/network中變量HOSTNAME所定義的名稱。/etc/rc.d/rc.sysinit腳本同時(shí)將主機(jī)名保存在/etc/HOSTNAME文件中。 12.1.4 網(wǎng)絡(luò)配置命令 Linux同時(shí)提供了一組強(qiáng)有力的網(wǎng)絡(luò)命令來為用戶服務(wù),這些工具能夠幫助用戶進(jìn)行網(wǎng)絡(luò)設(shè)定、檢查網(wǎng)絡(luò)狀況、登錄到遠(yuǎn)程計(jì)算機(jī)上、傳輸文件和執(zhí)行遠(yuǎn)程命令等。其中一些命令像ping、ftp、telnet、route、netstat等在其它操作系統(tǒng)上也能看到,但也有一些Unix/Linux系統(tǒng)獨(dú)有的命
23、令,如ifconfig、finger、mail等。Linux網(wǎng)絡(luò)操作命令的一個(gè)特點(diǎn)是,命令參數(shù)選項(xiàng)和功能很多,一個(gè)命令往往還可以實(shí)現(xiàn)其它命令的功能。下面介紹幾個(gè)基本的TCP/IP網(wǎng)絡(luò)配置命令。 1ifconfig 命令 ifconfig用于查看和更改網(wǎng)絡(luò)接口的地址和參數(shù),包括IP地址、網(wǎng)絡(luò)掩碼、廣播地址,使用權(quán)限是超級(jí)用戶。ifconfig是用來設(shè)置和配置網(wǎng)卡的命令行工具。使用該命令的好處是無須重新啟動(dòng)機(jī)器。如:要賦給eth0接口IP地址9 并且馬上激活它,使用下面命令:#ifconfig eth0 9 netmask 28 broadcast 27 該命令的作用是設(shè)置網(wǎng)卡eth0的IP地址、
24、網(wǎng)絡(luò)掩碼和網(wǎng)絡(luò)的本地廣播地址。若運(yùn)行不帶任何參數(shù)的ifconfig命令,這個(gè)命令將顯示機(jī)器所有激活接口的信息。帶有“-a”參數(shù)的命令則顯示所有接口的信息,包括沒有激活的接口。注意,用ifconfig命令配置的網(wǎng)絡(luò)設(shè)備參數(shù),機(jī)器重新啟動(dòng)以后將會(huì)丟失。如果要暫停某個(gè)網(wǎng)絡(luò)接口的工作,可以使用down參數(shù):#ifconfig eth0 down 2route命令 route命令是用來查看和設(shè)置Linux系統(tǒng)的路由信息,以實(shí)現(xiàn)與其它網(wǎng)絡(luò)的通信。要實(shí)現(xiàn)兩個(gè)不同的子網(wǎng)之間的通信,需要一臺(tái)連接兩個(gè)網(wǎng)絡(luò)的路由器,或者同時(shí)位于兩個(gè)網(wǎng)絡(luò)的網(wǎng)關(guān)來實(shí)現(xiàn)。在Linux系統(tǒng)中,設(shè)置路由通常是為了解決以下問題:該Linux系
25、統(tǒng)在一個(gè)局域網(wǎng)中,局域網(wǎng)中有一個(gè)網(wǎng)關(guān),能夠讓機(jī)器訪問Internet,那么就需要將這臺(tái)機(jī)器的IP地址設(shè)置為L(zhǎng)inux機(jī)器的默認(rèn)路由。使用下面命令可以增加一個(gè)默認(rèn)路由:route add 而刪除一個(gè)路由,可以使用下面命令:route del -host 54 gw 54 /刪除路由 3netstat命令 檢查整個(gè)Linux網(wǎng)絡(luò)狀態(tài)。netstat主要用于Linux察看自身的網(wǎng)絡(luò)狀況,如開啟的端口、在為哪些用戶服務(wù),以及服務(wù)的狀態(tài)等。此外,它還顯示系統(tǒng)路由表、網(wǎng)絡(luò)接口狀態(tài)等??梢哉f,它是一個(gè)綜合性的網(wǎng)絡(luò)狀態(tài)的察看工具。在默認(rèn)情況下,netstat只顯示已建立連接的端口。如果要顯示處于監(jiān)聽狀態(tài)的所有
26、端口,使用-a參數(shù)即可:#netstat aActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 *:32768*:*LISTENtcp 0 0 *:32769*:*LISTENtcp 0 0 *:nfs*:*LISTENtcp 0 0 *:32770*:*LISTENtcp 0 0 *:868*:*LISTENtcp 0 0 *:617*:*LISTENtcp 0 0 *:mysql*:*LISTENtcp 0 0 *:netbios-s
27、sn*:*LISTENtcp 0 0 *:sunrpc*:*LISTENtcp 0 0 *:10000*:*LISTENtcp 0 0 *:http*:*LISTEN.上面顯示出,這臺(tái)主機(jī)同時(shí)提供HTTP、FTP、NFS、MySQL等服務(wù)。4ping命令 ping檢測(cè)主機(jī)網(wǎng)絡(luò)接口狀態(tài),使用權(quán)限是所有用戶。通常使用ping 命令檢測(cè)網(wǎng)絡(luò)是否連通,它使用ICMP協(xié)議。但是有時(shí)會(huì)有這樣的情況,我們可以瀏覽器查看一個(gè)網(wǎng)頁,但是卻無法ping通,這是因?yàn)橐恍┚W(wǎng)站處于安全考慮安裝了防火墻。另外,也可以在自己計(jì)算機(jī)上試一試,通過下面的方法使系統(tǒng)對(duì)ping沒有反應(yīng):#echo 1 /proc/sys/net/
28、ipv4/icmp_echo_ignore_all 5traceroute命令 traceroute命令可以檢測(cè)交換機(jī)到目的地之間數(shù)據(jù)報(bào)經(jīng)過的路徑。與ping命令不同,traceroute不但可以測(cè)試網(wǎng)絡(luò)是否連通,還可以獲知在數(shù)據(jù)包的傳輸路徑中哪一個(gè)地方出現(xiàn)問題。traceroute命令的輸出信息包括到達(dá)目的地經(jīng)過的所有網(wǎng)關(guān)的IP地址和到該網(wǎng)關(guān)所用的時(shí)間,如果某網(wǎng)關(guān)超時(shí)則顯示“*”。只有管理員權(quán)限的用戶才可以使用traceroute命令。例如,測(cè)試交換機(jī)發(fā)出的數(shù)據(jù)報(bào)到達(dá)IP地址為37的設(shè)備所經(jīng)過的路徑:Harbour(config)# traceroute 37 12.2 Web服務(wù)器 Web
29、服務(wù)是目前Internet應(yīng)用最流行、最受歡迎的服務(wù)之一,Linux平臺(tái)使用最廣泛的Web服務(wù)器是Apache,它是目前性能最優(yōu)秀、最穩(wěn)定的Web服務(wù)器之一。本節(jié)以Apache2.0為例,介紹Apache Web服務(wù)器的安裝與配置方法。 12.2.1 WWW服務(wù) WWW是基于客戶機(jī)/服務(wù)器方式的信息發(fā)現(xiàn)技術(shù)和超文本技術(shù)的綜合。WWW服務(wù)器通過HTML超文本標(biāo)記語言把信息組織成為圖文并茂的超文本;WWW瀏覽器則為用戶提供基于HTTP超文本傳輸協(xié)議的用戶界面。用戶使用WWW瀏覽器通過Internet訪問遠(yuǎn)端WWW服務(wù)器上的HTML超文本。在WWW的客戶機(jī)/服務(wù)器工作環(huán)境中,WWW瀏覽器起控制作用,
30、其任務(wù)是使用一個(gè)URL(Internet地址)來獲取一個(gè)WWW服務(wù)器上的Web文檔,解釋這個(gè)HTML,并將文檔內(nèi)容以用戶環(huán)境所許可的效果最大限度地顯示出來。整個(gè)流程如下:1) WWW瀏覽器根據(jù)用戶輸入的URL連到相應(yīng)的遠(yuǎn)端WWW服務(wù)器上。2) 取得指定的Web文檔。3) 斷開與遠(yuǎn)端WWW服務(wù)器的連接。12.2.2 WWW服務(wù)器軟件的比較和選擇 目前,在世界各地有許多公司和學(xué)術(shù)團(tuán)體,根據(jù)不同的計(jì)算機(jī)系統(tǒng),開發(fā)出不同的WWW服務(wù)器,如Apache、CERN httpd、Microsoft Internet Information System、NCSA httpd、Plexus httpd、Web
31、Site等。在Unix/Linux系統(tǒng)中常用的有:CERNNCSAApache 12.2.2 WWW服務(wù)器軟件的比較和選擇1. CERN httpd這是最早期的WWW服務(wù)器軟件,用C語言編寫,現(xiàn)在功能有限,用戶逐漸減少。有興趣的話可以在: /pub/www/bin中找到它。 12.2.2 WWW服務(wù)器軟件的比較和選擇2. NCSA httpd這是在WWW服務(wù)器發(fā)展初期,美國國家超級(jí)計(jì)算機(jī)應(yīng)用中心(NCSA)在1995年創(chuàng)建的WWW服務(wù)器。它也是用C語言編寫的,程序小、速度快?,F(xiàn)在NCSA WWW服務(wù)器的主要開發(fā)人員已經(jīng)離開了NCSA,這個(gè)服務(wù)器項(xiàng)目已經(jīng)停頓了。當(dāng)然,由于它的特殊歷史地位,相信使
32、用它的人現(xiàn)在還不少。如果需要,可以在獲取它。 12.2.2 WWW服務(wù)器軟件的比較和選擇3. Apache根據(jù)著名的WWW服務(wù)器調(diào)查公司所作的調(diào)查,世界上百分之五十以上的WWW服務(wù)器都在使用Apache,是世界排名第一的Web服務(wù)器。Apache的誕生極富有戲劇性。當(dāng)NCSA WWW服務(wù)器項(xiàng)目停頓后,那些使用NCSA WWW服務(wù)器的人們開始交換他們用于該服務(wù)器的補(bǔ)丁程序,他們也很快認(rèn)識(shí)到成立管理這些補(bǔ)丁程序的論壇是必要的。就這樣,誕生了Apache Group,后來這個(gè)團(tuán)體在NCSA的基礎(chǔ)上創(chuàng)建了Apache。12.2.2 WWW服務(wù)器軟件的比較和選擇由于Apache具有高度的可配置性,因此滿
33、足廣泛的Web服務(wù)需要,其顯著的特征是:可以運(yùn)行于所有計(jì)算機(jī)平臺(tái),也包括Unix/Linux系統(tǒng);集成代理服務(wù)器和Perl編程腳本;對(duì)用戶的訪問會(huì)話過程跟蹤;可對(duì)服務(wù)器日志定制;還支持虛擬主機(jī)及HTTP認(rèn)證等等。目前它已經(jīng)占據(jù)了過半數(shù)的市場(chǎng)份額。 現(xiàn)在最新的Red Hat、Slackware和OpenLinux各版本中都包含了Apache,F(xiàn)edora Linux包含Apache服務(wù)器的2.0版本,F(xiàn)edora Linux使用缺省配置的Apache滿足最基本的Web服務(wù)需要。 12.2.3 Apache服務(wù)器安裝 Apache的安裝十分簡(jiǎn)單,最好在安裝RedHat Linux時(shí),選擇安裝Web
34、 Server,這樣即使對(duì)編譯操作不熟的話,也能輕輕松松把服務(wù)器架設(shè)起來。1Apache的安裝方式Apache通常都有兩種安裝方式:源代碼安裝和RPM包安裝。這兩種安裝類型各有特色,RPM包安裝不需要編譯,而源代碼安裝則需要先配置編譯再安裝,RPM包安裝在一個(gè)固定的位置下,選擇固定的模塊,而源代碼安裝則可以讓你選擇安裝路徑,選擇你想要的模塊。下面分別以實(shí)例的形式來介紹兩種類型的安裝方法。1Apache的安裝方式第一種是使用源代碼安裝:(1) 獲得源代碼 # lynx NN表示當(dāng)前所用的版本號(hào)。 (2) 解壓縮# gzip -d httpd-2_0_NN.tar.gz # tar xvf htt
35、pd-2_0_NN.tar (3) 配置# ./configure -prefix= /usr/local/apache表示Apache將安裝在/usr/local/apache目錄下(4) 編譯與安裝# make # make install (5) 測(cè)試# /usr/local/apache/bin/apachectl start1Apache的安裝方式第二種是使用RPM包安裝# rpm ivh apache-*.rpm 完成安裝后,配置文件在/etc/httpd/conf/目錄下,文件根目錄為/var/www/html,工具文件在/etc/rc.d/init.d/目錄下,日志文件在/va
36、r/log/httpd/目錄下。 2Apache 的配置 在配置Apache前,對(duì)最初的配置文件做一個(gè)備份是一個(gè)好的習(xí)慣:# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf-original(1)啟動(dòng)ApacheApache缺省情況下沒有被激活。要啟動(dòng)它,使用服務(wù)工具和輸入這個(gè)命令:# service httpd start要確保Apache在每次系統(tǒng)引導(dǎo)時(shí)啟動(dòng),啟用httpd服務(wù)。無論Apache配置何時(shí)改變,必須讓Apache重新加載它的配置:# service httpd reload另外,可以使用“服務(wù)”工具中的“重啟”
37、按鈕。(2)測(cè)試Apache使用正在運(yùn)行Apache機(jī)器上的Web瀏覽器,訪問Web位置 。將會(huì)看到圖12.5中顯示的測(cè)試頁。2Apache 的配置 一旦在服務(wù)器上可以看到該Web頁面,可以嘗試使用服務(wù)器的IP地址從遠(yuǎn)程系統(tǒng)訪問該頁(例如 ),或者,如果DNS已經(jīng)被設(shè)置為允許,使用服務(wù)器的主機(jī)名訪問(例如, )。 2Apache 的配置 (3)安裝自己的Web內(nèi)容一旦Web服務(wù)器在運(yùn)行中,把希望服務(wù)的內(nèi)容放到目錄/var/www/html中。對(duì)于每個(gè)目錄,缺省的頁面是index.html;一旦已經(jīng)創(chuàng)建了/var/www/html/index.html,測(cè)試頁將不再出現(xiàn)。在/var/www/ht
38、ml中創(chuàng)建子目錄來創(chuàng)建任何所需要的目錄結(jié)構(gòu)。這些目錄將通過Web服務(wù)器反映在可訪問的URLs中。例如,可以創(chuàng)建目錄/var/www/html/photos/:# mkdir /var/www/html/photos那個(gè)目錄將可以使用URI http:/photos/訪問。 (4)改變?nèi)笔〉呐渲靡瓿筛呒?jí)的Web服務(wù),缺省的配置需要被修改。Apache可以通過使用Fedora的圖形化配置工具或通過編輯配置文件被配置,但不能在兩種方法之間改變。 2Apache 的配置(5)直接編輯Apache的配置文件主Apache配置信息存儲(chǔ)在/etc/httpd/conf/httpd.conf中。附加配置信
39、息存儲(chǔ)在目錄/etc/httpd/conf.d/中。每個(gè)模塊的配置文件會(huì)自動(dòng)伴隨諸如Squirrel Mail這樣的Apache模塊和Web應(yīng)用程序自動(dòng)安裝和刪除。httpd.conf是一個(gè)標(biāo)準(zhǔn)的文本文件,而且可以使用任何標(biāo)準(zhǔn)的文本編輯器編輯。如前面提到的,強(qiáng)烈推薦在每次改變前對(duì)該文件做一個(gè)備份:# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.backup-1httpd.conf包含大量的指令,每個(gè)指令包含一個(gè)名字和一個(gè)或多個(gè)值,列在單獨(dú)一行上,在名字和每個(gè)值后帶一個(gè)空格。指令名不是大小寫敏感的,但某些值是。如果這些值包含空
40、格,必須用引號(hào)引住。 這些指令都是等價(jià)的,要添加一個(gè)注釋行,把#號(hào)放在行的開頭: # Note: /etc/httpd is the standard Fedora server root.指令是全局的,除非把它們放在一個(gè)container(容器)中,這會(huì)限制指令適用的范圍。 12.3 域名服務(wù)器(DNS服務(wù)器) 計(jì)算機(jī)在網(wǎng)絡(luò)上進(jìn)行通訊時(shí)只能識(shí)別如“3”之類的IP地址,而不能認(rèn)識(shí)域名。但是,當(dāng)打開瀏覽器,在地址欄中輸入域名后,就能看到所需要的頁面,這是因?yàn)橛幸粋€(gè)叫“DNS服務(wù)器”的計(jì)算機(jī)自動(dòng)把我們的域名“翻譯”成了相應(yīng)的IP地址,然后調(diào)出IP地址所對(duì)應(yīng)的網(wǎng)頁。 12.3.1 DNS 定義 DN
41、S(Domain Name System)是“域名系統(tǒng)”的英文縮寫,是一種組織成域?qū)哟谓Y(jié)構(gòu)的計(jì)算機(jī)和網(wǎng)絡(luò)服務(wù)命名系統(tǒng),它用于TCP/IP網(wǎng)絡(luò),它主要是用來通過用戶親切而友好 的名稱代替枯燥而難記的IP地址以定位相應(yīng)的計(jì)算機(jī)和相應(yīng)服務(wù)。因此,要想讓親切而友好的名稱能被網(wǎng)絡(luò)所認(rèn)識(shí),則需要在名稱和IP地址之間有一位“翻譯官”,它能將相關(guān)的域名翻譯成網(wǎng)絡(luò)能接受的相應(yīng)IP地址。 1DNS的層次結(jié)構(gòu) DNS是一個(gè)包含主機(jī)信息的分布式層次結(jié)構(gòu)系統(tǒng)。在DNS下,沒有存放全部Internet信息的中心數(shù)據(jù)庫,這些信息分布在一個(gè)層次結(jié)構(gòu)中的若干臺(tái)域名服務(wù)器上,這種結(jié)構(gòu)非常類似于UNIX文件系統(tǒng)中的層次結(jié)構(gòu)。它們的
42、結(jié)構(gòu)都組織成倒轉(zhuǎn)的樹,根在結(jié)構(gòu)的最頂端。在UNIX文件系統(tǒng)中,根以“/”表示;在DNS中,根的名字以“.”表示,并被稱之為根域。DNS的層次結(jié)構(gòu)如圖12-7所示。1DNS的層次結(jié)構(gòu)圖12.7 DNS的層次結(jié)構(gòu) orgneteducngovcommil域名子域頂級(jí)域eduwhucslib2DNS解析過程及原理 DNS的工作原理及過程分下面幾個(gè)步驟:第一步:客戶機(jī)提出域名解析請(qǐng)求,并將該請(qǐng)求發(fā)送給本地的域名服務(wù)器。第二步:當(dāng)本地的域名服務(wù)器收到請(qǐng)求后,就先查詢本地的緩存,如果有該紀(jì)錄項(xiàng),則本地的域名服務(wù)器就直接把查詢的結(jié)果返回。第三步:如果本地的緩存中沒有該紀(jì)錄,則本地域名服務(wù)器就直接把請(qǐng)求發(fā)給根
43、域名服務(wù)器,然后根域名服務(wù)器再返回給本地域名服務(wù)器一個(gè)所查詢域(根的子域)的主域名服務(wù)器的地址。第四步:本地服務(wù)器再向上一步返回的域名服務(wù)器發(fā)送請(qǐng)求,然后接受請(qǐng)求的服務(wù)器查詢自己的緩存,如果沒有該紀(jì)錄,則返回相關(guān)的下級(jí)的域名服務(wù)器的地址。第五步:重復(fù)第四步,直到找到正確的紀(jì)錄。第六步:本地域名服務(wù)器把返回的結(jié)果保存到緩存,以備下一次使用,同時(shí)還將結(jié)果返回給客戶機(jī)。 3域名服務(wù)器的種類 在域名服務(wù)中,域名服務(wù)器的配置是最為核心的內(nèi)容。如果使用BIND軟件對(duì)域名服務(wù)器進(jìn)行配置,則可以將域名服務(wù)器分為3種類型:主域名服務(wù)器。輔助域名服務(wù)器。高速緩存服務(wù)器。 3域名服務(wù)器的種類(1)主域名服務(wù)器(Pr
44、mlary Name Server) 主域名服務(wù)器對(duì)一個(gè)或多個(gè)區(qū)的域名解析具有權(quán)威性。它從系統(tǒng)管理員構(gòu)建的本地磁盤文件中直接加載信息,同時(shí),主域名服務(wù)器還將定期地把數(shù)據(jù)傳送給同一個(gè)區(qū)中的輔助域名服務(wù)器。主域名服務(wù)器是一種權(quán)威性的服務(wù)器,它以絕對(duì)的權(quán)威來回答域中所有的查詢。當(dāng)主域名服務(wù)器回答客戶請(qǐng)求時(shí),要為數(shù)據(jù)附帶一個(gè)時(shí)間期限(由TTL指定),指定數(shù)據(jù)的有效期限。選擇主服務(wù)器時(shí),應(yīng)該選擇內(nèi)存和磁盤空間都比較大的計(jì)算機(jī)。同時(shí)一臺(tái)計(jì)算機(jī)可以作為某一個(gè)區(qū)的主服務(wù)器,同時(shí)可擬充當(dāng)另外幾個(gè)域的輔助域名服務(wù)器。配置主域名服務(wù)器需要一整套的文件,主域名服務(wù)器將通過引導(dǎo)文件/etc/named.boot或者na
45、med.conf來確認(rèn)自己所服務(wù)的區(qū)以及數(shù)據(jù)保存在哪些區(qū)文件中。3域名服務(wù)器的種類(2)輔助域名服務(wù)器(Secondary Name Server)輔助域名服務(wù)器可以從主域名服務(wù)器中獲取一整套的域信息。所有的信息都是從主域名服務(wù)器中得到的,并將這些數(shù)據(jù)備份在本地的磁盤文件中。輔助域名服務(wù)器將在主服務(wù)器不能正常工作的情況下,起到備份的作用,從而提高了整套系統(tǒng)的可靠性。它將定期地對(duì)服務(wù)器上的數(shù)據(jù)進(jìn)行更新,從而保持與主域名服務(wù)器的一致性。在輔助域名服務(wù)器上由于保持了域的完整信息,因此也可以權(quán)威地回答域中客戶機(jī)的查詢。配置輔助域名服務(wù)器不需要建立本地的區(qū)文件,可以從主域名服務(wù)器中下載。但是高速緩存文件
46、和回送文件仍然是需要包括的。 3域名服務(wù)器的種類(3)高速緩存服務(wù)器(Caching-only Server)一個(gè)高速緩存服務(wù)器可以運(yùn)行域名服務(wù)器的守護(hù)程序,但不具有本地的域名服務(wù)器的數(shù)據(jù)庫文件。它從遠(yuǎn)程域名服務(wù)器取得每次查詢的結(jié)果,并將這些結(jié)果保存到本地的緩存文件中,以后當(dāng)需要查詢相同信息的時(shí)候,就可以從緩存中直接獲得結(jié)果。查詢結(jié)果保存在緩存中的時(shí)間將由數(shù)據(jù)附帶的“time-to-live”(TTL)來指定,當(dāng)期滿后,系統(tǒng)會(huì)自動(dòng)刪除這條結(jié)果。高速緩存服務(wù)器可以使用轉(zhuǎn)發(fā)服務(wù)器(forwarders)。轉(zhuǎn)發(fā)服務(wù)器是連接了外部網(wǎng)絡(luò)的服務(wù)器,將這些服務(wù)器的數(shù)據(jù)結(jié)合起來構(gòu)成一個(gè)大型的DNS數(shù)據(jù)庫。在這
47、種模式下,高速緩存服務(wù)器首先向一個(gè)轉(zhuǎn)發(fā)服務(wù)器提出查詢請(qǐng)求,必要的話,后者會(huì)去查詢別的服務(wù)器,以便獲得數(shù)據(jù)。高速緩存服務(wù)器的配置相對(duì)簡(jiǎn)單,只需要一個(gè)高速緩存文件即可。但最常見的配置還包括一個(gè)本地回送文件。 3域名服務(wù)器的種類上述3種域名服務(wù)器在具體進(jìn)行配置時(shí)所需要的文件的主要功能如下:Named.boot-這是DNS守護(hù)進(jìn)程named在啟動(dòng)時(shí)查看的第一個(gè)文件;該文件設(shè)置一般的named參數(shù),指向該服務(wù)器使用的域數(shù)據(jù)庫信息的源。這類源可以是本地磁盤文件或遠(yuǎn)程服務(wù)器。Named使用此文件來決定數(shù)據(jù)庫文件名及其在本主機(jī)和遠(yuǎn)程主機(jī)上的位置。Named.ca-該文件指向根域名服務(wù)器,包含Internet的
48、根域名服務(wù)器的名字和地址。使用此文件中維護(hù)的信息,一個(gè)域名服務(wù)器可以與根域名服務(wù)器聯(lián)系,以解析名字詢問。Named.hosts-該文件定義了域名服務(wù)器管理的域,主要負(fù)責(zé)將主機(jī)名映射為IP地址。它是域數(shù)據(jù)生成和修改并傳播到網(wǎng)絡(luò)或Internet上其他服務(wù)器的地方。Named.rev-該文件定義了管理名字的反向域,主要負(fù)責(zé)將IP地址映射到主機(jī)名。Named.local-用于在本地轉(zhuǎn)移回送地址,負(fù)責(zé)將localhost解析成地址。當(dāng)Named守護(hù)進(jìn)程啟動(dòng)時(shí),讀取named.boot文件,獲得服務(wù)器的類型以及初始化數(shù)據(jù)信息。該文件保存了設(shè)置named的基本參數(shù),同時(shí)指向該服務(wù)器使用的域數(shù)據(jù)庫的信源。1
49、2.3.2 bind簡(jiǎn)介 BIND(Berkeley Internet Name Domain)是Domain Name System(DNS)協(xié)議的一個(gè)實(shí)現(xiàn),提供了DNS主要功能的開放實(shí)現(xiàn),包括域名服務(wù)器(named)、DNS解析庫函數(shù)、DNS服務(wù)器運(yùn)行調(diào)試所用的工具,是一款開放源碼的DNS服務(wù)器軟件,由美國加州大學(xué)Berkeley分校開發(fā)和維護(hù)的,按照ISC的調(diào)查報(bào)告,BIND是世界上使用最多最廣泛的域名服務(wù)系統(tǒng)。不論郵件服務(wù)器,Web服務(wù)器或者其他的服務(wù)如何的安全可靠,DNS的故障會(huì)給用戶帶來根本無法訪問這些服務(wù)的問題。目前使用的BIND9在2000年十月份推出,現(xiàn)在穩(wěn)定版本是9.3.2
50、。 1軟件的相關(guān)資源 官方網(wǎng)站: 最新版本: 9.3.2 幫助文檔: 配置文件樣例: bind.htmlFAQ: 2安裝 (1)安裝最簡(jiǎn)單的方式是安裝Fedora Core 6時(shí),在選擇軟件包的時(shí)候,采用的自定義方式,把開發(fā)工具和服務(wù)器之類的軟件全部選上了,這樣當(dāng)系統(tǒng)裝完之后就已經(jīng)把bind安裝好了,只需要配置好就可以用。當(dāng)然也可以采用編譯的方式進(jìn)行安裝。由其官方網(wǎng)站中下載其源碼軟件包bind-9.3.2. tar.gz。接下來對(duì)安裝過程的一些重要步驟,給出其解釋:rootlocalhost root#tar xzvf bind-9.3.2. tar.gzrootlocalhost root#
51、cd bind-9.3.2rootlocalhost bind-9.3.2#./configurerootlocalhost bind-9.3.2#makerootlocalhost bind-9.3.2#make install2安裝tar xzvf bind-9.3.2.tar.gz 解壓縮軟件包。./configure 針對(duì)機(jī)器作安裝的檢查和設(shè)置,大部分的工作是由機(jī)器自動(dòng)完成的,但是用戶可以通過一些參數(shù)來完成一定的設(shè)置,其常用選項(xiàng)有:./configure -help 察看參數(shù)設(shè)置幫助。 -prefix= 指定軟件安裝目錄(默認(rèn)/usr/local/)。 -enable-ipv6 支持i
52、pv6??梢栽O(shè)置的參數(shù)很多,可以通過-help察看需要的,一般情況下,默認(rèn)設(shè)置就可以了。默認(rèn)情況下,安裝過程是不會(huì)建立配置文件和一些默認(rèn)的域名解析的,不過并不妨礙,可以下載一些標(biāo)準(zhǔn)的配置文件( ),也可以使用本文所提供的樣例文件。默認(rèn)情況下,安裝的deamon為/usr/local/sbin/named默認(rèn)的主配置文件為/etc/named.conf(須手動(dòng)建立)。2安裝(2)啟動(dòng):rootlocalhost root# /usr/local/sbin/named g/usr/local/sbin/named默認(rèn)情況是一個(gè)后臺(tái)deamon,-g選項(xiàng)表示前臺(tái)運(yùn)行,并將調(diào)試信息打印到標(biāo)準(zhǔn)輸出,這在
53、我們安裝調(diào)試階段是非常有幫助的。如果建立了配置文件和域名解析文件,ps aux 應(yīng)該可以查到named的進(jìn)程,或netstat -an 也可以看到53端口的服務(wù)已經(jīng)起來了(DNS默認(rèn)端口為53)。2安裝如果要設(shè)置開機(jī)自啟動(dòng)DNS server,只需在/etc/rc.d/rc.local中加入一行/usr/local/sbin/named,如#!/bin/sh# This script will be executed *after* all the other init scripts.# You can put your own initialization stuff in here if
54、 you dont# want to do the full Sys V style init stuff.touch /var/lock/subsys/local/usr/local/sbin/named3配置 首先我們做以下假設(shè):A服務(wù)器為 的主域名服務(wù)器,其IP地址為,B服務(wù)器為 的輔助域名服務(wù)器,其IP地址為;下面我們配置服務(wù)器為 的主DNS服務(wù)器。bind軟件安裝后,會(huì)產(chǎn)生幾個(gè)固有文件,分為兩類,一類是配置文件在/etc目錄下,一類是dns記錄文件在/var/named目錄下。加上其他相關(guān)文件,共同設(shè)置dns服務(wù)器。下面是所有和dns設(shè)置相關(guān)文件的列表與說明。位于/etc目錄下的有:
55、hosts,host.conf,resolv.conf,named.boot,named.conf。 3配置 (1)“hosts”文件,定義了主機(jī)名和ip地址的對(duì)應(yīng),其中也有將要運(yùn)行dns這臺(tái)電腦的ip地址和主機(jī)名。內(nèi)容: localhost.localdomain localhost (2)“host.conf”文件,“order hosts bind”語句,指定了對(duì)主機(jī)名的解析順序是先到hosts中查找,然后到dns服務(wù)器的記錄里查找?!癿ulti on”則是允許一個(gè)主機(jī)名對(duì)應(yīng)多個(gè)ip地址。內(nèi)容:order hosts, bind multi on nospoof on 3配置 (3)“r
56、esolv.conf”文件,“nameserver 11”指定了dns服務(wù)器的地址。注意,這個(gè)文件對(duì)普通非dns服務(wù)器的電腦(非windows的系統(tǒng);Windows系統(tǒng)是在“網(wǎng)絡(luò)屬性”中設(shè)置這項(xiàng)的)來說,是必不可少的。如果沒有設(shè)置本機(jī)為dns服務(wù)器,又要能夠解析域名,就必須指定一個(gè)dns服務(wù)器的地址??梢宰疃鄬懮先齻€(gè)地址,作為前一個(gè)失敗時(shí)的候選dns服務(wù)器。“domain ”指定默認(rèn)的域。文件內(nèi)容: domain nameserver 3配置 (4)“named.boot”文件是早期版本的bind軟件使用的配置文件,現(xiàn)在新版本中已經(jīng)讓位于“named.conf”。named.conf是dns
57、server配置的核心文件。 4測(cè)試DNS服務(wù)器 改動(dòng)過DNS的相應(yīng)文件,用“ndc restart”命令重新啟動(dòng)服務(wù),在Redhat 7.1以上版本中使用命令:rootmail root#/etc/rc.d/init.d/named restart使改動(dòng)生效。要測(cè)試DNS,可以找一臺(tái)客戶機(jī),把它的DNS地址設(shè)成新建立的DNS服務(wù)器地址,然后試試上網(wǎng),收信,下載等。也可以使用nslookup命令:運(yùn)行nslookup,輸入要查詢的主機(jī)名,看是否返回正確的ip地址,在Redhat 7.1以上版本中推薦使用dig命令。12.4 郵件服務(wù)器 電子郵件是Internet應(yīng)用服務(wù)之一,通過網(wǎng)絡(luò),可以以非
58、常低廉的價(jià)格、非??焖俚姆绞?,與世界上任何一個(gè)網(wǎng)絡(luò)用戶聯(lián)絡(luò),這些電子郵件可以包含文字、圖像、聲音或其他多媒體信息。和普通的郵件一樣,電子郵件也需要“郵局”郵件服務(wù)器。郵件服務(wù)器提供了郵件系統(tǒng)的基本結(jié)構(gòu),包括郵件傳輸、郵件分發(fā)、郵件存儲(chǔ)等功能,以確保郵件能夠發(fā)送到Internet網(wǎng)絡(luò)中的任意地方。 12.4.1 電子郵件原理 電子郵件的發(fā)送需要經(jīng)過用戶代理。發(fā)送一封電子郵件時(shí),不能直接將信件發(fā)送到對(duì)方郵件地址指定的服務(wù)器上,而是必須首先試圖去尋找一個(gè)信件傳輸代理,把郵件提交給它。傳輸代理。信件傳輸代理得到了郵件后,首先將它保存在自身的緩沖隊(duì)列中,然后,根據(jù)郵件的目標(biāo)地址,信件傳輸代理程序查詢到應(yīng)
59、對(duì)這個(gè)目標(biāo)地址負(fù)責(zé)的郵件傳輸代理服務(wù)器,并且通過網(wǎng)絡(luò)將郵件傳送給它。對(duì)方的服務(wù)器接收到郵件之后,將其緩沖存儲(chǔ)在本地,直到電子郵件的接收者察看自己的電子信箱。顯然,郵件傳輸是從服務(wù)器到服務(wù)器的,而且每個(gè)用戶必須擁有服務(wù)器上存儲(chǔ)信息的空間(稱為信箱)才能接受郵件。(發(fā)送郵件不受這個(gè)限制)。投遞代理。從信件傳輸代理取得信件傳送至最終用戶的郵箱。顯然,最終用戶只能看到用戶投遞代理。用戶代理接受用戶輸入的各種指令,將用戶的郵件傳送至信件傳輸代理或者通過pop、Imap將信件從傳輸代理服務(wù)器處取到本機(jī)上。常見的用戶代理有“evolution”,“foxmail”等郵件客戶程序。1郵件的結(jié)構(gòu) 郵件的結(jié)構(gòu)是非
60、常簡(jiǎn)單的,用戶從終端機(jī)上看到的郵件格式一般為:(1)From: (2)To: (3)Subject: Explaination of mail format(4)Date: Thu, 1 Apr 1999. 10:00:00 GMT(5)空行(6)郵件正文其中,14行稱作信件信頭(message header)第6行描述信件要表達(dá)的內(nèi)容,稱為信體(message body)。第5行是空行,根據(jù)RFC822的要求,信頭和信體之間必須加入一空行。此外信頭通常包含字段From,To,Subject和Date,有的郵件還包含cc,bcc等字段。 2SMTP和POP3協(xié)議 SMTP協(xié)議:SMTP(Sim
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東司法警官職業(yè)學(xué)院《新能源材料》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東省外語藝術(shù)職業(yè)學(xué)院《商務(wù)溝通與談判技巧》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東輕工職業(yè)技術(shù)學(xué)院《手繪插圖技法》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東農(nóng)工商職業(yè)技術(shù)學(xué)院《健康評(píng)估1》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東女子職業(yè)技術(shù)學(xué)院《作文教學(xué)設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東茂名健康職業(yè)學(xué)院《物理思維方法》2023-2024學(xué)年第一學(xué)期期末試卷
- 【原創(chuàng)】2013-2020學(xué)年高一生物(蘇教版)下學(xué)期期末復(fù)習(xí)試題(一)
- 【創(chuàng)新設(shè)計(jì)】2022年高三生物(人教版)一輪復(fù)習(xí)-基礎(chǔ)課時(shí)案45-細(xì)胞工程-考點(diǎn)探究
- 【經(jīng)濟(jì)貿(mào)易】大學(xué)《微觀經(jīng)濟(jì)學(xué)》課件
- 《創(chuàng)業(yè)企劃書》課件
- 2023年小學(xué)五年級(jí)數(shù)學(xué)上學(xué)期期末水平測(cè)試試卷(天河區(qū))
- 中考數(shù)學(xué)計(jì)算題100道
- 高壓變頻器整流變壓器
- 集團(tuán)資產(chǎn)重組實(shí)施方案
- 《新唯識(shí)論》儒佛會(huì)通思想研究
- 《減法教育》讀書筆記思維導(dǎo)圖PPT模板下載
- 慢性阻塞性肺疾病全球倡議(GOLD)
- 工程項(xiàng)目管理(第五版)叢培經(jīng) 第七章
- GB/T 33195-2016道路交通事故車輛速度鑒定
- GB/T 15176-1994插入式電子元器件用插座及其附件總規(guī)范
- GB/T 14383-2008鍛制承插焊和螺紋管件
評(píng)論
0/150
提交評(píng)論