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