一、理解Solaris 10网络控制文件
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所示。
表-1 /etc/resolv.conf文件的配置选项
选 项 说 明
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
三、Solaris 10网络连接测试方法
在使用网络的过程中经常由于种种原因使得网络不能正常通讯,由于造成网络故障的原因很多,需要根据实际情况,最大范围内的收集信息并做出判断,逐步缩小故障范围,从而最终找到故障点并加以解决。在排除网络故障的过程中,排错的步骤方法很重要,所以管理员要在实践中不断的积累经验并提高排错能力。
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
图-1 检查活动网络接口的状态
在本例中,我们看到有两个网络接口elxl0和mxfe端口都在活动状态,其中一个端口的地址是192.168.40.101,另一个端口的地址是192.168.40.101 。
说明:下表介绍了 ifconfig 查询中的变量信息。使用图1输出作为示例。
变量
列表,最多六个
屏幕输出
[/td][td=1,1,61%]
说明
[/td][/tr][tr][td=1,1,15%]
接口名称
[/td][td=1,1,23%]
elxl0
[/td][td=1,1,61%]
指示已在 ifconfig 命令中请求其状态的接口的设备名称。
[/td][/tr][tr][td=1,1,15%]
接口状态
[/td][td=1,1,23%]
flags=100843<UP
[/td][td=1,1,61%]
显示接口的状态,包括当前与接口关联的所有标志。可以据此确定接口当前已初始化 (UP) 还是未初始化 (DOWN)。
[/td][/tr][tr][td=1,1,15%]
广播状态[/td][td=1,1,23%]
BROADCAST
IP 地址
[/td][td=1,1,23%]
inet 192.168.40.12
[/td][td=1,1,61%]
显示为接口指定的 IPv4 或 IPv6 地址。接口示例 eri0 的 IPv4 地址为 10.1.1.8。
[/td][/tr][tr][td=1,1,15%]
网络掩码
[/td][td=1,1,23%]
netmask ffffff00
[/td][td=1,1,61%]
显示特定接口的 IPv4 网络掩码。请注意,IPv6 地址不使用网络掩码。
[/td][/tr][tr][td=1,1,15%]
广播地址
[/td][td=1,1,23%]
broadcast 192.168.40.255
[/td][td=1,1,61%]
广播地址是192.168.40.255
MAC 地址
[/td][td=1,1,23%]
ether 0:0:e8:a0:25:86
[/td][td=1,1,61%]
显示接口的以太网层的MAC地址。
[/td][/tr][/table]
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
图-2 显示路由表信息
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 如图-3 。
图3
监听所有以本机为源和目的的包并将其显示出来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
图-4 显示文件file1中指定的包
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服务或者工作站才能和网络中的其他计算机进行联机。多数情况下并不复杂,只需要一些网络方面的设计和配置知识。
指示接口支持 IPv4 广播。
[/td][/tr][tr][td=1,1,15%]
传输状态
[/td][td=1,1,23%]
RUNNING
[/td][td=1,1,61%]
指示系统正在通过接口传输包。
[/td][/tr][tr][td=1,1,15%]
多点传送状态
[/td][td=1,1,23%]
MULTICAST, IPv4
[/td][td=1,1,61%]
显示接口支持多点传送传输。示例中的接口支持 IPv4 多点传送传输。
[/td][/tr][tr][td=1,1,15%]
最大传输单位
[/td][td=1,1,23%]
mtu 1500
[/td][td=1,1,61%]
显示此接口的最大传输大小为 1500 个八位字节。
评论关闭。