技巧:Solaris 10服務(wù)器TCP/IP配置實(shí)戰(zhàn)
一、理解Solaris10網(wǎng)絡(luò)控制文件
Solaris 10使用下列網(wǎng)絡(luò)控制文件來(lái)管理TCP/IP網(wǎng)絡(luò)。
1、/etc/hostname.interface文件
這個(gè)文件是本地主機(jī)上定義的物理的端口的文件。一個(gè)本地主機(jī)至少有一個(gè)這樣的文件,它是在安裝Solaris 10的過(guò)程中形成的。例如/etc/hostname.eri0,eri代表接口類型,0為接口編號(hào)。這個(gè)文件包含一個(gè)主機(jī)名或主機(jī)的IP地址,它的基本網(wǎng)絡(luò)接口由接口編號(hào)0來(lái)指定。
值得一提的是,我們還可以為同一個(gè)網(wǎng)絡(luò)接口分配不同的IP地址,對(duì)于一臺(tái)主機(jī)內(nèi)包含多個(gè)“虛擬”域,它們都需要自己的IP地址的情況,這非常有用。我們這里要做的就是為每個(gè)所需要的IP地址創(chuàng)建一個(gè)/etc/hostname:eriX:Y文件,其中的X代表物理設(shè)備接口,Y代表虛擬的接口編號(hào)。
2、/etc/nodename文件
/etc/nodename文件包含著本地計(jì)算機(jī)的名字。比如本地計(jì)算機(jī)名為goodcjh,那么文件/etc/nodename文件中就有g(shù)oodcjh條目。
3、/etc/defaultdomain文件
這個(gè)文件包含著所本地主機(jī)的域名。
4、/etc/defaultrouter文件
這個(gè)文件包含著主機(jī)的默認(rèn)路由地址。
5、/etc/nsswitch文件
系統(tǒng)數(shù)據(jù)庫(kù)及名字服務(wù)開關(guān)配置文件??捎脭?shù)據(jù)庫(kù)如下:
aliases: 郵件別名, sendmail 使用該文件.
ethers: 以太網(wǎng)號(hào).
group: 用戶組, getgrent 函數(shù)使用該文件.
hosts: 主機(jī)名和主機(jī)號(hào), gethostbyname 以及類似的函數(shù)使用了該文件.
netgroup: 網(wǎng)絡(luò)內(nèi)主機(jī)及其用戶的列表, 訪問(wèn)規(guī)則使用該文件.
network: 網(wǎng)絡(luò)名及網(wǎng)絡(luò)號(hào), getnetent 函數(shù)使用該文件.
passwd: 用戶口令, getpwent函數(shù)使用該文件.
protocols: 網(wǎng)絡(luò)協(xié)議, getprotoent函數(shù)使用該文件.
publickey: NIS+及NFS 所使用的secure_rpc的公開密匙.
rpc: 遠(yuǎn)程過(guò)程調(diào)用名及調(diào)用號(hào), getrpcbyname及類似函數(shù)使用該文件.
services: 網(wǎng)絡(luò)服務(wù), getservent函數(shù)使用該文件.
shadow: shadow用戶口令, getspnam 函數(shù)使用該文件.
為了確保DNS的正常工作,在/etc/nsswitch.conf文件中必須包括下行的內(nèi)容:
hosts: files dns
這行的意思是如果需要命名服務(wù),首先查找/etc/inet/hosts文件,如果找不到,就到DNS中去查找。
6、/etc/inet/ipnodes
/etc/inet/ipnodes 文件同時(shí)存儲(chǔ)IPv4 和IPv6 地址。此外,也可以存儲(chǔ)以傳統(tǒng)的點(diǎn)分十進(jìn)制或CIDR 表示法表示的IPv4 地址。此文件作為將主機(jī)名與其IPv4 和IPv6 地址進(jìn)行關(guān)聯(lián)的本地?cái)?shù)據(jù)庫(kù)。
7、子網(wǎng)掩碼數(shù)據(jù)庫(kù)
子網(wǎng)掩碼數(shù)據(jù)庫(kù)包含著主機(jī)的子網(wǎng)掩碼。如果你使用NIS、DNS命名服務(wù)或LDAP目錄服務(wù),子網(wǎng)掩碼數(shù)據(jù)庫(kù)就在這些服務(wù)的數(shù)據(jù)庫(kù)中維護(hù)。如果你使用本地文件來(lái)維護(hù)子網(wǎng)掩碼數(shù)據(jù)庫(kù),這些信息就存儲(chǔ)在/etc/inet/netmasks文件中。為了與以BSD為基礎(chǔ)的操作系統(tǒng)兼容,Solaris 10的/etc/netmasks文件是/etc/inet/ netmasks文件的軟鏈接。所有網(wǎng)絡(luò)接口使用的子網(wǎng)掩碼必須在/etc/inet/netmasks文件中加以定義。當(dāng)這些網(wǎng)絡(luò)接口位于不同的子網(wǎng),或者用于不同類型的網(wǎng)絡(luò)時(shí),這一點(diǎn)尤為重要。A,B,C三類子網(wǎng)的掩碼分別為255.0.0.0,255.255.0.0和255.255.255.0。等我們向特定的子網(wǎng)發(fā)送廣播消息時(shí),就需要使用這些掩碼。例如,對(duì)于一個(gè)C類子網(wǎng)134.132.21.0,它可以連接254臺(tái)主機(jī),這些主機(jī)的IP地址從134.132.21.1到134.132.21.254。
8、/etc/resolv.conf
配置域名服務(wù)客戶端的配置文件,用于指定域名服務(wù)器的位置。當(dāng)配置轉(zhuǎn)換程序使用BIND查詢主機(jī)時(shí),我們必須告訴轉(zhuǎn)換程序使用哪一個(gè)域名服務(wù)器。用來(lái)完成這項(xiàng)任務(wù)的工具就是/etc/resolv.conf 文件。/etc/resolv.conf 文件的配置選項(xiàng)如表-1所示。
選 項(xiàng) 說(shuō) 明
domain 用來(lái)定義默認(rèn)域名(主機(jī)的本地域名)。轉(zhuǎn)換程序會(huì)將默認(rèn)域名掛在任何不含點(diǎn)的主機(jī)名后面
nameserver 利用IP地址讓轉(zhuǎn)換程序去識(shí)別查詢域信息的那些服務(wù)器。我們可以多次使用nameserver選項(xiàng),可以使用多達(dá)三個(gè)的域名服務(wù)器
serach 指定域名搜索列表,最多六個(gè)
我們需要在/etc/resolv.conf文件中包含本地域名、本地基本DNS服務(wù)器的IP地址,以及輔助的DNS服務(wù)器的IP地址。這意味著本地DNS服務(wù)器出現(xiàn)故障,我們?nèi)钥梢酝ㄟ^(guò)輔助的NDS服務(wù)器來(lái)提供最新的外部主機(jī)信息,而不必依賴/etc/hosts文件中的數(shù)據(jù)來(lái)解析本地地址。一個(gè)典型的/etc/resolv.conf文件:
domain cao.net
nameserver 192.168.1.1
nameserver 192.168.1.12
serach cao.net
它表明本地域是cao.net,本地域有兩臺(tái)基本DNS服務(wù)器。其中,192.168.1.1為主DNS服務(wù)器,192.168.1.12為輔助DNS服務(wù)器。
配置目標(biāo):假設(shè)有一臺(tái)Sun服務(wù)器我們準(zhǔn)備把它配置為:
主機(jī)名稱:cjh
IP地址:10.1.1.8
子網(wǎng)掩碼:255.0.0.0
默認(rèn)路由:10.0.0.0
步驟如下:
1、首先必須獲得管理員權(quán)限或者授權(quán)角色用戶。
2、進(jìn)入etc目錄。
3、使用vi或者其他編輯器打開文件:/etc/nodename 。將主機(jī)名稱 設(shè)置為cjh 。
4、編輯網(wǎng)絡(luò)端口配置文件:hostname.eri0, 將主機(jī)名稱設(shè)置為cjh 。同時(shí)把Ip地址設(shè)置為10.1.1.8 。
5、編輯/etc/inet/hosts文件設(shè)置為:
10.1.1.8 cjh cjh.deserts.worldwide.com
其中deserts.worldwide.com是主機(jī)suncjh的域名。
6、在文件/etc/defaultdomain加入域名:
deserts.worldwide.com
7、編輯文件/etc/defaultrouter
把192.168.1.1設(shè)置為 10.0.0.0 。
8、修改子網(wǎng)掩碼數(shù)據(jù)庫(kù)文件/etc/inet/netmasks
設(shè)置為:
10.0.0.0 255.0.0.0
9、重新引導(dǎo)系統(tǒng),使用命令:
reboot -- -r
三、Solaris10網(wǎng)絡(luò)連接測(cè)試方法
在使用網(wǎng)絡(luò)的過(guò)程中經(jīng)常由于種種原因使得網(wǎng)絡(luò)不能正常通訊,由于造成網(wǎng)絡(luò)故障的原因很多,需要根據(jù)實(shí)際情況,最大范圍內(nèi)的收集信息并做出判斷,逐步縮小故障范圍,從而最終找到故障點(diǎn)并加以解決。在排除網(wǎng)絡(luò)故障的過(guò)程中,排錯(cuò)的步驟方法很重要,所以管理員要在實(shí)踐中不斷的積累經(jīng)驗(yàn)并提高排錯(cuò)能力。
Solaris 10作為客戶機(jī)不能連接互聯(lián)網(wǎng)
下面的案例中假設(shè)用戶的 Linux主機(jī)是通過(guò)所在局域網(wǎng)的網(wǎng)關(guān)連接到互聯(lián)網(wǎng)的,現(xiàn)在該Solaris 10主機(jī)中不能使用瀏覽器通過(guò)域名訪問(wèn)互聯(lián)網(wǎng)中的站點(diǎn),通??梢园凑障旅娴牟襟E進(jìn)行排錯(cuò)。
(1)排除非自身因素
首先需要排除的是非自身因素,即保證網(wǎng)卡、ADSL設(shè)備本身沒(méi)有物理故障。
(2)查看本機(jī)IP地址
如確定不是物理故障就可以從自身找原因了:
使用ifconfig命令查詢本機(jī)的IP地址是否設(shè)置正確。
使用route命令查詢系統(tǒng)路由表是否正確,尤其是缺省網(wǎng)關(guān)地址是否正確。
檢測(cè)本機(jī)IP地址是否與所設(shè)定的網(wǎng)關(guān)在同一網(wǎng)段。
(3)檢測(cè)與網(wǎng)關(guān)的連接
上面的步驟如果都正確,進(jìn)行下面的測(cè)試:
使用ping命令測(cè)試與網(wǎng)關(guān)的網(wǎng)絡(luò)連接是否正確,如果不正確,可能是與網(wǎng)關(guān)主機(jī)的連接出現(xiàn)了問(wèn)題。
使用ping命令測(cè)試與同局域網(wǎng)中的其他主機(jī)的網(wǎng)絡(luò)連接是否正確,如果也不正確,說(shuō)明當(dāng)前主機(jī)與局域網(wǎng)連接有問(wèn)題。
(4)監(jiān)測(cè)與互聯(lián)網(wǎng)的連接
若主機(jī)與網(wǎng)關(guān)的連接正確,可以使用 ping 命令測(cè)試與互聯(lián)網(wǎng)中主機(jī)的網(wǎng)絡(luò)連接,如果不正確,可能是網(wǎng)關(guān)接入互聯(lián)網(wǎng)出現(xiàn)了問(wèn)題。
通常情況下可以 ping 互聯(lián)網(wǎng)中 DNS 服務(wù)器的 IP 地址,因?yàn)樵诓荒苷_M(jìn)行域名解析時(shí),DNS 服務(wù)器的 IP 地址是最容易獲得的,并且測(cè)試與 DNS 服務(wù)器的網(wǎng)絡(luò)連接也是很必要。只有確定與 DNS 服務(wù)器的網(wǎng)絡(luò)連接正確才有可能正常的解析域名。
(5)測(cè)試域名解析
如果本機(jī)與互聯(lián)網(wǎng)中的主機(jī)連接正常,并且能夠與DNS服務(wù)器正常連接,下一步需要使用 nslookup 命令測(cè)試當(dāng)前主機(jī)使用的DNS服務(wù)器是否能夠正確進(jìn)行域名解析。 如果該 DNS 服務(wù)器不能正常解析域名,可以更換其他的DNS服務(wù)器并進(jìn)行測(cè)試。
當(dāng)然網(wǎng)絡(luò)中出現(xiàn)的故障大都是不可預(yù)見的,還需要根據(jù)實(shí)際的情況,分析并加以解決,上面案例中的描述只是最一般的步驟。
網(wǎng)絡(luò)測(cè)試工具的使用
1、檢查活動(dòng)網(wǎng)絡(luò)接口的狀態(tài)。
#ifconfig –a
在本例中,我們看到有兩個(gè)網(wǎng)絡(luò)接口elxl0和mxfe端口都在活動(dòng)狀態(tài),其中一個(gè)端口的地址是192.168.40.101,另一個(gè)端口的地址是192.168.40.101 。
說(shuō)明:下表介紹了 ifconfig 查詢中的變量信息。使用圖1輸出作為示例。
變量
屏幕輸出
說(shuō)明
接口名稱
elxl0
指示已在 ifconfig 命令中請(qǐng)求其狀態(tài)的接口的設(shè)備名稱。
接口狀態(tài)
flags=100843<UP
顯示接口的狀態(tài),包括當(dāng)前與接口關(guān)聯(lián)的所有標(biāo)志??梢該?jù)此確定接口當(dāng)前已初始化 (UP) 還是未初始化 (DOWN)。
廣播狀態(tài)
BROADCAST
指示接口支持 IPv4 廣播。
傳輸狀態(tài)
RUNNING
指示系統(tǒng)正在通過(guò)接口傳輸包。
多點(diǎn)傳送狀態(tài)
MULTICAST, IPv4
顯示接口支持多點(diǎn)傳送傳輸。示例中的接口支持 IPv4 多點(diǎn)傳送傳輸。
最大傳輸單位
mtu 1500
顯示此接口的最大傳輸大小為 1500 個(gè)八位字節(jié)。
IP 地址
inet 192.168.40.12
顯示為接口指定的 IPv4 或 IPv6 地址。接口示例 eri0 的 IPv4 地址為 10.1.1.8。
網(wǎng)絡(luò)掩碼
netmask ffffff00
顯示特定接口的 IPv4 網(wǎng)絡(luò)掩碼。請(qǐng)注意,IPv6 地址不使用網(wǎng)絡(luò)掩碼。
廣播地址
broadcast 192.168.40.255
廣播地址是192.168.40.255
MAC 地址
ether 0:0:e8:a0:25:86
顯示接口的以太網(wǎng)層的MAC地址。
2、使用hostname顯示主機(jī)名稱
# hostname
Cjh
3、ping 命令
與Windows、Linux主機(jī)一樣,Solaris使用ping命令來(lái)探測(cè)遠(yuǎn)端的主機(jī)時(shí)候存在。也可以使用ping命令來(lái)測(cè)試網(wǎng)絡(luò)的連通性。例如:
#ing www.yahoo.con.cn
yahoo.con.cn is alive
4、使用netstat命令監(jiān)控網(wǎng)絡(luò)狀態(tài)
netstat命令顯示網(wǎng)絡(luò)和網(wǎng)絡(luò)協(xié)議的統(tǒng)計(jì)狀態(tài)。你可以顯示TCP、SCTP和UDP協(xié)議的狀態(tài),也可以顯示路由表的信息和端口信息。
顯示TCP的傳輸狀態(tài),使用命令:
# netstat |more
顯示路由表信息,使用命令:netstat –r
5、traceroute命令是用來(lái)檢查到目的網(wǎng)絡(luò)的路由途徑的。
在Windows中,tracert命令與此命令相同。命令的使用和輸出如下。?
檢查到192.168.40.12主機(jī)的路由途徑,使用命令:#traceroute 192.168.40.12traceroute: Warning: Multiple interfaces found; using 192.168.40.12 @ elxl0traceroute to 192.168.40.12 (192.168.40.12), 30 hops max, 40 byte packets1 cjh (192.168.40.12) 0.260 ms 0.166 ms 0.059 ms可以看出,需要經(jīng)過(guò)一個(gè)路由,能從本主機(jī)到達(dá)192.168.40.12主機(jī)。
6、使用snoop命令來(lái)查看包的傳輸在Solaris系統(tǒng)下,有一個(gè)系統(tǒng)內(nèi)置的網(wǎng)絡(luò)數(shù)據(jù)分析和診斷工具snoop,可以抓取以太網(wǎng)中的數(shù)據(jù)包進(jìn)行分析,它可捕獲IP 包并將其顯示或保存到指定文件。這個(gè)工具都是通過(guò)捕捉網(wǎng)絡(luò)的分組,然后按照不同的形式顯示或輸出這些分組?診斷網(wǎng)絡(luò)故障的第一步就是收集信息?包括從用戶收集一些反映問(wèn)題本質(zhì)的信息,也包括來(lái)自網(wǎng)絡(luò)的信息?成功與否在很大程度上取決于收集信息的效率和所收集的信息的質(zhì)量?分組捕捉與分析是診斷故障的最終方法,也是最復(fù)雜的方法,通過(guò)實(shí)時(shí)地收集分組數(shù)據(jù),對(duì)流量加以分析,能夠了解網(wǎng)絡(luò)內(nèi)部到底發(fā)生了什么事情?當(dāng)然不當(dāng)?shù)氖褂靡矔?huì)對(duì)系統(tǒng)安全造成威脅,因?yàn)檫@些工具可能獲得敏感的信息?這類工具有多種不同的名稱,如分組嗅探器(PacketSniffer)?分組分析器(PacketAnalyzer)?協(xié)議分析儀(ProtocolAnalyzer)和流量監(jiān)視器(TrafficMonitor)等?它們之間的主要差別是對(duì)捕捉到的分組所做的分析量的多少?如分組嗅探器是工作量最少的工具,而協(xié)議分析儀是工作量最大的工具,位于二者之間的是分組分析器工具?流量監(jiān)視器以提供統(tǒng)計(jì)數(shù)據(jù)為主,有時(shí)也可能提供原始的分組數(shù)據(jù)?snoop屬于分組嗅探器,tcpdump屬于分組分析器,而ethereal屬于協(xié)議分析儀?snoop本身能夠運(yùn)行在以太網(wǎng)環(huán)境下的solaris系統(tǒng)中,然后依靠網(wǎng)卡的混雜模式從網(wǎng)絡(luò)中讀 取流過(guò)的所有數(shù)據(jù)包,當(dāng)然,這依賴于網(wǎng)絡(luò)必須是共享式以太網(wǎng)(使用集線器),或者在交換機(jī)上 配置SPAN功能把所有流量鏡像到snoop所運(yùn)行的機(jī)器。如果網(wǎng)絡(luò)是運(yùn)行在除以上兩者之外的交 換網(wǎng)絡(luò)上的話,那么snoop只能夠獲取到廣播數(shù)據(jù),以及發(fā)往主機(jī)自身的數(shù)據(jù)。下面看看幾個(gè)例子:l 監(jiān)聽所有以本機(jī)為源和目的的包并將其顯示出來(lái)。# /usr/sbin/snoop
監(jiān)聽所有以本機(jī)為源和目的的包并將其顯示出來(lái)l 監(jiān)聽所有主機(jī)cjh1和cjh2之間的包并將其保存到文件file1# snoop -o file1 cjh1 cjh2 Using device /dev/elxl0 (promiscuous mode)l 顯示文件file1中指定的包(第5~10行)。# snoop –i file1 -p 5,10
7、使用nslookup命令來(lái)檢查DNS客戶端配置是否正確。
#nslookup> www.cjh.netServer: cjh.netAddress: 192.106.0.20Non-authoritative answer:Name: www.cjh.netAddress: 192.36.44.6有這樣的反饋結(jié)果說(shuō)明DNS客戶端設(shè)置成功。我們安裝完成一臺(tái)Solaris 10服務(wù)器或者工作站后通常要做的是配置TCP/IP網(wǎng)絡(luò),這樣Solaris 10服務(wù)或者工作站才能和網(wǎng)絡(luò)中的其他計(jì)算機(jī)進(jìn)行聯(lián)機(jī)。多數(shù)情況下并不復(fù)雜,只需要一些網(wǎng)絡(luò)方面的設(shè)計(jì)和配置知識(shí)。