Solaris10服务器TCP/IP配置实战
一理解Solaris 网络控制文件
Solaris 使用下列网络控制文件来管理TCP/IP网络
/etc/hostnameinterface文件
这个文件是本地主机上定义的物理的端口的文件一个本地主机至少有一个这样的文件它是在安装Solaris 的过程中形成的例如/etc/hostnameerieri代表接口类型为接口编号这个文件包含一个主机名或主机的IP地址它的基本网络接口由接口编号来指定
值得一提的是我们还可以为同一个网络接口分配不同的IP地址对于一台主机内包含多个虚拟域它们都需要自己的IP地址的情况这非常有用我们这里要做的就是为每个所需要的IP地址创建一个/etc/hostname:eriX:Y文件其中的X代表物理设备接口Y代表虚拟的接口编号
/etc/nodename文件
/etc/nodename文件包含着本地计算机的名字比如本地计算机名为goodcjh那么文件/etc/nodename文件中就有goodcjh条目
/etc/defaultdomain文件
这个文件包含着所本地主机的域名
/etc/defaultrouter文件
这个文件包含着主机的默认路由地址
/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/nf文件中必须包括下行的内容
hosts: files dns
这行的意思是如果需要命名服务首先查找/etc/inet/hosts文件如果找不到就到DNS中去查找
/etc/inet/ipnodes
/etc/inet/ipnodes 文件同时存储IPv 和IPv 地址此外也可以存储以传统的点分十进制或CIDR 表示法表示的IPv 地址此文件作为将主机名与其IPv 和IPv 地址进行关联的本地数据库
子网掩码数据库
子网掩码数据库包含着主机的子网掩码如果你使用NISDNS命名服务或LDAP目录服务子网掩码数据库就在这些服务的数据库中维护如果你使用本地文件来维护子网掩码数据库这些信息就存储在/etc/inet/netmasks文件中为了与以BSD为基础的操作系统兼容Solaris 的/etc/netmasks文件是/etc/inet/ netmasks文件的软链接所有网络接口使用的子网掩码必须在/etc/inet/netmasks文件中加以定义当这些网络接口位于不同的子网或者用于不同类型的网络时这一点尤为重要ABC三类子网的掩码分别为和等我们向特定的子网发送广播消息时就需要使用这些掩码例如对于一个C类子网它可以连接台主机这些主机的IP地址从到
/etc/nf
配置域名服务客户端的配置文件用于指定域名服务器的位置当配置转换程序使用BIND查询主机时我们必须告诉转换程序使用哪一个域名服务器用来完成这项任务的工具就是/etc/nf 文件/etc/nf 文件的配置选项如表所示
表 /etc/nf文件的配置选项
选 项
说 明
domain
用来定义默认域名(主机的本地域名)转换程序会将默认域名挂在任何不含点的主机名后面
nameserver
利用IP地址让转换程序去识别查询域信息的那些服务器我们可以多次使用nameserver选项可以使用多达三个的域名服务器
serach
指定域名搜索列表最多六个
我们需要在/etc/nf文件中包含本地域名本地基本DNS服务器的IP地址以及辅助的DNS服务器的IP地址这意味着本地DNS服务器出现故障我们仍可以通过辅助的NDS服务器来提供最新的外部主机信息而不必依赖/etc/hosts文件中的数据来解析本地地址一个典型的/etc/nf文件
domain
nameserver
nameserver
serach
它表明本地域是本地域有两台基本DNS服务器其中为主DNS服务器为辅助DNS服务器
二使用命令行工具进行网络配置
配置目标假设有一台Sun 服务器我们准备把它配置为
主机名称cjh
IP地址
子网掩码
默认路由
步骤如下
首先必须获得管理员权限或者授权角色用户
进入etc目录
使用vi或者其他编辑器打开文件/etc/nodename 将主机名称 设置为cjh
编辑网络端口配置文件hostnameeri 将主机名称设置为cjh 同时把Ip地址设置为
编辑/etc/inet/hosts文件设置为
cjh cjhd
其中d是主机suncjh的域名
在文件/etc/defaultdomain加入域名
d
编辑文件/etc/defaultrouter
把设置为
修改子网掩码数据库文件/etc/inet/netmasks
设置为
重新引导系统使用命令
reboot r
三Solaris 网络连接测试方法
在使用网络的过程中经常由于种种原因使得网络不能正常通讯由于造成网络故障的原因很多需要根据实际情况最大范围内的收集信息并做出判断逐步缩小故障范围从而最终找到故障点并加以解决在排除网络故障的过程中排错的步骤方法很重要所以管理员要在实践中不断的积累经验并提高排错能力
Solaris 作为客户机不能连接互联网
下面的案例中假设用户的 Linux 主机是通过所在局域网的网关连接到互联网的现在该Solaris 主机中不能使用浏览器通过域名访问互联网中的站点通常可以按照下面的步骤进行排错
()排除非自身因素
首先需要排除的是非自身因素即保证网卡ADSL设备本身没有物理故障
()查看本机IP地址
如确定不是物理故障就可以从自身找原因了
使用ifconfig命令查询本机的IP地址是否设置正确
使用route命令查询系统路由表是否正确尤其是缺省网关地址是否正确
检测本机IP地址是否与所设定的网关在同一网段
()检测与网关的连接
上面的步骤如果都正确进行下面的测试
使用ping命令测试与网关的网络连接是否正确如果不正确可能是与网关主机的连接出现了问题
使用ping命令测试与同局域网中的其他主机的网络连接是否正确如果也不正确说明当前主机与局域网连接有问题
()监测与互联网的连接
若主机与网关的连接正确可以使用 ping 命令测试与互联网中主机的网络连接如果不正确可能是网关接入互联网出现了问题
通常情况下可以 ping 互联网中 DNS 服务器的 IP 地址因为在不能正常进行域名解析时DNS 服务器的 IP 地址是最容易获得的并且测试与 DNS 服务器的网络连接也是很必要只有确定与 DNS 服务器的网络连接正确才有可能正常的解析域名
()测试域名解析
如果本机与互联网中的主机连接正常并且能够与DNS服务器正常连接下一步需要使用 nslookup 命令测试当前主机使用的DNS服务器是否能够正确进行域名解析 如果该 DNS 服务器不能正常解析域名可以更换其他的DNS服务器并进行测试
当然网络中出现的故障大都是不可预见的还需要根据实际的情况分析并加以解决上面案例中的描述只是最一般的步骤
网络测试工具的使用
检查活动网络接口的状态
#ifconfig –a
在本例中我们看到有两个网络接口elxl和mxfe端口都在活动状态其中一个端口的地址是另一个端口的地址是
说明下表介绍了 ifconfig 查询中的变量信息使用图输出作为示例
变量
屏幕输出
说明
接口名称
elxl
指示已在 ifconfig 命令中请求其状态的接口的设备名称
接口状态
flags=<UP
显示接口的状态包括当前与接口关联的所有标志可以据此确定接口当前已初始化 (UP) 还是未初始化 (DOWN)
广播状态
BROADCAST
指示接口支持 IPv 广播
传输状态
RUNNING
指示系统正在通过接口传输包
多点传送状态
MULTICAST IPv
显示接口支持多点传送传输示例中的接口支持 IPv 多点传送传输
最大传输单位
mtu
显示此接口的最大传输大小为 个八位字节
IP 地址
inet
显示为接口指定的 IPv 或 IPv 地址接口示例 eri 的 IPv 地址为
网络掩码
netmask ffffff
显示特定接口的 IPv 网络掩码请注意IPv 地址不使用网络掩码
广播地址
broadcast
广播地址是
MAC 地址
ether ::e:a::
显示接口的以太网层的MAC地址
使用hostname显示主机名称
# hostname
Cjh
ping 命令
与WindowsLinux主机一样Solaris使用ping命令来探测远端的主机时候存在也可以使用ping命令来测试网络的连通性例如
#ing
is alive
使用netstat命令监控网络状态
netstat命令显示网络和网络协议的统计状态你可以显示TCPSCTP和UDP协议的状态也可以显示路由表的信息和端口信息
显示TCP的传输状态使用命令
# netstat |more
显示路由表信息使用命令netstat –r
图 显示路由表信息
traceroute命令是用来检查到目的网络的路由途径的
在Windows中tracert命令与此命令相同命令的使用和输出如下?
检查到主机的路由途径使用命令#traceroute traceroute: Warning: Multiple interfaces found; using @ elxltraceroute to () hops max byte packets cjh () ms ms ms可以看出需要经过一个路由能从本主机到达主机
使用snoop命令来查看包的传输在Solaris系统下有一个系统内置的网络数据分析和诊断工具snoop可以抓取以太网中的数据包进行分析它可捕获IP 包并将其显示或保存到指定文件这个工具都是通过捕捉网络的分组然后按照不同的形式显示或输出这些分组?诊断网络故障的第一步就是收集信息?包括从用户收集一些反映问题本质的信息也包括来自网络的信息?成功与否在很大程度上取决于收集信息的效率和所收集的信息的质量?分组捕捉与分析是诊断故障的最终方法也是最复杂的方法通过实时地收集分组数据对流量加以分析能够了解网络内部到底发生了什么事情?当然不当的使用也会对系统安全造成威胁因为这些工具可能获得敏感的信息?这类工具有多种不同的名称如分组嗅探器(PacketSniffer)?分组分析器(PacketAnalyzer)?协议分析仪(ProtocolAnalyzer)和流量监视器(TrafficMonitor)等?它们之间的主要差别是对捕捉到的分组所做的分析量的多少?如分组嗅探器是工作量最少的工具而协议分析仪是工作量最大的工具位于二者之间的是分组分析器工具?流量监视器以提供统计数据为主有时也可能提供原始的分组数据?snoop属于分组嗅探器tcpdump属于分组分析器而ethereal属于协议分析仪?snoop本身能够运行在以太网环境下的solaris系统中然后依靠网卡的混杂模式从网络中读 取流过的所有数据包当然这依赖于网络必须是共享式以太网(使用集线器)或者在交换机上 配置SPAN功能把所有流量镜像到snoop所运行的机器如果网络是运行在除以上两者之外的交 换网络上的话那么snoop只能够获取到广播数据以及发往主机自身的数据下面看看几个例子l 监听所有以本机为源和目的的包并将其显示出来# /usr/sbin/snoop 如图
图
监听所有以本机为源和目的的包并将其显示出来l 监听所有主机cjh和cjh之间的包并将其保存到文件file# snoop o file cjh cjh Using device /dev/elxl (promiscuous mode)l 显示文件file中指定的包(第~行)# snoop –i file p
图 显示文件file中指定的包
使用nslookup命令来检查DNS客户端配置是否正确
#nslookup> Server: Address: Nonauthoritative answer:Name: Address: 有这样的反馈结果说明DNS客户端设置成功我们安装完成一台Solaris 服务器或者工作站后通常要做的是配置TCP/IP网络这样Solaris 服务或者工作站才能和网络中的其他计算机进行联机多数情况下并不复杂只需要一些网络方面的设计和配置知识