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