全部博文(73)
分类: 系统运维
2009-04-24 13:04:04
介绍solaris的Internet 层
主要讨论Internet层的功能。有关于存储片,IP地址,数据报和广播地址的定义,以及如何使用ifconfig来检查网络接口状态及改变网络接口参数。以下的两节继续在Internet层上的有关于路由和子网的内容。
IP协议(Internet Protocol)
IP协议建立在系统内核中,主要提供三个服务:
l 使基本传输数据单元通过TCP/IP套传输
l 通过选择一条路径来实现路由功能,并发送数据
l 包括了一套比较具体的不可靠包发送规则。这些规则决定什么时候,而且如何处理IP产生的错误信息和丢弃包。
——数据报(Datagrams)
数据报是通过一个TCP/IP网络发送的基本的信息单元。数据报在一个以太帧的数据区。数据报内有包含信息的数据报头,如,源地址和目的地址。头还包括使
用哪个协议来传输数据(如UDP,TCP或者ICMP)和一个TTL段来决定在它终止前可以有多少个网关或主机能处理这个数据报。
——存储片(Fragmentation)
存储片是是更小的数据传输单元。因为数据必须成为以太帧的一部分,它可能会被分成更小的数据片以便于使它封装入以太帧中。
数据片大小由网络接口和硬件层的MTU来决定。
——IP地址
IP地址是网络主机的唯一标识。IP地址一共32位,每八位一段,分为四段,每段的值介于0和255之间,如:129.150.182.31
每个IP地址标识一个网络和网络上的唯一主机。第一段决定了主机的地址类型。共分为四类:A类,B类,C类,D类。
——A 类地址,非常巨大的网络(最多可有1600万主机)
如果第一位为0,那么后七位就是网络号,而后24位则是主机号。允许有127个A类地址。[1——126]
首段为127的地址是保留地址,被称做 loopback,一个 loopback是指可以允许主机给它自己发送包的地址接口,在Solaris中,loopback是127.0.0.1
——B类地址,大型网络(最多可有65000个主机)
如果最前的两位为10,那么接着的后14位就是网络号,后两段为主机地址。一共可以有16384个B类网络。[128——191]
——C类地址,中小型网络(最多可有254台主机)
如果最前的三位是110,那么接着的后21位就是网络号,最后的8位为主机地址,最多可有2,097,152个C类网。[192——223]
——D类地址,多点传送地址
如果最前的四位是1110,这样,最前的段就在224——239间,这些地址是多点传送的地址,其后保留的28位由特定的多点传送的组识别码组成。一个IP的多点传送地址是一个或多个主机的目标地址,当一个A类,B类或C类为一个特定的主机指定地址时。
------------------------------------------------------------------------------------------------------
注意:IP的多点传送地址映射成一个MAC的多点传送地址以便于网络接口进行监听。低位的23位IP地址可以代替MAC的23位低位地址。如:一个IP为224.0.0.0的地址可以映射成——01:00:5e:00:00:00
——保留的网络和主机地址
IP地址全部为0的不是一个特定的主机,它表示一个网络。IP地址全部为1的也不是一个主机,它表示特定网络所有主机的广播地址。
——广播地址
广播地址就是网络中用来广播的。广播也就意味着数据被同时发送给网络中的所有主机。在Solaris 2.x环境中,默认的广播地址是主机号全部为1的地址,如:128.50.255.255
注意:在SunOS操作系统中,使用网络号全部为0的地址为广播地址。如:128.50.0.0 所以,Sun系统进程同样监听广播地址0或者255,以保持向后兼容性。
网络接口
——命令/sbin/ifconfig的使用
ifconfig 命令由超级用户使用,用来配置所有的网络接口参数。它在系统启动时由/etc/reS.d/S30rootusr脚本调用。同时,它后来也会被 NIS/NIS+来重新设置网络接口配置,并通过调用脚本/etc/re2.d/S72inetsvc进入启动序列。Ifconfig命令也可以被用来重 新定义一个接口的IP地址或其它的操作参数。
检查网络接口
例如:
*检查所有网络接口的状态:
# ifconfig –a
lo0: flags=849
inet 127.0.0.1 netmask ff000000
le0: flags=863
mtu 1500 inet 128.50.1.2 netmask ffff0000 broadcast
128.50.255.255
ether 8:0:20:75:6e:
*
# ifconfig le0
le0: flags=863
mtu 1500 inet 128.50.1.2 netmask ffff0000 broadcast
128.50.255.255
ether 8:0:20:75:6e:
l lo0,le0——网络接口的设备名
l Flags——网络接口状态的数字表示方式,状态变量已经在包中定义,将在后来讨论。
l MTU——MTU用来定义包的存储片
l Inet——接口的Internet 地址
l etmask——掩码应用于网络层包的输入和输出。掩码被用来定义哪些值是用来表示
网络地址的位。
l Broadcast——广播地址,用来发送信息到所有主机。
l Ether——由ARP使用的以太网地址(MAC)
——状态段
l UP——这个标志指出这个接口是开放的,可以发送和接收数据。
l DOWN——相反的,这个标志指出这个接口是关闭的,也就是说,此时不能为主机发送和转发包。
l NOTRAILERS——这个标志指出了一个报文尾不包括以太帧的尾部。报文尾是在
Berkerley Unix系统中使用的把信息头加到包尾的一种方式。在
Solaris2.x系统中已经不支持。
l RUNNING——这个标志指出,该接口已经被系统识别。
l MULTICAST——这表示接口支持多路传送地址。
l BROADCAST——这表示接口支持广播地址。
网络地址配置
——解决网络接口故障
丢失,不完整,或不正确的配置网络接口参数,将会引起连接失败。如:一个主机可能拒绝挂接(mount)远程文件系统,拒绝发送和接收邮件,拒绝执行打印任务,如果一个主机的接口配置错误的话。
为了确保主机接口配置的正确,要检查如下几项:
l 所有的接口状态是否为UP
l IP地址是否正确
l 子网掩码是否正确
l 广播地址是否正确
——重新配置网络接口参数
* 允许一个网络接口(Enable)
# ifconfig le0 up
# ifconfig le0
le0: flags=863
mtu 1500 inet 128.50.1.2 netmask ffff0000 broadcast
128.50.255.255
ether 8:0:20:75:6e:
*
# ifconfig le0 down
# ifconfig le0
le0: flags=863
inet 128.50.1.2 netmask ffff0000 broadcast 128.50.255.255
ether 8:0:20:75:6e:
*
# ifconfig le0 unplumb
# ifconfig le0
ifconfig : SIOCGIFFLAGS:le0:no such interface
*打开一个网络接口(Open)
# ifconfig le0 plumb
# ifconfig le0
le0:flags=842
inet
ether 8:0:20:75:6e:
*
# ifconfig le0 inet 128.50.1.2 –trailers up
# ifconfig le0
le0: flags=842
mtu 1500 inet 128.50.1.2 netmask ffff0000 broadcast
128.50.255.255
ether 8:0:20:75:6e:
*
# ifconfig le0 netmask 255.255.255.0 broadcast +
# ifconfig le0
le0: flags=843
inet 128.50.1.2 netmask ffffff00 broadcast 128.50.1.255
ether 8:0:20:75:6e:
*
# ifconfig –a
lo0: flags=849
inet 127.0.0.1 netmask ff000000
le0: flags=863
inet 128.50.1.5 netmask ffffff00 broadcast 128.50.255.255
ether 8:0:20:75:8b:59
le1: flags=842
inet 128.50.3.6 netmask ffffff00 broadcast 128.50.255.255
ether 8:0:20:75:8b:59
# ifconfig –a broadcast +
# ifconfig –a
lo0: flags=849
inet 127.0.0.1 netmask ff000000
le0: flags=863
inet 128.50.1.5 netmask ffffff00 broadcast 128.50.1.255
ether 8:0:20:75:8b:59
le1: flags=842
inet 128.50.3.6 netmask ffffff00 broadcast 128.50.3.255
ether 8:0:20:75:8b:59