LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: AMD处理器

[推荐]UNIX 系统(3月30日更新 请勿灌水。谢谢!)

[复制链接]
 楼主| 发表于 2005-4-30 18:15:01 | 显示全部楼层
[推荐]LAN硬件概述
网络管理-LAN硬件概述
LAN硬件概述
目标
学完这一章,你将能够做以下事情:
列出三种主要的LAN电缆种类和各自的优缺点。
描述IEEE 802.3/ethernet LAN的特性。
描述IEEE 802.5令牌环网的特性。
描述FDDI LAN的特性。
描述转发器,集线器,网桥,交换机,路由器和网关的作用。
描述转发器,集线器,网桥,交换机,路由器和网关的不同之处。
描述这些网络设备在OSI模型中各自的作用。
列出三种不同的LAN拓扑结构。
描述两种不同的LAN存取方式。
LAN硬件设备
LAN由以下一些硬件组成:
服务器和工作站
LAN界面卡
传输媒介
其它网络设备
 -转发器
 -集线器
 -网桥
 -交换机
 -路由器
每一个LAN都可能有工作站和服务器节点,每一个节点都有一个或者多个网络界面卡(NICS)。这些机器可以连接多种不同的传输媒介,如同轴电缆,光纤,和双绞线。它们可以组织成为不同的拓扑结构,包括总线型,环形,和星型结构。可以使用许多不同的方法存取传输媒介,包括令牌传递,和载波多路存取/碰撞检测(CSMA/CD)。
在LAN中还有其它的硬件,包括:
转发器
集线器
网桥
交换机
路由器
这一章覆盖了在局域网中十分普遍的设备和相关的硬件。并且会解释每一个设备的作用。还有与LAN硬件相关的主题,例如传输媒介类型,LAN拓扑结构,和LAN存取方式。
传输媒介
传输媒介用于连接局域网中的设备,设备和设备之间通过它来传输数据信号。一些传输媒介能支持比其它媒介更大的传输量。传输数据的能力不仅要看能通过它传输的数据量,而且还要看传输的速度和无干扰传输的距离。影响数据传输的因素有带宽,电子干扰,和衰减。
带宽      这是信道容量的一个量度;带宽越宽,容量越大。带宽能够由一个信道组成(基         带),或者能由多个信道组成(宽带)。
电子干扰   电子“噪声”的来源可能是电话线,电源线,和荧光灯这些能够干扰网络电缆传         输数据的东西。
衰减     在传输过程中,信号会变弱。当信号变弱,外部的电子干扰会增强,就会发生错         误。为了增强信号,模拟信号传输中可以使用放大器,数字信号传输可以使用转         发器。
双绞线
双绞线是由两个单独的电线组成,每一根线由不同颜色的塑料绝缘包裹,两条线绞缠在一起成为一对。非屏蔽的双绞线最初是设计为电话线。由于技术的发展,双绞线能够同时用于语音和数据信号的传输。双绞线支持的传输距离为100米。如果使用放大器和转发器,这个距离还可以增大。
非屏蔽双绞线的类型 带宽 指定 支持的规范 电缆长度
3类 15MHz 语音级 10Base-T和100VG-AnyLAN 100m
4类 20MHz none 10Base-T和100VG-AnyLAN 100m
5类 100MHz 数据级 10Base-T,100-BaseT和100VG-AnyLAN 100m(前两种)或者200m(后一种)
新的网络通常选择5类双绞线。多数的公司仍旧有三类双绞线,因为它支持电话线并且在10M网络中工作得很好。双绞线使用的标准的连接器为RJ-45(8-pin)。和50-pin的连接器。
同轴电缆
同轴电缆是由一根中心的导线周围环绕一层“屏蔽”,组成。屏蔽可以为一层铜质的网格,或者是一层铝箔套。在中心导线和周围屏蔽之间是一种绝缘材料。同轴电缆比双绞线更重,更硬。同轴电缆支持模拟信号传输,如语音,文字和视频。它很容易分接,这使扩展网络相对容易。同样它相对容易安装,这使其在LAN中使用得很频繁。在典型的情况下,同轴电缆被用作主干线路。同轴电缆支持的传输速率为10Mbps。
光纤
光纤是由玻璃纤维组成,通过光脉冲来传输数据。光纤能够支持极高的带宽。并且不受电子干扰,能够在很长的距离内提供很低的误码率。这种电缆十分便宜,但是不容易卷曲,因此不易安装。当前只能用于点到点的连接。光纤传输支持的传输率可以为10M和100M。支持语音,数据,和视频传输。
LAN传输媒介的一个对比
  双绞线 同轴电缆 光纤
传输率 10Mbps和100Mbps(100米) 10Mbps(500米) 10Mbps到100Mbps(1km)
灵活性 灵活 不灵活 灵活
容易安装 非常容易 相对容易 困难
费用 不贵 中等 不贵,但是安装时候很贵
可靠性 好 好 非常好
以下因素是选择传输媒介时,应该考虑的事情:
可靠性
容易安装和维护
灵活性(有重新配置的能力)
费用
使用条件
最大传输率
数据的安全
抗干扰性
LAN拓扑结构
拓扑结构表明网络的物理线路或电缆的布局。三种基本类型是:总线型,星型,和环型。
总线型是一种常用的连线方式,所有的设备都连接在同一条电缆上,没有任何设备有比其它设备更大的优先级。总线型的网络是由设备顺序地间隔地连接在一起。设备通过电缆分接头连接到一起。在同一时刻,信息是以广播的方式传输到各个方向。
环型网络是由工作站与工作站连接成为环型。数据通过中继的方式在工作站和工作站之间传输。
星型拓扑结构主要用在集线器和交换机,一个输入信号被复制成为多个输出信号。当单独使用一个星型结构时,它的实现同一个“折叠的总线”结构相同。
LAN的存取方式
存取方式就是在网络中如何获得对网络带宽的使用,目的是为了发送信息到网络中的其它节点。
CSMA/CD    CSMA/CD代表载波检测,多路存取和冲撞检测。这种方式可以定义为等待,发送,和监听.一个节点存取网络的时候,首先它会发送一个信息,然后监听网络中是否有信息的冲突。如果有冲突,所有的冲突的节点会检测到这种情况,然后等待一段时间重新发送这条信息。CSMA/CD在用户很多的时候效率很低,但是许多用户同时发送信息的可能性是很小的。
注意: CSMA/CD是IEEE 802.3 和以太网存取方式。
令牌传递    在这种方式下,一个令牌以一种持续的方式在节点和节点之间传递。节点只有拥有令牌才能存取网络。如果这个节点没有信息传递,它会传递令牌给下一个节点。令牌传递提供给每一个用户存取网络的机会。令牌传递在网络负载很重的情况下很有效。但是,由于网络中的一些错误导致令牌的丢失。会使整个网络失效。
注释:令牌传递能够用于环型和总线型的拓扑结构:
IEEE 802.4 = 令牌总线
IEEE 802.5 = 令牌环
FDDI = 令牌环
IEEE 802.3 标准
IEEE 802.3 标准的主要特征有:
拓扑结构     总线型
存取方式     CSMA/CD
信号技术     基带,10MHz,差分曼彻斯特编码。
IEEE802.3标准的最大的优点就是有大量的制造商设计的节点和其它设备。许多机构已经安装了IEEE802.3电缆。IEEE802.3网络叫以太网。但是以太网并不完全符合所有的IEEE802.3标准。
10BASE5   10-M基带以太网规范,使用标准的(细)50-ohm基带同轴电缆,每一个段的限制长度为500米
10BASE2   10-M基带以太网规范,使用50-ohm粗的同轴电缆,每段限制的最大长度为185米。
10BASET   10-M基带以太网规范,使用两对双绞线(3,4,5类):一对用于数据传输,一对用于数据接       收。10BaseT每段的最大长度的限制为100米。
IEEE802.3还包括有其它一些重要的规范。
100BASET    100-M基带以太网规范,使用非屏蔽的双绞线(UTP)。
100VG-AnyLAN  一种新的网络技术,在IEEE802.12中定义,以每秒100M的速率传输以太网/IEEE802.3和令牌环网 /IEEE802.5的帧。这种技术支持所有的网络设计规则和以太网和令牌环网的拓扑结构。这种特征让用户在提高传输速率的同时最大限度的利用原有的网络和基础电缆。
快速以太网   快速以太网提供必10BaseT以太网十倍的传输速率。同时保留相同的帧格式,MAC地址和MTU。这种相似性让用户可以使用已有的10BaseT应用和网络管理工具。它基于对IEEE 802.3规范的一个扩展。
IEEE 802.5标准
IEEE 802.5标准的主要的特征有:
拓扑结构   环型
存取方式   令牌传递
媒介     双绞线(多数情况)
信号技术   基带,1MHz到16MHz,差分曼彻斯特编码。
802.5标准定义了一个使用令牌传递数据的环型网络。IEEE 802.5网络通常指的是IBM的令牌环网,因为IEEE 802.5标准是基于IBM 开发的LAN技术。这和规范有一点不同,然而,到目前为止,IBM的令牌环网是最流行的IEEE 802.5兼容的网络。
FDDI 标准
光纤分布数据界面(FDDI)标准的主要特征有:
拓扑结构    双环
存取方式    令牌传递
媒介      双绞线和光纤
信号技术    基带,100MHz,NRZI编码
FDDI网络由两个独立的100Mbps的环组成:分别称为主环和次环。双环的方式提供了网络的冗余,和在网络失效时的重新配置的能力。一个FDDI环有两种类型的终端:双连终端,在这种设备同时连接主环和次环。和单连终端,这种设备只连接主环或者只连接次环。这两种类型的终端在网络出错时都能继续工作。第二种方式能够很容易将出错的终端隔离开。
FDDI网络能够包括双环终端(DAS)和单环终端(SAS)和集线器。集线器的作用是以一种星型的方式连接多个单环工作站到FDDI网络。
双环工作站同时连接两个环, 在传输出错时,能够提供容错机制。集线器被用来连接单环工作站并且提供连接到到双环的界面。集线器也有容错的能力。
转发器和终结器
转发器
转发器通过复制电信号来扩展一个网络。
转发器传递所有的信号而不进行任何错误检测
转发器同时会传递错误和碰撞信号。
终结器
终结器要求在总线型的LAN网段的末尾使用
终结器吸收信号,使其不反射回去。
转发器增大信号的强度,使其能够传输到更远的距离。例如,细缆LAN网络的地最大的传输长度为185米。通过使用转发器,你可以延长这个长度。
转发器通常被用来连接两个LAN网段。转发器通过复制信号,然后将其从一个LAN电缆传送到另外一个LAN电缆,但是在物理上还是同一个网络。
在任何两个工作站之间,最多可以允许四个转发器和五个同轴网段。在一个有5个网段的配置中,推荐只在三个段内连接工作站,这种限制是为了确保工作站之间的安全碰撞检测。
终结器用来在总线的末端吸收电信号,来防止信号发生反射。记住一定要连接终结器。
集线器
集线器
网络信号自动重发到每一个端口
工作方式象一个多口的转发器
物理上星型拓扑结构;但是逻辑上是总线拓扑结构
能够在不影响网络正常运行的情况下方便地增加和移去节点
在传输数据的同时也传输错误和碰撞信号。
工作站的连接通常使用双绞线来代替同轴电缆。
hub 就是一个多口的转发器。hub  为PC和其它系统提供了一种集中的连接点。通过使用集线器,你能够建立分离的网络并且能够扩大整个网络的规模。
网桥和交换机
网桥
网桥包含两个或者更多的分离的网络界面卡,用来连接同一个网络中的不同的网段。
网桥通过目标地址的MAC地址来传输数据帧。
网桥使用“存储和转发”来确保信息传输到另外的网段。
网桥不会传输错误和碰撞信息到另外的网段。
交换机
交换机就像一个连接有多个“碰撞域”的多口的网桥,
交换机能够同时保持多个连接;多个活动的电路,能够让数据的传输并行进行。
网桥
网桥工作在OSI的数据链路层,被用来连接两个LAN网段。网桥只能解决在数据传输中的源与目标工作站之间的链路层的问题,而不会处理IP地址。
网桥的一个优点是在一个单个的网络中创建另外的“碰撞域”,一个没有网桥的网络只有一个碰撞域,这意味着在同一时刻,网络上只能有一个数据包在传输(没有任何碰撞)。当一个网桥被加入到这个网络中,整个网络被分成两个碰撞域,这意味着网络中可以同时有两个数据包在传输。一个数据包可以在网桥的左边传输,第二个包可以在网桥的右边传输。
网桥使用“存储和转发”技术来确保一个网段中的错误信号不会传递到另外一个网段,包括冲突信号。在网桥左边网段的冲突信号不会影响到网桥右边网段的数据包的传输。
象转发器一样,网桥可以用来扩展一个LAN。网桥可以通过链接层的地址来过滤数据帧,将一个过于繁忙的网络分割为独立的网段。在工作站被添加到一个LAN 的左边或者右边,网桥会自动识别。如果帧中的目标地址属于另外一边的工作站,它会仅仅传输这个帧。这会帮助减轻网段的负载。
网桥还能被用来增强网络的安全,方式是通过限制数据的流向。网桥同样能够配置为只传输指定地址的帧
在网络中任何两个节点之间最多可以连接8个网桥。如果在网桥之间使用转发器的话,还可以增加网段的数量。
网桥工作在OSI模型的第二层。因此,它能够连接两种不同类型的网络(例如,以太网和令牌环网)。LAN的配置仍旧和一个单独的网络一样。网络中所有工作站的IP地址都使用同样的网络地址。
交换机
交换机能够提供网桥的大多数功能,交换机能够被用来连接不同类型的LAN,能够通过MAC地址来过滤帧,来将一个繁忙的网络隔离为分离的网段。
与网桥不同的是,交换机可以管理多个并行的对话。这会帮助提高LAN的性能。
交换机工作在OSI模型的第二层。路由器和网关
路由器
路由器连接不同的网络和不同类型的LAN
路由器传输数据依靠的是目标的IP地址。
路由器之间交换路由信息并且使用这些信息来构建路由表。
每个路由器至少有两个LAN卡;每个卡都有自己的IP地址。
路由器不会发送广播包,广播包会被丢掉
网关
网关主要用在广域网中。
路由器
路由器连接两个或更多的独立的网络(有不同的网络地址),在连接远程网络的时候需要使用路由器。
路由器能够连接的网络覆盖OSI模型的1-3层。例如,以太网和X.25分组交换网
路由器能够执行所有的网桥能够进行的工作。
路由器工作在OSI模型的1,2,和3层。
网关
网关匹配OSI模型的所有的七层。
网关连接不同的的网络结构,例如以太网-TCP/IP,和IBM的SNA.
网关是运行相关软件的,有特殊目的的计算机。并且至少有两块网卡。
网关必须转换所有的协议层,这会降低网络的性能。
网关能够执行网桥和路由器的所有的工作。
注释:术语路由器和网关通常使用都不正确。它们之间的容易混淆,是因为他们是不同的设备,而执行相同的功能。
总结
OSI层 相关的协议和LAN硬件
7 网关
6 网关
5 网关
4 网关
3 路由器,网关
2 IEEE 802.3,IEEE 802.5,FDDI,网桥,交换机
1 双绞线,同轴电缆,光纤,转发器,终结器,集线器
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-30 18:17:17 | 显示全部楼层
[推荐]配置IP连通性
网络管理-配置IP连通性
配置IP连通性
目标:
完成这一章,你能做以下事情:
为一块新安装的网卡配置软件和驱动程序。
以命令行的方式配置和浏览系统的主机名。
以命令行方式配置和浏览系统的IP地址。
安装一块新的网卡后,修改/etc/hosts文件。
1.网络图
系统管理员应该有一份包括他所管理的所有的LAN硬件的网络图。这个网络图中至少应该有:
局域网所在的建筑或房间的大概的尺寸
局域网电缆的类型,包括终结器的类型
转发器,集线器,网桥,路由器,和网关的位置
每个节点的位置,和每一个节点的:
主机名
IP地址
链路层地址
网卡的硬件地址
操作系统的信息
你可以使用一个在线的工作表格,其中包括所有不需要用图形方式来描述的信息:如主机名,真实的名字,LAN网卡类型,IP地址,链路层地址。LANIC地址 操作系统类型等等。
有的工具,如HP Open View提供了网络图的图形界面,并且可以使用一个网络管理系统和简单网络管理协议(SNMP)来对你的网络进行管理。HP Open View由几个子产品构成,每一个可以单独购买
HP Open View Network Node Manager
Hp Open View IT/Operations
2. 通过/etc/rc.config.d/netconf来配置IP网络
当系统启动的时候会执行脚本/sbin/init.d/hostname和/sbin/init.d/net。这两个启动脚本都会从配置文件/etc/rc.config.d/netconf中读取配置参数,并且使用这些参数来进行系统初试化。
这些脚本中执行的命令有:
hostname   设置系统的主机名
ifconfig   设置IP地址,子网掩码,和本地回路地址
route     在系统的路由表中添加记录
3.配置网络连通性
系统启动的时候会使用/etc/rc.config.d/netconf文件来配置一个网卡的IP地址。文件中指明了IP地址和网卡名称(还有其它的相关信息)。
一个netconf文件的例子:
# netconf: configuration values for core networking subsystems
# @(#) $Revision: 1.6.119.6 $ $Date: 97/09/10 15:56:01 $
# HOSTNAME: Name of your system for uname -S and hostname
# OPERATING_SYSTEM: Name of operating system returned by uname -s
# ---- DO NOT CHANGE THIS value ----
# LOOPBACK_ADDRESS: Loopback address
# ---- DO NOT CHANGE THIS value ----
# IMPORTANT: for 9.x-to-10.0 transition, do not put blank lines between
# the next set of statements
HOSTNAME="v2500b"
OPERATING_SYSTEM=HP-UX
LOOPBACK_ADDRESS=127.0.0.1
# Internet configuration parameters. See ifconfig(1m), autopush(1m)
# INTERFACE_NAME: Network interface name (see lanscan(1m))
# IP_ADDRESS: Hostname (in /etc/hosts) or IP address in decimal-dot
# notation (e.g., 192.1.2.3)
# SUBNET_MASK: Subnetwork mask in decimal-dot notation, if different
# from default
# BROADCAST_ADDRESS: Broadcast address in decimal-dot notation, if
# different from default
# INTERFACE_STATE: Desired interface state at boot time.
# either up or down, default is up.
# DHCP_ENABLE Determines whether or not DHCP client functionality
# will be enabled on the network interface (see
# auto_parms(1M), dhcpclient(1M)). DHCP clients get
# their IP address assignments from DHCP servers.
# 1 enables DHCP client functionality; 0 disables it.
# For each additional network interfaces, add a set of variable assignments
# like the ones below, changing the index to "[1]", "[2]" et cetera.
# IMPORTANT: for 9.x-to-10.0 transition, do not put blank lines between
# the next set of statements
INTERFACE_NAME[0]=lan0
IP_ADDRESS[0]=192.1.1.2
SUBNET_MASK[0]=255.255.255.0
BROADCAST_ADDRESS[0]=""
INTERFACE_STATE[0]=up
DHCP_ENABLE[0]=0
:
:
4.ifconfig命令
ifconfig 命令被用来:
为一个网卡分配一个IP地址
设置本地环路界面
分配一个子网掩码(可选)
这个命令在系统启动的时候通过/sbin/init.d/net脚本自动执行的。也可以在任何时候以命令行的方式执行。
以下是这个命令的语法:
ifconfig interface addr_family [address] [ parameters]
其中
interface   一个最大四位的字符串,最后一个字符是数字,例如lan0。这个字符串代表网卡。       数字表示网卡的 instance。对有的系统来说,网卡的instance是自动分配的。首先       配置的网卡是lan0。而lo0指明这是本地回路。
add_family   对DARPA Internet协议来说,唯一支持的是inet(默认的),。
address     数字形式的IP地址
parameters   最重要的参数是up,down,arp,-arp,和netmask。
       up  激活这个网卡
       down 关闭这个网卡
       [-] arp
          在OSI模型的第二层和第三层(链路层和网络层)之间禁用/使用地址解析协议
       netmask subnet
          子网位掩盖网络部分。并指明了在将网络分割为子网的时候所保留地址的数           量。我们会在下一章中详细讨论。
如果你直接使用ifconfig interface命令而没有加上任何参数。会显示当前有效网卡的名字,IP地址,子网掩码,广播地址和其它信息。
# ifconfig lan0
lan0: flags=863<up,BROADCAST,RUNNING,MULTICAST>
    inet 192.6.1.72 netmask ffffff00 broadcast 192.6.1.255
5.IP多路技术
www.acme.com     www.bob.com    www.kcith.com
16.1.1.1 16.2.2.2 17.1.1.1
             lan0
现在大多数的UNIX版本的TPC/IP协议堆栈都可以用一个LAN界面支持多个逻辑界面。逻辑界面让你可以在一个物理界面上配置多个IP地址。使用这个功能,你可以为一个物理网卡配置多个IP地址。
使用IP多路技术,一个单独的系统可以被看成是拥有不同的IP地址和主机名的多个系统,即使这个系统只有一块物理网卡。这个功能可以在一台机器上让不同应用使用多个instances。就象这些应用在单独的机器上运行一样。
举个例子,一个ISP需要为Acme,Bob和Keith三家公司提供website。使用IP多路复用,一个只有一块网卡的系统可以有三个不同的IP地址,每个属于不同的网站。从外部看来,就和Acme,Bob,和Keith公司的网站建立在不同的机器上一样。
分配给一个卡的IP地址可以在相同的子网内,也可以在不同的子网内。在这个例子里,两个IP地址是在同一个子网(16.1.1.1和16.2.2.2)而另外一个在不同的子网内(17.1.1.1)。
IP/Ethernet 对IP/IEEE 802.3
当一个网卡同时用作传输IP/Ethernet和IP/IEEE 802.3数据包的时候,也可以使用逻辑网卡。使用ethernet和 IEEE 802.3发送IP包需要不同逻辑网卡。要同时发送两种包,你必须配置两个不同的IP地址。同时这两个IP地址必须在两个不同的子网内。
ifconfig和/etc/rc.config.d/netconf中使用的网卡名可以在网卡名后面加上逻辑instances号,例如(lan0:1)。语法为:
  nameX[:logical_instance]
其中
X   
        为逻辑单元号。表示网卡物理位置的一个数字的索引。
logical_instance
        对应于指定的网卡的一个逻辑的索引号。默认为0,网卡名lan0和lan0:0代表的        是相同的网卡。
第一个逻辑instance号(逻辑instance为0)代表这是第一个逻辑网卡。第一个instance必须在配置后面一个instance之前配置。例如,lan2:0(或者lan2)必须在lan2:1之前配置。一旦你配置第一个逻辑界面,你就可以以任意的顺序配置后面的逻辑网卡。
例子:
这个系统有两个物理网卡和三个逻辑网卡。使用ifconfig命令可以配置三个逻辑网卡:
# ifconfig lan0:0 inet 16.1.1.1
# ifconfig lan0:1 inet 16.2.2.2
# ifconfig lan1:0 inet 18.1.1.1
/etc/rc.config.d/netconf 文件如下:
INTERFACE_NAME[0]=lan0
IP_ADDRESS[0]=16.1.1.1
SUBNET_MASK[0]=255.0.0.0
BROADCAST_ADDRESS[0]=""
INTERFACE_STATE[0]=up
DHCP_ENABLE[0]=0
INTERFACE_NAME[1]=lan0:1
IP_ADDRESS[1]=16.2.2.2
SUBNET_MASK[1]=255.0.0.0
BROADCAST_ADDRESS[1]=""
INTERFACE_STATE[1]=up
DHCP_ENABLE[1]=0
INTERFACE_NAME[2]=lan1
IP_ADDRESS[2]=18.1.1.1
SUBNET_MASK[2]=255.0.0.0
BROADCAST_ADDRESS[2]=""
INTERFACE_STATE[2]=up
DHCP_ENABLE[2]=0
配置SNAP/IEEE 802.3界面
物理网卡1
16.1.1.1 lan0:0 17.1.1.1 snap0:0
(ethernet)          (SNAP/IEEE802.3)
在这个例子中,系统有一个物理网卡,和两个逻辑网卡。其中一个逻辑网卡被SNAP/IEEE802.3使用。使用如下的ifconfig命令来配置:
# ifconfig lan0:0 inet 16.1.1.1
# ifconfig snap0:0 inet 17.1.1.1
/etc/rc.config.d/netconf中的配置如下:
INTERFACE_NAME[0]=lan0
IP_ADDRESS[0]=16.1.1.1
SUBNET_MASK[0]=255.0.0.0
BROADCAST_ADDRESS[0]=""
INTERFACE_STATE[0]=up
DHCP_ENABLE[0]=0
INTERFACE_NAME[1]=snap0:0
IP_ADDRESS[1]=17.1.1.1
SUBNET_MASK[1]=255.0.0.0
BROADCAST_ADDRESS[1]=""
INTERFACE_STATE[1]=up
DHCP_ENABLE[1]=0
注意snap0:0的IP地址不能和lan0:0的IP地址在同一个网段上。同时snap逻辑网卡(snap0:0)的逻辑instance号是0,不是1。对每个界面名字来说,逻辑instance号都是从0开始的。
5./etc/hosts文件
/etc/hosts文件可以将主机名和别名解析为IP地址。这样用户可以用便于记忆的字符名称来代替难记的IP地址。
配置LAN 9000连接不要求使用/etc/hosts文件。但是如果配置了这个文件,你就可以使用主机名代替IP地址立即使用预先配置好的网络服务。
如下是/etc/hosts文件的语法:
IP_address hostname [alias ...]
其中
IP_address     节点的IP地址
hostname      ARPA主机名。同在/etc/rc.config.d/netconf文件中配置的一样。
alias        主机名的替代名。这是可选的。一个主机可以有几个别名。
当创建/etc/hosts文件的时候,必须遵守如下的规则:
一行的开头不可以是空白或者tab字符。
字段之间可以让多个空白字符或者tabs分割。
注释部分可以指明系统的属主,系统的类型,操作系统,版本,注释是用符号(#)开始的部分。
每一行只能有一个主机记录
在IP地址的第一位不能为0。
不要更改或者删除本地回路的记录。
在/etc/hosts中的本地IP地址要和/etc/rc.config.d/netconf文件中的一致。
注意:/etc/hosts文件的属主必须为bin,同时存取权限为04444(-r--r--r--)。
映射主机名为IP地址
当一个用户在一个网络请求中使用一个主机名的时候(例如 telnet sysA),主机名的解析依靠网络管理员是否配置了动态名称服务开关。如果已经配置了名称服务器,它会决定使用那种方式来解析主机名。如是使用NIS,DNS或者网络配置文件(如/etc/hosts文件)。
如果没有配置域名服务器,但是配置了NIS或者NIS+,这时系统会用NIS来解析主机名,如果DNS和NIS都没有配置,/etc/hosts文件会被使用。如果主机名和IP地址不能找到,你会得到错误信息:UNknown host 。
系统管理员可以配置名称服务的查询顺序。这个顺序被gethostbyname()和gethostbyaddr()库函数调用。管理员可以选择已存在的名称服务的任意一种组合,例如DNS,NIS,NIS+,和本地hosts文件。同时,管理员可以定义当第一个名称服务失效的时候使用哪一个服务的条件。这种特征被称为名称服务开关 。可以通过配置/etc/nsswitch.conf文件来实现这种选择。这会在下一章中讨论。NIS,NIS+,和DNS 会在其它章讨论。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-30 18:18:24 | 显示全部楼层
[推荐]配置路由
配置路由
目标:
完成这一章,你能做以下的事情:
配置静态路由
配置一个默认路由
浏览路由表
1.路由的概念
Internet在物理上是由许多的网络段组成,这些网络之间通过路由器和网关相互连接。路由器和网关的作用是发送网络间的数据包。
路由就是是选择数据包发送的路径的过程。
路由器就是实现这种选择功能的专用计算机。在一些文档中通常将路由器说成网关。路由器这个术语是从OSI的术语。
为了将路由的工作原理形象化,你可以想象一个大的网络中有很多的小网络,它们通过路由器相互互联,在两个远端各有一个主机。当一个主机想要发送一个数据包给另外一端的主机,它会将这个包发送到离它最近的一个路由器。当这个路由器接受到这个数据包,会选择下一个到达目标地址的路由器。当这个数据包到达那个路由器,这个路由器又会选择下一个路由器。数据包通过层层路由器的转发最终到达能够直接发送到目标主机的路由器上。
IP路由被看作是一种地址路由。意思是数据包的在internet中的传输只能依靠数据包中的目标地址。路由器就是根据这个地址来转发数据包。
2.路由表
通过使用网络掩码,一个IP地址可以被分割为网络部分和主机部分。路由器在判断数据包的目标地址是否存在于与它直接相连的网络中(不需要再转发)的时候,会先将目标地址的网络部分提取出来,并且与自己的IP地址相比较。如果两者一致,意味着这个数据包可以直接发送到目标主机。
路由表中包括一些地址对。 每一对代表:
目标网络的网络地址
将数据包发送到哪个网络的路由器的IP地址
在路由表中列出的路由器的IP地址必须是本机器直接相连的。使用目标网络地址代替目标主机地址会使路由寻找更加有效,同时使路由表更小。
主机路由
虽然路由寻找通常是用于寻找网络而不是用于寻找单独的主机。但在IP路由中允许建立单独主机的路由。单个主机路由让管理员在控制网络的使用和定制特殊路由的时候能更加灵活。建立一个特殊的针对单个独立的主机的路由在网络查错的时候非常有用。
3.默认路由
默认网关
虽然HP-UX的工作站或者服务器可以被配置为一个路由器,但是现在大多数的网络有专用的路由器。这些路由器一般都支持一种或者多种动态路由协议,这些协议允许和网络中的其它的路由器动态地交换信息。这就让管理员免去了手工配置路由表中成百上千的的路由的繁琐工作。
网络中的单独的主机通常只需要维护本机路由表中的很少的记录。每个主机都能直接发送数据帧给同一网络中的其它主机。但是为了能发送数据到其它的网络,大多数的主机中都定义了一条最近的直接路由作为路由表中的默认路由。如果在路由表没有找到指定目标的路由信息的时候,就会使用这个默认路由。每个主机中只能定义一个默认路由。
配置一个默认路由
默认路由可以使用route命令来配置:
/usr/sbin/rounte add default 192.6.12.33. 1
配置代理ARP默认路由
如果你的网络中的一个路由器能提供”代理ARP路由服务“,这样定义默认路由就更加容易。你不需要明确指定路由器的一个IP地址为默认路由,你只需要定义你自己的IP地址为默认路由即可,代理ARP路由配置会让你的主机自动的发送广播信号来确认一个默认的路由器。下面的route命令可以为主机 192.6.1.52配置代理arp路由。
/usr/sbin/route add default 192.6.1.52 0
4.操作路由表
可以用 /usr/sbin/route命令来对路由表进行操作。route命令可以增加或者删除核心路由表中的路由信息。你可以增加或者删除到网络或者到主机的路由。还可以修改默认路由。
如果你想要和远程网络通讯,你必须配置/etc/rc.config.d/netconf文件中的路由变量。route命令可以通过/sbin/init.d/net来执行。
route命令的语法:
route命令的语法如下:
-f      让route命令”flush(激活)"所有的路由。
-n      以数字(IP地址)的形式显出所有的以主机和网络的IP地址。默认网络地址被显示为“           default"除外。
add      在路由表中添加主机或者网络
delete    从路由表中删除指定的主机和网络地址
net      指出目标为一个网络 当目标地址为一个网络地址的时候使用这个参数 ,例如 192.45.3
host     指定目标为一个主机
dest     指出数据包会被发送到的主机或网络的IP地址。dest可以为一个主机名(或者在/etc/hosts中列       出的别名),一个网络名(或者在/etc/networks中列出的别名),一个internet地址,或者关键       字default。如果指定了 default关键字,默认的网关条目会变为gateway。如果数据包的目标地       址与路由表中的任何地址都不匹配,就会被送到这个 gateway指定的地址。
gateway    指出到达目标需要要通过的网关节点。这个地址必须使用IP地址或者一个主机名。如果远程路由        器支持代理arp路由,也可以使用主机自己的IP地址。
count     一个整数,指明网关是本地主机还是远程主机。如果count大于0,网关就是一个远程主机。如果        等于0,网关就是本地主机。默认为0。
在/etc/rc.config.d/netconf文件中定义路由
以下是/etc/rc.config.d/netconf文件的一个典型的例子:
ROUTE_DESTINATION[0]="net 193.55.8"
ROUTE_MASK[0]=""
ROUTE_GATEWAY[0]=192.45.3.6
ROUTE_COUNT[0]=1
ROUTE_ARGS[0]=""
基于上面的文件,下面的命令会在在系统启动的时候,通过/sbin/init.d/net执行:
/usr/sbin/route add net 193.88.8 192.45.3.6 1
默认路由也可以在netconf文件定义:
ROUTE_DESTINATION[0]="default"
ROUTE_GATEWAY[0]="192.6.1.52"     # local IP address
ROUTE_COUNT[0]="0"
上面的条目会导致在下一次系统启动的时候自动执行如下的route命令:
/usr/sbin/route add default 192.6.1.52  0
5.浏览路由表
HP-UX 11.00从节点bill上的输出信息
# netstat -rn
Routing tables
Dest/Netmask   Gateway   Flags   Refs   Use   Interface   Pmtu
127.0.0.1     127.0.0.1  UH     0     414   lo0      4136
192.6.30.2    192.6.30.2 UH     0     523   lan0      4136
193.6.30.0    192.6.30.2 U     2      0   lan0      1500
127.0.0.0     127.0.0.1  U     0      0   lo0      4136
default      192.6.30.1 UG     0      0   lan0      1500
Flags(标记)   Meaning(意义)
U          UP(启动状态)
H          HOST(主机)
空          network(网络)
G          Gateway(网关)
路由表中有有效的路由和它们的状态。每一条路由的组成为:一个目标主机或者目标网络网络,一个子网掩码和网关用来转发数据包。Flags字段显示这条路由是否有效(UP)U,这个路由是否通向网关(G),这个路由是个主机路由还是网络路由(有或者没有H),这条路由是否动态创建的(D),是否为一个已经被修改网关路由(M),或者已经被标记为可以疑(?),原因可能是没有ARP的响应。
Refs字段显示当前正在活动的路由的数量。基于连接的协议通常在一个连接中需要维持一段路由,而非基于连接的协议在发送一个数据包的时候才会获得一个路由。use这个字段显示使用这条路由发送的数据包的数量。Interface字段表示这条路由使用的网卡。
检查你的路由表
你可以使用/usr/sbin/netstat -rn 命令检查路由表。
# netstat -rn
Routing tables
Destination Gateway Flags Refs Use Interface Pmtu PmtuTime
193.55.8 192.45.3.8 UG 0 0 lan0 1500
default 192.45.3.1 UG 0 0 lan0 1500
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-30 18:19:50 | 显示全部楼层
[推荐]配置子网
网络管理-配置子网
目标
完成这一章,你将能做以下的事情:
列出将大型网络分割为子网的好处
以字节为边界分割子网
不以字节为边界分割子网
为HP-UX工作站或者服务器设置子网掩码
1.大型网络的局限性
虽然一个A类的网络中可以有1600万个主机地址,但是实际上,在同一个物理网络中是不可能存在如此多的主机,主要的限制有:
拓扑结构的限制:大多数的LAN拓扑结构都不支持同一个物理网络中存在1600万个主机。
冲撞排他性: 如果同一个以太网中的两个节点同时发送一个信号,总线上会出现信号冲撞,这样两个节点都需要重新发送信号。如果网络中的节点数增加,发生冲突的可能性也会同步增加。
管理上的困难:即使是最好的系统管理员,管理拥有1600万个节点的网络也是非常困难的事情。
网络性能:一个网络的带宽是有限的,节点的增加会导致网络的性能急剧下降。
解决这些问题的方法一个简单办法就是只使用一个A类网络中的少数IP地址,但是IP地址空间需求的快速增长使这种方法变得不可能实现。而“子网”提供了解决以上问题的更好的方法。
2.子网的概念
使用“子网”可以将一个大型的网络IP地址空间分割为多个小的可管理的“子网”。
例如:你可以将一个B类(可以拥有65525个节点)的网络分割为254个子网,每个子网拥有254个节点。
如B类逻辑地址为:128.1.0.0
可分割为多个子网地址:128.1.1
          128.1.2
          ...
          128.1.253
          128.1.254
各个子网通过路由器分割,这样就同时解决碰撞冲突和拓扑结构的问题。
有了子网,网络管理员就可以将一个组织中的不同部门的计算机分割为单独的子网,并且将管理每个子网的权限交给不同的部门,这样每个部门的网络管理员就可以单独管理自己的子网,从而减轻了网络管理员的工作的难度。
3.子网中主机的IP地址
没有子网的网络:IP地址由两部分组成:
 128 1    0    0
10000000.00000001.00000000.00000000
  网络部分      主机部分
使用子网的网络:IP地址由三部分组成:
 128  1    1   0
10000000.00000001.00000001.00000000
  网络部分    子网部分 主机部分
在一个没有使用子网的网络中,每一个IP地址仅仅由两部分组成:一部分为网络地址,其作用是唯一地确定主机所在的网络,剩下的字节为主机地址,其作用是唯一地确定网络中的主机。
而使用了子网后,IP地址则由三部分组成:IP地址的主机地址的一部分被用来定义这个主机所属的子网。
在上面的128.1网络这个例子中:通常一个B类网络中的IP地址,前16位为网络地址,后16位为主机地址位,当使用子网的时候,其中的8位被用于定义主机的子网,另外的8位则用来定义主机地址。
子网位的数目可以变化(不一定是8位)。增加子网位的数目则可以有更多的子网,但是每个子网中允许的主机就会减少。减少子网位的数目,可以使用的子网就更少,但是每个子网中可以有的主机就更多。
4.子网掩码
上节中提到子网位可以变化。但是在子网位变化的情况下,路由器和其它的网络设备如何才能判断一个IP地址中那里才是一个网络/子网部分的结束,哪里才是主机部分的开始?
答案是必须依靠“子网掩码”来判定。子网掩码和IP地址一样由四个字节组成,可以写成十进制形式或者二进制形式。子网掩码中为“1”的部分指定的是网络/子网位,而为“0”的部分指定的是主机位。
上面的例子说明一个子网掩码中包含有24位的"1",后面是8位的"0",于是,一个IP地址的网络/子网部分就是前三个字节。每个IP地址的最后一个字节就是主机部分。
由于每个网络的子网位的数目可能不同,所以在一个分割了子网的网络中,你必须为每一个LAN网卡定义子网掩码。
5.子网地址
单独的一个网络可以包含多个子网。每个子网中的IP地址网络地址可以相同,但是每个子网都有一个唯一的子网地址。这个子网地址是通过子网掩码定义的。
在上面的例子中,255.255.255.0告诉我们第三个字节为子网位。
在8位的子网位中,可以有256个地址(即可以定义256个子网):
00000000 = 0    一些路由器不允许使用这个地址
00000001 = 1
00000010 = 2
00000011 = 3
...
11111100 = 253
11111101 = 254
11111111 = 255   一些路由器不允许使用这个地址
虽然8位二进制可以提供256个子网地址,但是一些路由器要求至少有一个全为“1”的子网位,和一个全为“0”的子网位不能使用。这样一些网络管理员就不能选择全为“1”和全为“0”的子网地址。以下的地址有特殊意义,也不能选择:
128.1.1.0
128.1.2.0
...
128.1.253.0
128.1.254.0
6.子网中的主机IP地址
每个子网可以包含多个主机,在一个子网中的所有主机的网络和子网位必须相同,而每个主机的主机位必须唯一,这样才能将它和子网中的其它主机区分开来。
对上一节中的128.1.1.0这个子网来说。子网中的所有的主机的IP地址都是以128.1.1开始的,这样就有8个主机位可以使用。
对8位的二进制数,可以提供256个值
00000000 = 0    
00000001 = 1
00000010 = 2
00000011 = 3
...
11111100 = 253
11111101 = 254
11111111 = 255   
所有的8位主机位都为0的地址被用作网络路由表中的子网路由。这个地址不可以分配给一个节点使用。
所有的8位主机位都为1的地址被用作子网中的广播地址。
所有的剩下的地址都可以分配给子网中的主机使用。在128.1.1子网中有效的地址有:
128.1.1.1
128.1.1.2
128.1.1.3
...
128.1.1.253
128.1.1.254
7.以字节为边界分割子网的局限性
主机地址部分加上一个字节的子网部分来划分子网的方法很方便,但是不太灵活。比如:
在C类的网络中,以字节为边界划分子网的方式无效。这是因为C类网络只有一个字节作为主机地址,如果使用这个字节中的位作为子网部分就没有多余的地址来作为主机地址。
一个B类地址中,以字节为边界划分子网在也存在局限性,如果你有一个B类的网络,并且需要分割为6个子网,基于字节的子网分配方案只能将你的网络分割位254个子网,而其实你只需要分割为6个子网。
在这种情况下,我们可以使用更灵活的方式来分割子网。
8.不以字节为界线分割子网
例子:C类网络192.6.12.0划分为6个子网:
11000000.00000110.00001100.001000000   1号子网
11000000.00000110.00001100.010000000   2号子网
11000000.00000110.00001100.100000000   3号子网
11000000.00000110.00001100.101000000   4号子网
11000000.00000110.00001100.110000000   5号子网
11000000.00000110.00001100.111000000   6号子网
   网络部分       子网位 主机位
      子网掩码=255.255.255.224
不以字节为界线分割子网的意思是子网/主机的分割并不以字节为边界。以上的例子是一个C类网络:192.6.12
制定子网地址
管理员选择将上例中的网络分割位6个子网,方法是使用第四个字节中的前三位作为子网掩码位。使用这三位,可以提供8个子网位:
000     一些路由器不能使用这个地址
001
010
011
100
101
111     一些路由器不能使用这些地址
将剩下的主机位设置为0,这样就可以得到最终的子网地址:
192.6.12.001 00000 = 192.6.12.1
192.6.12.010 00000 = 192.6.12.64
192.6.12.011 00000 = 192.6.12.96
192.6.12.100 00000 = 192.6.12.128
192.6.12.101 00000 = 192.6.12.160
192.6.12.110 00000 = 192.6.12.192
192.6.12.111 00000 = 192.6.12.193
注意,使用子网并不能增加一个网络中的IP地址的数量
制定子网掩码
通过设置所有的网络和子网部分位“1”可以定义子网掩码,在上面的例子中,子网掩码为:
1111111.11111111.11111111.11100000 = 255.255.255.224
制定主机地址
最后一个字节中的前三位为子网位,而剩下五位为IP地址的主机位。
10.子网之间的路由器
网络中的子网通过路由器分割。在上例中,facilities子网在主干网上,其它的三个子网通过路由器连接到facilities子网上。
虽然每个子网都有不同的子网地址,但是它们的子网掩码相同。
11. 配置网卡的子网参数
当配置一个主机上与子网相连接的网卡的的时候,你必须在ifconfig命令中指定子网掩码作为参数。相同子网中的主机的子网掩码必须相同。
为了确保你的主机可以存取其它子网和网络中的主机,你还必须定义一个默认路由到你最近的一个路由器。如果你想要你的配置参数永久生效,可以手工修改/etc/rc.config.d/netconfig文件。
12.B类和C类子网分配表
你可以使用一个IP地址的主机部分的大部分位来作为子网部分。增加子网位可以增加有效的子网数量,但是每个子网中的主机数量会减少。
下表总结了B类和C类网络下所有的有效的子网掩码所对应的有效子网和主机地址数量。
类   子网位   主机位    子网掩码       子网数目    主机数目
B类    0     16     255.255.0.0      0       65534
     2     14     255.255.192.0     2       16382
      3     13     255.255.224.0     6       8190
     4     12     255.255.240.0    14        4094
     5     11     255.255.248.0     30        2046
     6     10     255.255.252.0    62       1022
     7     9      255.255.254.0    126        510
     8     8     255.255.255.0    254        254
     9      7     255.255.255.128   510        126
     10      6     255.255.255.192  1022        62
     11      5     255.255.255.224   2046        30   
     12      4     255.255.255.240   4094        14 
     13      3     255.255.255.248   8190         6
     14     2     255.255.255.252   16382         2  
地址类  子网位  主机位    子网掩码     子网数量     主机数量
C类    0     8     255.255.255.0      0        254
     2      6     255.255.255.192     2        62
     3     5    255.255.255.224      6         30   
     4      4    255.255.255.240     14         14 
     5      3     255.255.255.248    30         6
     6     2     255.255.255.252     62         2
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-30 18:20:40 | 显示全部楼层
[推荐]网络连接查错
网络管理-网络连接查错
目标:
完成这一章,你能做以下事情:
使用下面的命令来检查网络连接方面的错误:
lanscan
lanadmin
linkloop
arp
ping
netstat -i
netstat -a
netstat -r
hostname
nslookup
1.网络查错工具
在UNIX中有如下的工具可以用来进行网络查错:
arp     (BSD)
ping     (public domain)
netstat    (BSD)
nslookup   (BSD)
traceroute
使用这些工具并不一定能清楚和直接地发现网络连接上的问题。这些工具经常只能给你一些问题的提示。你可能不得不使用几种工具来查询一个问题到底出在哪里;因此,你必须对网络概念有深入的了解并且能够使用每一个网络工具。
2.潜在的网络连接问题
LAN终结器没有连接正确。
许多时候,用户都没有正确的中止他们的LAN电缆。在你的网络中必须要有两个终结器,一个在电缆的开始,一个在电缆的末端。
网卡没有启动
如果LAN卡有问题,ifconfig命令会失败。如果你使用一个编辑器,如vi,修改配置文件的时候,不注意就会产生语法错误。
网卡的IP地址错误
当配置/etc/rc.config.d/netconf文件中的IP_ADDRESS的时候,可能会出错。
子网掩码不正确
有的人在配置/etc/rc.config.d/netconf文件中的SUMNET_MASK的时候也可能出错。
相同的IP地址已经被其它的系统使用
有的时候,有的人在将他的系统连到网络的时候没有向网络管理员申请一个唯一的IP地址。
路由表的配置不正确
有的人在配置/etc/rc.config.d/netconf文件中的ROUTE参数的时候可能会出错。
路由器down掉
有的时候,一个系统必须被关闭,如果你要关闭一个路由器,你应该至少提前两天声明。
LAN电缆坏掉
有一种特殊的装置来检查一个电缆是否断了。
LAN的长度太长,超出限制。
如果同轴电缆的安装是在很久之前,很有可能电缆的长度过长。当一个新的系统加入到这个网段的时候,如果电缆的长度超出了长度限制,就会发生问题。电缆检查器可以用来测量电缆的长度。
/etc/hosts文件的配置不正确
如果你的系统不能将一个主机名解析为一个正确的IP地址,很可能是你的hosts文件有问题。如:在你的/etc/hosts文件中有两个IP地址(例如一个网关),gethostbyname()只会返回第一个IP地址,而这一个地址可能不是你想要的哪个地址。你应该经常检查你的hosts文件来保证正确性。
3.arp命令
ARP就是地址解析协议。
arp命令被用来修改ARP表中的记录。
修改ARP表的选项需要root权限。
例子:
# /usr/sbin/arp -a
frank (192.6.30.1) at 0:60:b0:7:4c:4d ether
beverly (192.6.30.5) at 0:60:b0:7:c1:79 ehter
jeff (192.6.30.4) at 0:60:b0:7:e1:12 ether
bill (192.6.30.4) at 0:60:b0:7:7e:69 ether
larry (192.6.30.3) at 0:60:b0:7:e1:a2 ether
/usr/sbin/arp命令可以用来显示或者修改ARP核心表中的的记录,这些记录是ARP协议使用的和INTERNET(的三层)到Ethernet(第二层)的相关的地址,其中一些东西只能是root用户才有权修改。
语法:
arp hostname        显示当前ARP记录中对应hostname的记录
arp -a [system] [core]   从core文件中读取所有的当前的ARP记录。
arp -d hostname       如果指定的hostname的ARP记录存在,删除这条记录,要求有超级用户的权限
arp -s [parameter]     为一个主机中的新的以太网卡的硬件地址创建一个ARP记录。要求要有超级用               户的权限
arp -f filename       读取文件filename,在ARP表中设置多条记录。文件中的条目被用来形成主机               名 地址 [temp] [pub] [trail]。要求有超级用户的权限。
如果用一个新的网卡取代坏的网卡,新的网卡有新的链路层的地址。而在其它的远程主机的ARP表中仍旧是老网卡的链路层地址,这样远程主机就不能和新的网卡通讯。你必须删除远程主机上的ARP表中错误的信息。
4.ping命令
ping命令测试与一个远程系统的IP连接是否正常。
例子:
# ping bill
PING 192.6.30.2 64 byte packets
64 bytes from 192.6.30.2: icmp_seq=0. time=43. ms
64 bytes from 192.6.30.2: icmp_seq=1. time=223. ms
64 bytes from 192.6.30.2: icmp_seq=2. time=199. ms
64 bytes from 192.6.30.2: icmp_seq=3. time=170. ms
--------bill PING Statistics----------
5 packets transmitted, 4 packets received, 20% packet loss
round-trip (ms) min/avg/max = 43/158/233
ping命令工作在OSI模型的网络层(第三层)。任何用户都可以执行PING。
当你遇到一个网络问题,最好的是先执行一下ping命令。如果ping命令能够成功地传输数据包,你就可以排除第三层以下的所有的问题(硬件的问题如电缆损坏或者收发器损坏),这样你就可以在更高的层进行检查。如果ping失败,你应该使用lanadmin或者lanscan命令来检查你的lan硬件是否有问题。
使用ping:
当设置新的节点的时候,执行一次初步的连接检查。
当连接到一个指定的节点有问题的时候。
语法:
ping hostname [packet_size] [-n [ num_packets]]
其中
hostname      IP地址或者正式的主机名
packet_size     默认的情况下,数据包的大小为64byte。数据包最小可以为8byte,最大可以          为 4096byte。如果packet_size小于16byte,就没有足够的空间存放定时信息           因此就不能被显示数据包往返的时间。
num_packets     在ping结束之前传输的数据包的数量。默认情况,ping会一直发送数据包直           到用户按下ctrl+c。如果你没有指定包的大小,需要使用-n num_packets。
注意:如果对本地主机环路(loopback)使用ping命令,你测试的仅仅是网络层(第三层)。即使LAN硬件已经down掉,这个测试也可能成功。
5. netstat -i命令
netstat -i 命令显示网卡的状态。
netstat -in 命令使用IP代替主机名。
在命令的输出中发现有*号表明这个网卡已经down掉。
例子:
# netstat -i
Name   Mtu   Network   Address   Ipkts   Opkts
lo0    4136   127.0.0.0  localhost  838    838
lan0   1500   192.6.30.0 bill     160952   111715
netstat命令报告关于网络负载和网卡的状态的网络和协议的统计信息,。任何用户都可以执行netstat命令。
netstat命令有许多的选项。使用这些选项可以得到许多其它命令不能得到的信息。在这一节中,我们只讨论几个选项,这些选择显示的信息都是在OSI模型的1,2和3层。
-n     用来和其他的选项一起使用,这个选项使用IP地址来代替使用主机名。
-i     显示网卡的状态,包括主网卡和逻辑网卡。
-r     列出本地路由表中的所有的路由。当和-v选项一起使用的时候,netstat也会显示路由中的网络       掩码。当和-s选项一起使用的时候,netstat会显示路由的统计信息。
netstat -i 命令显示所有的关于网卡的状态和数据包传输过程中累积的统计信息。这些统计信息是在网卡启动的时候就开始统计的。
Name       网卡的名字
lan0是你的第一个IEEE 802.3/Ethernet网卡
lan1是你的第二块网卡
lo0指的是你的本地loopback界面(IP地址127.0.0.1)。
nio和ni1是两个内置的RS-232界面。条目可能是网卡。你可以使用使用串行通讯协(SLIP)的时候配置它们
*号表明这个个网卡没有被激活。
Mtu        最大的传输单元,指明一个帧的最大可能为多大。在IEEE 802.3中,是1500BYTE。
Network     显示这个网卡所属的网络的IP地址或者网络名。如果配置了/etc/networks文件,这里就         是一个名字。none就是说明这个网卡没有启动
Address      网卡的IP地址或者名称。如果如果通过hosts文件,NIS,DNS解析主机名,这里就是名称,         none指明这块网卡没有启动。
Ipkts       接收到的的数据包的数量
Opkts       输出的数据包的数量
想要检查数据包的数量,可以使用netstat interval选项。这样每隔interval秒,就会报告通过这个网卡传输的数据包的数量。第一行和每24小时后的那行显示累积的统计信息。上例中就显示了发送和接收到的包的数量,错误包的数量,和发生冲突包的数量。
6. netstat -r命令
netstat -r 命令显示在路由表中定义的所有的路由信息。
netstat -rn 使用IP地址来代替主机名。
例子:
# netstat -rn
Routing tables
Dest/Netmask   Gateway   Flags   Refs   Use   Interface   Pmtu
127.1.1.1     127.1.1.1  UH     0     414   lo0       4136
192.6.30.2    192.6.30.2 UH     0     523   lan0      4136
192.6.30.0    192.6.30.2 U     2     0    lan0      1500
127.0.0.0     127.0.0.1  U     0     0    lo0      4136
default      192.6.30.1 UG     0     0    lan0      1500
netstat -r 显示路由表中的信息。
Flags字段可以包括U,G,H等标记。
U  路由器已经启动并且正在运行
G  路由器是个网卡(意思是一远程路由器)
H  目标是一个主机,不是一个网络。
Refs字段给出了当前处于活动状态的路由的数量。
Use 字段是网卡从上次启动到现在的,使用这个路由发送的数据包的数量。
Pmtu是最大的传输单元(最大的帧的大小)。
每次执行ifconfig命令就会在这个路由表中增加一个记录。如果你只有一个网卡,会显示两条记录:逻辑本地回路(loopback)伪网卡和你的唯一的网卡。
如果你在/etc/rc.config.d/netconf文件中配置了另外的路由,每次执行route命令会在路由表中增加一条新的记录。
netstat -rs 显示路由的统计信息。
$ netstat -rs
routing
0 bad routing redirects
0 dynamically created routes
0 new gateways due to redirects
0 destinations found unreachable
15 uses of a wild card route
1 route marked doubtful
4 routes cleared of being doubtful
0 redirects deleted
仔细观察有bad,doubtful ,deleted等记录,如果数值很大,就表示有路由方面的问题存在。
7.nslookup命令
nslookup 命令将主机名解析为IP地址。
nslookup命令在检查/etc/hosts文件中的错误的时候很有用。
nslookup命令有在OSI模式的不同的层上操作的能力。
例子:
# nslookup mickie
Using /etc/hosts on : bill
name: mickie
Address: 192.6.30.3
nslookup命令检查本地系统如何将主机名解析为IP地址:
$ nslookup
Default Name Serve: chris.hp.com
Address: 192.6.21.2
> ctrl + d
$ nslookup darren
Default Name Server: chris.hp.com
Address: 192.6.21.2
Name: darren.hp.com
Address: 192.6.21.1
其它的一些有用的nslookup内部命令有:
> host server      使用名称服务器查询host的信息
>ls -d domain      列出所有的domain的信息(可能会很长)
>ls -d domain > file  列出所有的domain的信息并且重定向到文件
>set debug        将调试模式打开
>set all         打印出当前的已经设置的选项
>policy         打印出在IP地址查询的顺序中过程执行的顺序。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-30 18:21:36 | 显示全部楼层
[推荐]启动网络服务
网络管理-启动网络服务
目标
完成这一章,你将能够做以下的事情:
描述在系统启动的过程中如何使用运行级
修改和观察系统当前的运行级
定义系统默认的运行级
通过/etc/rc.config.d下的配置文件来启动或禁用服务
创建启动和关闭脚本来在系统启动和关闭的时候自动启动和关闭服务。
浏览启动错误日志
1.启动系统和网络服务
在前面的章节中,我们知道了配置一个LAN界面和将一个HP-UX系统连接到网络的过程。在配置好一个LAN界面之后,就可以启动一些服务来使用系统的LAN连接。下面就是其中的一些服务:
NFS:可以通过网络存取其它主机上文件系统
DNS: 一种将主机名解析为IP地址的网络服务
NTP: 被用来同步局域网中系统时钟
这些服务和其它的系统服务如cron,lp一样,都需要在系统中运行一个守护进程。这一章会讨论HP-UX系统中在系统启动的过程中启动这些守护进程的过程和在系统关闭的过程中kill这些进程的过程。
回顾系统的启动过程:
在系统启动的前阶段只是寻找并且装载内核到内存。具体步骤是:在系统加电之后,“Processor Dependent Code(PDC)会从系统的BootROM芯片中被读入内存,PDC会进行一些初始化的硬件测试工作,完成后会判断哪个磁盘是默认的启动磁盘。
任何启动磁盘中都包含有一个引导区,其中包含有一段称为"Initial System Loader" 的可执行代码。ISL会调用HPUX 内核装载器,装载器将内核装载入内存中,然后内核会对root文件系统作一个完整的检查,然后就会调用init进程。init守护进程负责将系统启动到完全可用的状态。init进程自己会执行一些系统的初始化的任务。它会检查/etc/fstab中列出的文件系统,初始化系统的控制台,和执行其它的在 /etc/inittab中列出的任务。
init调用/etc/rc中的程序,启动大多数的系统服务如NFS,DNS,和NTP最终将系统带到全功能的状态。
2.运行级
将HP-UX系统启动到完全可用的状态的过程中必须要启动几种服务。启动这些服务必须要依靠其它的一些条件,例如:只有在LAN卡配置好之后才能启动网络文件系统。那么init是如何保证这些条件的呢?
运行级别介绍:
init守护进程将系统带到一种全功能的阶段被称为“运行级”。一个运行级就是一种系统的状态,在每种状态下都有一些特定的进程被允许运行。运行级决定系统中的哪些功能和服务有效。
更高的运行级中可以运行更多更多的服务。
运行级越低,可以运行的服务越少。
HP-UX中有效的运行级有0,s,S,1-6。
运行级 0    系统关闭状态。当运行在运行级0的时候,系统执行系统关闭过程,停止所有的进程并且关闭系统
运行级 s    为系统管理任务而保留的特殊的运行级,也称为单用户状态意思是只能一个用户使用,通常这个用户是系统管理员,例如,关闭系统命令/sbin/shutdown可以将系统带到s运行级。
运行级 S    同运行级s类似。在运行级别s的状况下,只有从系统控制台可以存取系统,而当系统运行为S的时候,你可以从你登录的终端上存取系统,也就是可以启动虚拟系统控制台。
运行级 1    和单用户类似,但是会装载文件系统,同时同步器会运行,这个运行级也可以被用来进行系统管理的任务。
运行级 2    多用户状态,在此状态下,所有的用户都可以存取系统。
运行级 3    对HP CDE用户,HP CDE在在这个运行级是可用的,同时在运行级3可以输出NFS文件系统;这也被成为“带网络支持的多用户状态”。
运行级 4    对HP VUE用户,在这种模式下,HP VUE可用,HP VUE是在10.30以下的版本中提供。HP-UX 11.0以上不再支持HP VUE。
运行级和启动/关闭过程
最初,init将系统启动到运行级别1,然后启动到运行级2,然后是3,最后到达/etc/inittab文件中定义的默认的运行级。在每一个运行级阶段,init会调用/sbin/rc来启动服务。
对系统关闭的过程来说,init会将系统关闭到运行级0,在每个运行级,/sbin/rc有机会来kill任何不再需要的服务。
修改和浏览系统运行级
你可以使用who -r 命令来查看系统当前的运行级。你还可以使用init命令来更改你的系统运行级。
# whor -r
# init 4
# init 2
# init 3
3. /sbin/rc*.d目录
在每一个运行级,init进程会调用/sbin/rc命令来启动启动任何必须的系统和网络服务。/sbin/rc程序会判断在本运行级可以启动和停止哪些服务,方式是通过参考/sbin/rc*.d目录中的内容。
对于每一个系统运行级都有一个/sbin/rc*.d目录存在:
/sbin/rc0.d
/sbin/rc1.d
/sbin/rc2.d
/sbin/rc3.d
/sbin/rc*.d目录中包含有"S"和"K"开头的脚本文件。“S”脚本启动一个服务,而“K”脚本停止(kill)一个服务。大多数通过 /sbin/rc启动的服务在/sbin/rc*.d目录下同时有“S"脚本和“K”脚本。你可以使用ls命令来检查每个运行级中的有哪些脚本:
# ls /sbin/rc*.d/*
4. S/K脚本命名惯例
对S/K脚本名由几个部分组成。
脚本名的第一个字符说明这脚本是用来启动服务的脚本(S)还是一个用于停止服务的脚本(K)。
脚本的第二部分是一个“有序的数字”。当init将系统带到更高的运行级的时候,/sbin/rc通过这个数字升序地执行相应的/sbin/rc*.d目录下的“S”脚本。当init将系统带到一个更低的运行级的时候,/sbin/rc会以升序执行相应的/sbin/rc*.d目录下的“K”开头的脚本。
每个脚本名的最后的部分简单地说明S/K脚本相关的是服务或守护进程。
分配顺序号码
为了满足服务之间相互依靠的要求,通常KILL服务是以启动服务相反的顺序进行的。
例如假设有四个服务,W,X,Y,和Z。 S/K脚本名可能为:
/sbin/rc3.d:      /sbin/rc2.d:
S200W          K800W
S300X          K700X
S400Y          K600Y
S500Z          K500Z
启动脚本和KILL脚本的顺序号码之间有什么联系?
注意: S/K顺序号码可以在100到900的范围内指定。如果你要需要定制你自己的S/K脚本,HP推荐你使用一般的启动和KILL顺序号码:
通常的启动顺序号码:900
通常的KILL顺序号码:100
5./sbin/init.d/* 脚本
如果ls -l /sbin/rc*.d,你会注意到S/K脚本并不全是真正的shell脚本文件。
每个通过/sbin/rc启动的服务在/sbin/init.d目录下都有一个SHELL脚本文件。这些脚本中包含启动和停止相关服务的命令,而在/sbin/rc*.d。目录下的文件实际上只是一些动态链接文件链接到/sbin/init.d目录下的文件。
6.init.d脚本中有些什么内容?
/sbin/init.d目录下的脚本的结构基本相同。所有的结构围绕着一个case语句展开,这个语句会检查传送给脚本($1)的参数的值。这个脚本第一个参数有四个有效的值:
start_msg    start_msg参数简单地回应一条信息,指明这个脚本控制的是什么服务或者守护进程。/sbin/rc使用start_msg参数来在系统启动的过程中在系统控制台上产生一个服务的检查列表。
stop_msg     stop_msg同start_msg参数的作用类似。/sbin/rc使用stop_msg参数来调用/sbin/init.d脚本,用于在系统关闭的时候在系统控制台显示检查列表。
start      当使用这个参数的时候,/sbin/init.d脚本执行必须的命令来启动相关的服务。
stop       当使用这个参数的时候,/sbin/init.d脚本执行必须的命令来停止相关的服务。
手工启动或者停止服务
通常,/sbin/init.d脚本是在系统启动关闭的过程中自动执行的。但是,你也可以手工停止或者启动一个服务。下面的例子说明了手工启动和停止cron守护进程的方法:
# /sbin/init.d/cron start
# /sbin/init.d/cron stop
7./etc/rc.config.d/* 文件
除了/sbin/init.d有可执行的shell脚本之外,大多数的服务在/etc/rc.config.d目录下还有一个配置文件,系统管理员通过设置这个文件可以:
禁止不必须的守护进程或者服务
更改参数来定制一个服务的行为
使用控制变量启动/禁用服务:
大多数的init.d脚本会检查一个控制变量来判断是否应该启动相关的服务。
控制变量 = 1:    在启动/关闭的过程运行脚本
控制变量 = 0:    在启动/关闭的过程中不运行脚本。
控制变量的名称通常和它控制的服务名称相同。
/sbin/init.d/cron的控制变量为 CRON
/sbin/init.d/nfs.server控制变量为 NFS_SERVER
/sbin/init.d/nfs.client控制变量为 NFS_CLIENT
这些控制变量在/etc/rc.config.d目录下的配置文件中进行设置。有的服务有自己的单独的配置文件,而一些服务会共享一个配置文件。
例子:
/sbin/init.d 脚本   /etc/rc.config.d 下面的文件      控制变量
cron            /etc/rc.config.d/cron          CRON
nfs.client         /etc/rc.config.d/nfsconf         NFS_CLIENT
nfs.server         /etc/rc.config.d/nfsconf         NFS_SERVER
配置文件也会设置其它的启动脚本使用的参数。回顾以前提到的/etc/rc.config.d/netconf文件,其中可以定义系统的主机名,IP地址,默认路由信息等等参数。
警告:不要修改/sbin/init.d下面的脚本
   通过/etc/rc.config.d下面的配置文件开修改启动脚本参数
8. 总结
/sbin/rc*.d      这些目录,也被称为“运行级”目录,包含有在不同的运行级之间切换的时候要执行的脚本名称。
S/K命名规则      在/sbin/rc*.d目录(运行级目录)中,所有的脚本等候遵守一种预定义的命名规则,指明“启动”和“KILL"一个服务和脚本执行的顺序。
/sbin/init.d目录    这个目录中包含所有的可执行的脚本,这些脚本被/sbin/rc*.d运行级目录下的脚本所链接。
init.d脚本的内容    每个可执行的脚本中都包括有启动和停止进程/服务的命令。
/etc/rc.config.d目录  这个目录包含/sbin/init.d下面的脚本的配置文件.可执行的脚本不能被直接修改
9.浏览运行级更改时控制台上的信息
在从一个运行级切换到另外一个运行级的时候,屏幕上会出现一个系统所作的所有的操作的一个列表。/sbin/rc程序使用start_msg和stop_msg参数创建这个列表。
一旦创建了一个检查列表,/sbin/rc程序会再次调用每个可执行脚本,但这一次使用参数是start和stop。屏幕上会出现如下的状态信息:
OK 执行脚本成功地启动或者停止了子系统。
FAIL 执行脚本不能启动或者停止子系统,在执行脚本失败的时候,一条信息会出现在屏幕的底部:
* - An error has occurred!
* - Refer to the file /etc/rc.log for more information
N/A 表示执行脚本试图启动或者停止子系统,原因是在/etc/rc.config.d下面的配置文件中禁用了这个子系统。
10.创建自己的启动脚本
步骤:
1. cd /sbin/init.d
2. cp template scope_collect
3. vi scope_collect
  a. 编辑start_msg语句
  b. 编辑stop_msg语句
  c. 编辑start语句
   i. 更改SCOPE_COLLECT的CONTROL_VARIABLE
   ii. 增加命令/opt/perf/scope.start
   iii. 增加命令 set_return
  d. 编辑stop语句
   i. 更改SCOPE_COLLECT的CONTROL_VARIABLE
   ii. 增加命令/opt/perf/scope.stop
   iii. 增加命令 set_return
4. vi /etc/rc.config.d/scope_collect
  a. 增加一个单行:SCOPE_COLLECT=1
5. ln -s /sbin/init.d/scope_collect /sbin/rc3.d/S900scope_collect
6. ln -s /sbin/init.d/scope_collect /sbin/rc2.d/K100scope_collect
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-30 18:22:28 | 显示全部楼层
推荐]DNS域名解析
网络管理-DNS域名解析
DNS域名解析(1)
目标:
完成这一章,你将能够做一下事情:
比较三种主机名解析方式:
 /etc/hosts 
 NIS
 DNS/BIND
使用hosts_to_named命令来配置主DNS服务器
配置辅DNS服务器
配置主机名解析器
配置/etc/nsswitch.conf文件
使用hosts_to_named命令增加/删除DNS数据库中的一个主机。
使用nslookup命令进行DNS服务查错
描述以下配置文件的作用和文件格式:
 /etc/rc.config.d/namesvrs
 /etc/named.boot
 /etc/resolv.conf
1.将主机名解析成为IP地址
IP网络中的系统进行通讯必须依靠Internet地址。用户和应用程序可以通过主机名来查找一个主机,这就要求在数据包发送之前,IP协议层必须将这个主机名翻译成为一个IP地址(例如16.30.0.99)。这个主机名到IP地址之间的转换是在这个网络连接建立之前通过一个gethostbyname ()的库函数来实现的。这个库函数也被称为解析器,因为它的作用是将主机名解析为一个IP地址。
同样,反向的解析有时也是必须的;因为有时候,必须将IP地址解析成为一个主机名,例如主机想要验证哪些主机连接到本机就必须通过将连接进来的IP地址映射成为一个名字,通常这个过程被用作鉴权:例如,文件/etc/hosts.equiv,$HOME/.rhosts,或者/etc/exports的使用就是具体例子。将IP地址解析成为主机名是通过调用一个名为gethostbyaddr()库函数而实现的。
维护一个小规模网络中的各个主机中包含有网络中的系统的名字和IP地址的/etc/hosts文件是一件很容易的的事情,而当网络变得很大同时地理上分布更广的时候,维护工作会变得十分困难。这时候就需要用其它的方法来实现域名和IP地址之间的互相解析。
与每一台机器都存储和维护所有主机名和IP地址信息的方式不同,一种称为域名服务器的服务,域名服务器可以由网络中的一个(或者多个)系统组成,其作用是存储并且提供信息,域名系统提供了另外一种与/etc/hosts文件不同的主机名与IP地址转换的方式,DNS常用在大型的网络中提供主机名解析的服务。
当前最常用的名称服务有Network Information Services(包括NIS和NIS+),和Berkeley Internet Name Domain(BIND)服务。
在这一章,我们将学习Berkeley Internet Name Domain 服务。
2.DNS概述
Berkeley Internet Name Domain(BIND)是一种基于RFC 1034/1035"域名"规范的域名系统(DNS)。BIND是由以下三部分组成:
分层的名称空间: 与单层的的名称空间相对应,/etc/hosts文件的域名解析方式就是一种单层的方式。
名称服务器中保存有域的树型结构的信息,这个服务器程序是在系统中是一个叫做named的进程。而提供这个网络服务的主机被叫做域名服务器。
解析器是一种负责将域名解析成为IP地址的程序,各种网络服务都可以调用这种程序,例如telnet,ftp,rcp,rlogin,和其它的网络服务。解析器能判断首先使用哪个名称服务(/etc/hosts,NIS,或者DNS),然后使用指定的服务来将主机名翻译为IP地址。如果使用的是DNS (BIND),解析器就会从域名服务器提取信息,解析器并不是一个特别的进程,解析器只是名称服务器的一个可编程的界面,这些流程被编译进 gethostbyname()和gethostbyaddr()流程中。任何执行这些调用的程序会自动调用BIND(如果系统中配置了这个服务).否则会使用NIS或者/etc/hosts文件。在有的系统中,有一个名称服务的开关(一个文件),其作用是指定系统解析域名时使用的方式的先后顺序和组合。
3.DNS层次化的名称空间
域名空间是一种对基于树型结构的网络中的节点进行分层命名的方法,树型结构可以粗略代表一个网络边界分支。
每一个名称空间中的子空间被称为一个域,每一个域都有一个标记,这个标记由一系列的由左到右的圆点分隔的字母组成,如:在 sanfran.ca.hp.com这个域名中节点"sanfran"属于域"ca";域"ca"属于域"hp";而域"hp"属于域"com",而域 "com"属于“根域”。
最后一个圆点,域名的结尾部分,指出的是绝对域名,这和相对域名相对立,如"sanfran.ca"。
解析器会将相对域名翻译为绝对域名,转换的原则我们会在以后的章节中学到。
4.公共和私有的域名空间
公共的域名空间
如果要将本地网络和一个公众网络相连接,如INTERNET ,就要求要有官方的IP地址和域名。你可以与InterNIC联系,或者通过http://rs.internic.net来进行域名登记。
如果你已经注册了一个域,那么在这个域中,你可以独立地管理你这个域中的计算机,例如你可以在这个域中增加主机,可以自由分配一个属于这个网络地址的主机 IP地址给这个主机,而不需要向管理机构注册,同样你也可以在这个域中分配子域,也不需要向管理机构注册,只有你域中的顶级域中的授权的服务器才需要注册。
私有域名空间
在这种情况下,客户的网络和公众网是相互分离的,这样你就可以任意选择域名和IP地址。但是如果将来会有可能连接到INTERNET,最好是去寻求一个正式的IP地址并且遵循命名的惯例。
5.名称服务器
域名服务器可以:
响应客户机的请求,然后将主机名解析为IP地址
划分名称空间
能够将域名解析的请求转发到其它的域名服务器
应该有辅域名服务器来作为备份
举例说明:
ca.hp.com域名服务器
sanfran.ca.hp.com <--->128.1.1.1
oakland.ca.hp.com <--->128.1.1.2
la.ca.hp.com <--->128.1.1.3
有许多不同类型的DNS服务器
主域名服务器
主服务器对它所包含的数据来说是最有权威的(简而言之,由上一级的域赋予它的权利)。它可以,依次,创建子域,并且分配权限。与副服务器相比较而言,主服务器上的信息是最新的信息。
副域名服务器
副域名服务器是一个备份服务器。它包含有主服务器上基本相同的信息。在一个可以设置的时间间隔,它会从主服务器上更新数据。副域名服务器可以选择是否在本地磁盘上保留原始记录。这可以在named.boot中进行配置。
缓存服务器
缓存服务器不在本地的磁盘上存储数据。所有的数据都是放在系统的缓存中。在多用户系统中使用缓存服务器可以加速域名查询的速度。缓存服务器提供一个非正式的备份方式,与在本地存储数据的副域名服务器相比较,这种方式最大的优点是:在一个新的子域加入到一个主域名服务器中时,它不需要更新本地DNS数据库中的数据。
你的位置:首页->系统管理->网络管理->DNS域名解析(2)
DNS域名解析(2)
6.解析在本域中主机的主机名
每当在一个网络服务中指明一个目标主机的主机名的时候,就会间接启动一个解析器程序如gethostbyname()。因为网络通信使用的是IP地址而不是主机名,所以首先要将主机名解析为 IP地址。
解析器的任务:
判定本地节点首先使用的是BIND,NIS,还是/etc/hosts,这里我们假设使用的是BIND。
当目标地址是一个相对域名的时候自动构建一个可能的绝对域名的列表。
向域名服务器发出查询请求(可以为本地主机或是在/etc/resolv.conf中配置的远程主机)将域名解析为IP地址。如果没有域名服务器响应,用户程序会挂起一小段时间。如果配置的域名服务器响应但是返回的数据无效,会自动转向使用NIS或者/etc/hosts。如果我们使用的是NIS而不是 BIND,解析器会从指定的NIS服务器中查询主机的NIS映射表。如果BIND,和NIS都配置了,有的UNIX会首先使用BIND如(HP-UX), 而有的UNIX会首先使用NIS,如(SUN-OS)。
域名搜索列表
当想要查询的主机的域名和你的当前主机在同一域或者子域的时候,你不需要键入完整的域名,解析器会自动为你加上后缀。例如,如果你在域ca.hp.com中,同时你键入命令telnet la,解析器会自动构造一个搜索列表:
la.ca.hp.com
在解析器的配置文件中添加更多的域的后缀会进行更广泛的搜索,例如:
hp.com     ca.hp.com
解析器会向域名服务器查询搜索列表中的每个域名直到找到正确的域名。
如果用户提供的是一个完全格式的主机名,发送到域名服务器的就只有一个查询请求。
nsLookup
nslookup命令可以检查主机名解析的过程:
$ nslookup
Default Name Server: sanfran.ca.hp.com
address: 128.1.1.1
>ctrl + d
$ nslookup la
Name Server: sanfran.ca.hp.com
Address: 128.1.1.1
Name: la.ca.hp.com
Address: 128.1.1.3
Aliases: los_angeles
$
7.解析在其它域中的主机名
当查询在其它域中的主机名的时候,DNS客户端仍旧会将查询请求发送到本地的DNS服务器。由于被查询的主机名不在本地的服务器的数据库里,DNS服务器会以一种递归的方式在其它的域中查询这个主机名。
递归查询的过程如下所示:
1.假定机器genius,cs.tsinghua.edu.cn上的某个用户要求arpa,att.com机器进行数据通信,此时本地机器将发现在本域内(.cs.tsinghua.edu.cn)中无法实现此种转换(找到此域名对应的IP地址),于是发送一个请求给根服务器。根服务器根据域名中的. com和它所记录的.com域名服务器地址向此服务器询问arpa.att.com的地址,.com服务器接到此请求后,将根据名称中的.att域名及它所记录的.att域名服务器的地址向该服务器询与arpa.att.com相应的IP地址。在.att.com域名服务器中将记录有arpa主机的 Internet地址,于是它将此地址返回给.com服务器。.com服务器会将此结果返回给根服务器,而最后由根服务器将之返回给genius机器。
2.本地DNS服务器会将这些所有的名称服务器的地址缓存,还有最后返回的解析结果。
3.如果本地服务器接收到另外的一个相同的主机名的解析请求时,就会直接从缓存中取出数据,并立即返回用户需要的IP地址。
你的位置:首页->系统管理->网络管理->DNS域名解析(3)
DNS域名解析(3)
配置主域名服务器
1.向internic注册你的域名。
2.在/etc/hosts文件中定义全格式的主机名(域名)。
3.创建一个目录存放DNS数据库文件。
4.创建一个hosts_to_named命令需要的配置参数文件。
5.创建一个hosts_to_named命令需要的DNS数据文件和启动文件。
6.下载一个db.cache文件,其中包含root服务器的最新的地址列表。
7.修改/etc/rc.config.d/namesvrs文件并且启动named守护进程。
8.配置DNS客户端的功能。
以上是配置一个主域名服务器的详细步骤。这里我们假定要将sanfran节点配置为一个主域名服务器,这个服务器所在的域为ca.hp.com。步骤如下:
1.向internic注册你的域
为了让internet中的其它的人可以检索到你的域中的主机名,internic必须要知道你的域的存在。你可以向internic申请你的域名,地址为http://rs.internic.net/rs-intern ... internic申请。
无论在哪种情况下,你可能都需要提供你的域名和主域名服务器和辅域名服务器的名称和IP地址。
2.提供完全格式的/etc/hosts文件
HP-UX提供的hosts_to_named工具能够将/etc/hosts中的数据直接转换成主域名服务器上的DNS数据库。为了实现这个功能,hosts文件中的所有条目都需要是完全格式的主机名。而旧主机名可以作为别名存在。
如果还可以删除hosts文件中域名服务器不能解析的子域条目。(注意,这样localhost条目必须保留)。下面的例子说明了需要对sanfran主机上的hosts文件作出哪些改动:
vi /etc/hosts
127.0.0.1 localhosts
128.1.1.1 sanfran.ca.hp.com   sanfran
128.1.1.2 oakland.ca.hp.com   oakland
128.1.1.3 la.ca.hp.com      la
3.创建一个目录保存DNS数据库文件。
hosts_to_named程序会创建几个DNS数据文件。在默认情况下,这些文件会存储在/etc/named.data目录下。你也还可以使用mkdir命令手工创建这个目录:
mkdir /etc/named.data
cd /etc/named.data
4.为hosts_to_named程序创建一个param文件。
hosts_to_named是一个强大的创建DNS数据库文件的工具。hosts_to_named自动搜索一个param文件来决定对哪些域的主机提供域名解析服务。
在-d选项后面加上一个域名,指定这个域名服务器所服务的域,由于一些域名服务器同时为多个域提供域名解析,这时就需要多个-d选项。
在-n选项后面加上这个域中的每个子域的名称,由于很多主机存在于子域中,这时就需要多个-ns选项。
-b选项决定你的DNS启动文件存储的位置。标准的位置是/etc/named.boot。
因为辅域名服务器需要从主域名服务器下载一个配置文件,其中包含主域名服务器的IP地址和这个域的其它信息。-z选项会创建辅域名服务器需要下载的配置文件。
其它的选项可以参看hosts_to_named名称的联机帮助。
sanfran域名服务器的param文件如下所示:
vi /etc/named.data/param
-d ca.hp.com     <---这里填上你的域名
-n 128.1.1      <---这里填上你的子域的地址
-z 128.1.1.1     <---这里填上你的辅域名服务器的IP地址
-b /etc/named.boot  <---指定DNS启动文件存放位置
5.创建hosts_to_named的DNS数据文件和启动文件。
hosts_to_named工具自动使用/etc/hosts文件来生成DNS数据文件,使用的是在param文件中定义的选项。
如:
# hosts_to_named -f param
Translating /etc/hosts to lower case ...
collecting network data ...
   128.1
creating list of multi-homed hosts ...
creating "A" data (name to address mapping) for net 128.1 ...
creating "TR" DATA (address to name mapping) for net 128.1 ...
creating "MX" (mail exchanger) data ...
Building default db.root file ...
Building default boot.sec.save for secondary servers ...
Building default boot.sec for secondary servers ...
Building default boot.casheonly for cashing only servers ...
done
6. 下载一个db.cashe文件,其中包含root服务器的IP地址列表。
hosts_to_named工具能够创建几乎所有的DNS数据库文件,只有一个文件除外,那就是你必须手工创建db.cashe文件,其中包含 root 域名服务器地址。你可以从internic的web网站上ftp下来一个包含当前root服务器地址的文件。由于root服务器列表随时都可能改变,你可能会需要定时地下载这个文件。
7.修改/etc/rc.config.d/namesvrs。手工的启动named进程,不需要重启动机器。
为了让域名服务器的守护进程'named'在系统启动的时候一起启动,需要设置/etc/rc.config.d/namesvrs中的NAMED变量为“1”。
vi /etc/rc.config.d/namesvrs
...
NAMED=1
NAMED_ARGS=""
...
# /sbin/init.d/named start
named可以带参数启动,但是通常对NAMED_ARGS变量的值都不进行设置。
8.配置客户端的功能在以下几章中说明。
param文件的中的选项
param文件的选项如下:
d        指明默认的域。db.ca文件会被创建。想要添加其它的域,可以在这个选项后面         添加条目
n        指明子网的网络地址
r        指明主服务器同样也是root服务器,db.root文件会被创建。
z 和Z      创建文件boot.sec和boot.sec.save,这些文件会被传送到辅服务器作boot文件
b        指明boot文件的名称和所在位置。
创建的数据文件
以下的数据文件是hosts_to_named将创建的文件。
/etc/named.boot        named的启动文件
/etc/named.data/db.ca     ca域的数据库文件,将主机名映射为IP地址
/etc/named.data/db.127.0.0  本地loopback的数据库文件,将IP地址映射为主机名
/etc/named.data/db.128.1    网络128.1的数据库文件,将IP地址映射为主机名
/etc/named.data/db.root    仅作为root服务器
/etc/named.data/boot.sec    传送给辅域名服务器的文件
/etc/named.data/boot.sec.save 传送给辅域名服务器的文件
/etc/named.data/boot.casheonly 传送给缓存域名服务器的文件
注意:这些数据文件可以存在于任何目录下,这取决于你在什么目录下运行的hosts_to_named命令,name.boot文件中包含有这些文件的位置信息。
如果参数文件中不包含-b(boot 文件)的选项,你必须手工删除/etc目录下的named.boot文件。
你的位置:首页->系统管理->网络管理->DNS域名解析(4)
DNS域名解析(4)
配置辅域名服务器
步骤:
1.为DNS数据文件创建一个目录
2.从主域名服务器上FTP 一个配置文件
3.从主域名服务器上FTP db.127.0.0和db.cache的一个拷贝
4.从主域名服务器上FTP 附加的DNS数据文件(可选)
5.修改配置文件/etc/rc.config.d/namesvrs,并启动named守护进程
6.设置辅域名服务器上的客户端的功能
为什么要配置一个辅域名服务器?
每一个域都应该有第二个服务器作为主域名服务器的补充。辅域名服务器的主要作用是在主域名服务器失效的时候提供名称解析一个备份。同时,通过对客户端进行某些设置,辅域名服务器也能够减轻主域名服务器的负载,
创建一个辅域名服务器的步骤如下:
1.在辅域名服务器上创建一个单独的目录存放数据库文件和配置文件。
大部分的辅域名服务器在本地保存本域的DNS数据文件。这个数据库文件一般是存储在/etc/named.data目录下。
# mkdir /etc/named.data
# chmod 755 /etc/named.data
2. 从主服务器上FTP一个启动配置文件。
named进程在启动的时候会参考/etc/named.boot中的设置来决定DNS数据库文件存放的位置。你可以从主服务器上下载一个named.boot文件。
主服务器上可能会有两个named.boot文件的版本:/etc/named.data/boot.sec.save和 /etc/named.data/boot.sec。如果你希望你的辅域名服务器在系统重启动后仍旧保留所有的DNS数据库文件的一个完全的磁盘拷贝,你可以选择下载/etc/named.data/boot.sec.save文件。这样作的目的在于:如果在辅域名服务器启动的时候主服务器无效,辅域名服务器仍然可以使用存储在本地的DNS数据文件来启动DNS服务。
如果你选择下载/etc/named/boot.sec文件,辅域名服务器就不会主动维护本地磁盘的数据库文件,在这种情况下,如果辅域名服务器启动的时候主服务器处于无效状态,named进程就不能够启动
注意,你只能有一个boot文件。named守护进程启动的时候会自动读取这个文件中的配置信息。
ftp 128.1.1.1 <--- FTP 连到你的主域名服务器
get /etc/named.data/boot.sec.save /etc/named.boot
quit
3.从主服务器FTP一个db.127.0.0和db.cache文件。
每个域名服务器都要有两个DNS数据文件。db.127.0.0文件用来解析loopback地址。而域名服务器依靠db.cache文件来查找根域名服务器。从主域名服务器上可以下载这两个文件。
ftp 128.1.1.1            FTP连接到主服务器
get /etc/named.data/db.127.0.0    get db.127.0.0
get /etc/named.data/db.cache    get db.cache
quit
4.从主域名服务器FTP另外的数据库文件(任选项)
如果你你想要你的辅域名服务器在本地磁盘中保存所有的DNS数据文件的拷贝,你需要从主服务器下载所有的数据文件。在第一次下载这个文件后,以后辅域名服务器会自动按照一定的间隔时间从主服务器上更新数据。
ftp 128.1.1.1           <--- FTP to the promary server
mget /etc/named.data/db.*     <--- GET the DNS database files
quit                <-- 退出ftp
5. 修改/etc/rc.config.d/namesvrs。   手工启动named进程,,不需要重新启动系统。
# vi /etc/rc.config.d/namesvrs
NAMED=1
NAMED_ARGS=""
# /sbin/init.d/named start
named可以带参数运行,但是通常都不对NAMED_ARGS变量进行设置。
6.配置客户端功能在以后的章节中说明。
在设置一个辅域名服务器的时候,不要需要使用hosts_to_named命令,hosts_to_named命令不是用来创建辅域名服务器和 cache_only服务器。使用rcp,ftp从主服务器上传送需要的BIND文件,如果有必要,也可以手工修改BIND文件。如果是私有域(不于公众网相连),就必须手工创建db.cache文件,因为这时的根服务器必须自己来指定。
与设置主服务器的另外一个不同之处是:你可以选择将DNS的数据文件存储在本地,也可以选择不存储在本地。但是无论哪种服务器上都必须要有 db.127.0.0这个文件。在本地存储大量的DNS数据文件要占用磁盘空间,但是在主服务器一直都不能存取的时候这种方式会起作用,因为我们可以在不能立即和主服务器通信的情况下重新启动辅域名服务器,但是在超时之前主服务器必须能够重新投入使用。
配置DNS客户端
1.创建/etc/resolv.conf文件:
search     ca.hp.com  hp.com
nameserver   128.1.1.1
nameserver   128.1.1.2
2.修改/etc/nsswitch.conf文件:
    hosts     dns nis files
3.修改/etc/hosts文件:
    127.0.0.1   localhost
    128.1.1.3   la.ca.hp.com la
4.修改~/.rhosts,/etc/hosts.equiv,和其它文件:
    la       user1
    la.ca.hp.com  user1
在一个DNS域中所有的主机,包括主域名服务器和辅域名服务器,都应该被配置为DNS客户端。配置一个主机为一个DNS客户端可以确保主机的解析器使用指定的DNS域名服务器来解析域名和IP地址,而不是用本地的hosts文件。配置一个主机为一个DNS客户端的步骤如下:
1.修改解析器的配置文件。
 域名解析器的配置文件叫/etc/resolv.conf。resolv.conf文件有两个重要的组成部分:
 a.创建一个“查找”列表。
/etc/resolv.conf文件中的search关键字定义了一系列的域名,解析器在进行主机名解析的时候会搜寻这个列表。这个列表中至少应该列出自己主机所在的域。为了以后方便,你也可以增加其它的域名。
在这个搜索列表中添加其它的域可以让你的用户不必输入完全格式的主机名,例如,由于下面的resolv.conf文件中在搜索列表内包含由 ca.hp.com这个域,用户想要telnet到sanfran就可以简单地输入“telnet sanfran”。而由于ga.hp.com不包含在这个搜索列表中,所以想要存取"atlanta.ga.hp.com"就不能简单的键入“telnet atlanta",而需要键入完全的域名。
vi /etc/resolv.conf
search ca.hp.com  hp.com   <--- 在这里列出通常存取的域。
b.在/etc/resolv.conf文件中增加”nameserver"条目
客户端的解析器在进行主机名和IP地址解析的时候必须要知道使用的是哪个DNS服务器。你可以在/etc/resolv.conf文件中配置最多三个名称服务器;如果第一个域名服务器没有响应,解析器会自动去尝试用第二个服务器。
由于解析器会自动用resolv.conf文件中的DNS服务器的排列顺序来查找域名服务器,你可以使用如下的方法来达到负载均衡的目的:在一些主机上,将主服务器列在前面,在另外主机上将辅域名服务器列在前面。
vi /etc/resolv.conf
search ca.hp.com   hp.com  <---在这里列出通常存取的域
nameserver 128.1.1.1     <--- 在这里列出主域名服务器的IP地址
nameserver 128.1.1.2     <--- 在这里列出辅域名服务器的IP地址
2.修改/etc/nsswitch.conf
多数UNIX都可以使用本地的hosts文件,NIS,DNS三种方式来解析主机名。/etc/nsswitch.conf文件的作用就是用来决定使用哪个服务来进行名称解析,如果你没有/etc/nsswitch.conf文件,系统会默认使用DNS。如果你有一个/etc/nsswitch.conf 文件,找到"hosts"这一行,确认DNS是第一个选项。
cat /etc/nsswitch.conf
...
hosts     dns nis files
...
一旦配置了/etc/resolv.conf和/etc/nsswitch.conf文件,解析器会立即开始使用DNS进行名称解析
3.修改/etc/hosts文件
由于现在大多数的主机名都是使用DNS来进行解析,你可以选择删除/etc/hosts文件中的大多数的条目。但是,你也可以保留一些关键的条目以免在域名服务器失效的时候可以起作用,至少你需要保留localhosts条目和你自己的主机名。
在主域名服务器上,你应该保存本域中所有主机的信息;在使用hosts_to_named之前,确认/etc/hosts文件中的主机名正确的并且格式完整。你同样可以选择以别名方式保留非全格式的主机名。如: 在la.ca.hp.com上,修改后的hosts文件如下:
# vi /etc/hosts
127.0.0.1  localhost
128.1.1.3  la.ca.hp.com  la
4.修改.rhosts,/etc/hosts.equiv等文件。
有些工具需要将接收到的数据包中的IP地址反向解析为域名。如果以下的文件存在,这些文件中应该包含完全格式的域名
~/.netrc
/etc/hosts.equiv
/var/adm/inetd.sec
例如,la上最新的.rhosts文件包含如下信息:
# vi ~/.rhosts
oakland.ca.hp.com
sanfran.ca.hp.com
la.ca.hp.com
你的位置:首页->系统管理->网络管理->DNS域名解析(5)
DNS域名解析(5)
使用nslookup测试DNS
# nslookup
> server  128.1.1.1    # 选择一个域名服务器器
> oakland.ca.hp.com     # 将个主机名解析为一个IP
> 128.1.1.2         # 解析一个IP地址为主机名
> exit
Name Server:  sanfran.ca.hp.com
Address:    128.1.1.1
Trying DNS
Name:      oakland.ca.hp.com
Address:    128.1.1.2
系统默认的配置是:如果DNS失效就从DNS切换为NIS,如果NIS也失效,就从NIS切换为/etc/hosts。
如果配置了多种名称服务方式,并且允许在一种服务无效的时候自动切换使用另一种服务,这时可能出现一种情况就是:对同样的请求,当请求发生的时间不同和响应这种请求的服务不同而得到不同的结果。所以一定要确保所有的名称解析服务解析出来的结果是一致的。
注意:更改系统默认的名称服务查找的配置会使查错变得复杂。
如果swtrace选项没有设置,nslookup可能返回错误的数据源。
# nslookup la
Name Server: sanfran.ca.hp.com
Address: 128.1.1.1
Name :   la
Address: 128.1.1.3
但是如果使用swtrace选项可能会出现另外一种结果:
# nslookup
Name Server: sandran.ca.hp.com
Address: 128.1.1.1
> set swtrace
> la
Name Server: sanfran.ca.hp.com
Address: 128.1.1.1
lookup source is DNS
*** No address (A) record available for la
switching to next source in the policy
lookup source is NIS
Default NIS Server: oakland
Address: 128.1.1.2
Name: la
Address: 128.1.1.3
>
DNS启动文件和数据文件
启动文件named.boot,必须放在/etc目录下,启动文件告诉域名服务器数据库文件的存放位置和指定的域使用哪种类型的域名服务器。
数据文件的位置是可配置的,建议创建一个单独的目录,目录名字可以随意选择。
注意: 域名服务器的cache数据都是存放在内存中,而不是存放在db.cache文件中,这个文件仅仅被用来指明根服务器的IP地址。
辅域名服务器上的named.boot文件和主服务器上的非常接近,只是在关键字primary的地方用secondary代替,同时IP地址为辅域名服务器的IP地址。
named守护进程在启动的时候会重新读取服务器的数据文件。所以无论对数据文件做了任何修改,都应该重新启动服务。
重启动服务的命令为:kill - HUP named_pid 或者sig_named restart。
加载DNS数据文件
当系统的运行模式为2或者更高的时候,/sbin/rc2.d中的一个启动脚本就会执行。这个脚本链接到运行脚本/sbin/init.d/named。这个脚本从/etc/rc.config.d/namesvrs中获取适当的变量。域名服务器用/usr/sbin/named命令启动。这是一个后台运行的守护进程。当named被激活,它会从启动文件/etc/named.boot中找到数据库文件的位置。
NAMED_ARGS变量很少使用。启动域名服务的语法和选项如下:
Syntax:named [ -d debuglevel} [ -p port_number] [ -b bootfile}
选项有:
-d       显示调试信息。-d后面的数字决定信息显示的级别。调试输出信息被重定向到               /var/tmp/named.run文件中。
-p       使用另外一个端口号
-b       使用另外一个启动文件而不是/etc/named.boot。
在任何时候,你都可以使用运行脚本来手工停止或者重启动named.
# /sbin/init.d/named stop
# /sinb/init.d/named start
注意: named进程只运行允许在BIND服务器上运行,而不能在BIND客户端运行。
更新主域名服务器
1.更新主域名服务器上的/etc/hosts文件
  # vi /etc/hosts
2. 使用hosts_to_named命令重建DNS数据文件
  # cd /etc/named.data
  # hosts_to_named -f param
3. 使用 sig_named restart命令重新读取DNS数据文件。
  # sig_named restart
如果你的DNS域中新添加了一台主机或者修改了IP地址,这时就需要更新域名服务器的数据文件。你可以直接使用"vi"来进行修改,但是在一个简单的域中,你可以先修改/etc/hosts文件,然后运行hosts_to_named命令。
1.更新主域名服务器上的/etc/hosts文件。
在/etc/hosts文件中添加新的条目。一定要使用完全格式的主机名。
vi /etc/hosts
127.0.0.1     localhost
128.1.1.1     sanfran.ca.hp.com.    sanfran
128.1.1.2     oakland.ca.hp.com.    oakland
128.1.1.3     la.ca.hp.com       la
128.1.1.4     sacramento.ca.hp.com   sacramento
2.在主域名服务器上重新运行hosts_to_named命令。
此操作会重建主域名服务器上的DNS数据文件,使之能反映/etc/hosts文件的更动。
cd /etc/named.data
hosts_to_named -f param
3.在主服务器上运行sig_named
默认的情况下,named进程在启动的时候只去读取db文件。sig_named命令强制named守护进程重新装载更新过的数据库文件。
sig_named restart
注意这时辅域名服务器上的数据不会立刻同步更新。下一章讲述如何更新辅域名服务器上的数据文件。
更新辅域名服务器
Q:如何知道DNS数据文件是最新的?
Q:什么时候更新DNS数据文件?
A:named根据数据文件的SOA记录来判断是否和什么时候对文件进行更新。
更新操作只需要在主域名服务器上进行。辅域名服务器只是在发现序列号增加的时候才进行一次数据传送。这要看SOA记录中的更新数据的定时器的配置。如果想要立即更新辅服务器上的数据,使用sig_named restart命令重新启动服务即可。
SOA记录列出一个序列号,主服务器上的数据库文件每更新一次,这个数字就会增长。每使用一次hosts_to_named命令,这个数字就会变化一次。辅域名服务器会定时检查这个序列号,如果主服务器上的这个序列号增长了,就自动进行一次数据传递来更新数据。如果在更新的时刻不能连通主域名服务器,隔一个时间段系统会自动重试;如果在一段给定的时间内都不能与主服务器联系,辅域名服务器会放弃所有更新的数据。
注意:辅域名服务器定时自动从主服务器更新数据,而如果你想要立即更新数据,在辅服务器上执行sig_named restart命令即可。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-30 18:23:22 | 显示全部楼层
[推荐]设置FTP服务
网络管理-设置FTP服务
文件传输协议(FTP)是UNIX中最常用的网络服务之一。设置匿名服务器相当简单。而设置虚拟FTP主机和单独的ftp帐号设置需要一些技巧。
1. 匿名FTP
这是最常见的服务:一台机器就是一个单独的FTP服务器。大多数的UNIX版本会自动完成这一设置:通常ftp的根目录为/home/ftp
如果由于某些原因,在你的机器上并未设置匿名FTP服务,它的设置工作如下所示:
以下叙说中的~ftp是在/etc/passwd文件中指定的匿名ftp用户的主目录。
FTP守护进程,ftpd,会识别出匿名用户并对帐户进行适当地调整,访问的根目录会设置为~ftp。这意味着用户最多只能访问~ftp中的文件和目录。当然还可以进行更多的限制。由于文件系统的根已经修改,需要对几个目录和文件进行设置以满足最低的功能要求。
~ftp的属主应为root而且只有root 才能写入。
~ftp/bin的属主也应为root而且只有root 才能写入。它其中应该包含ls程序。~ftp/bin/ls的属主应为root,其访问权限应该为—x—x—x模式,如果不是这样,可以用chmod 111 ~ftp/bin/ls来修改。
~ftp/lib应该包含libc.so.5。这些内容可以在/lib目录下找到。
如果打算让列表将用户和组ID翻译成名字,则需要创建~/ftp/etc目录。它应当具有755访问权限,并且应包含将名字和ID相关联的passwd和group文件。加密的口令字段并未使用,应当置为空。唯一需要存在的字段是username,UID,和GID。
上载和下载目录~ftp/pub应该具有755访问模式,并且属主应为ftp。这样才能允许其他人向目录中上载内容或从目录中读取内容。当然也可以按自己的期望修改所有权和访问权限。
ftp用户在/etc/passwd中的条目应为:
ftp: * : 14: 50 : FTP user : /home/ftp;
FTP是由inetd控制的服务,因此在/etc/services中也要有一个对应项。一般都是设置好的,如果没有,可以手工加入下一项:
ftp  21/tcp
2.系统中其它的用户的FTP访问
当其它用户帐号(不是anonymous或ftp)连接系统时,必须满足三个条件才能授予访问权限。
(1)用户名和口令必须有效。
(2)用户名必须不在/etc/ftpusers中。
(3)用户必须有一个有效的shell,也就是说,他的shell必须出现在/etc/shells列表中。
3.设置仅可以进行FTP连接的帐号
设置用户帐号仅能进行FTP连接是可能的。这些帐号类似于匿名帐号并且能够与之共存。由于根目录已被重置,需要设置bin,lib和etc目录,设置的方法通在匿名帐号种设置它们是一样的。
要设置特定的帐号仅可进行FTP访问需要编辑/etc/ftpaccess文件。
以下就是一个例子,其中设置了两个用户,ftpbob和jane作为只能使用FTP功能的用户。
#
# /etc/ftpaccess
#
class all real,guest,anonymous *
class ftponly ftpbob,jane *
loginfails 5
readme README * login
readme README * cwd= *
message /welcome.msg login
message .message cwd= *
compress yes all
tar yes all
overwrite yes real
chmod no guest,anonymous
delete no guest,anonymous
rename no guest,anonymous
overwrite no guest,anonymous
guestgroup ftponly
class 行设置用户组和主机匹配模式以匹配远程主机。“*” 号匹配所有主机。
相应的/etc/passwd项为:
jane:9pthxXoQVw:518:518:jane’s FTP-only Acount:/a/ftp/jane:/bin/false
ftpbob:l8Leijpehfp:518:518:Bob’s FTP-only Acount:/a/ftp/ftpbob/./incoming:/bin/fales
这两个用户的shell都是有效的shell,并且还会拒绝shell访问。主目录将变成ftp会话的根目录。除此之外,ftpbob帐号会修改目录到/a/ftp/ftpbob/incoming。
可以注意到ftpaccess文件还设置了其他一些参数。
real是任何有效帐号的关键字,“anonymous”代表任何匿名用户,”guest“指guest级别的访问帐号。
compress和tar项告知ftpd何时允许动态的压缩和解压缩,存档和恢复(tar/untar)。
README和messages项设置文件搜索模式以便在连接和进入目录(README)时候自动显示信息。
在上面的例子中,低级访问帐号(anonymous和guest)不能删除文件、修改文件模式或重新命名文件。
Loginfails完成立所期望的工作、在指令次数的登陆尝试失败后放
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-30 18:24:16 | 显示全部楼层
[推荐]wu-ftp服务器的设置
网络管理-wu-ftp服务器的设置
在众多的网络应用中,FTP(File Transfer porotocol)有着非常重要的地位。在Internet中一个十分重要的资源就是软件资源。而各种各样的软件资源大多数都是放在FTP服务器中的。可以说,FTP与WEB服务几乎占据了整个Internet应用的80%以上。
FTP服务可以根据服务对象的不同分为两类:一类是系统FTP服务器,它只允许系统上的合法用户使用;另一类是匿名FTP服务器,Anonymous FTP Server,它使用任何人都可以登录到FTP服务器上去获取文件。
一、选择和安装FTP服务器软件
如果你在安装LINUX系统的时候,在选择启动进程的时候选择了“ftpd”这一项的话,安装完LINUX系统后,它已经将一个默认的FTP服务器安装到系统中去了。我们已经可以利用它来实现系统FTP服务器的功能了。我们只需在此基础上根据我们的需要进行一些个性化设定就可以了。
在绝大多数的LINUX发行版本中都选用的是WashingtonUniversity FTP,它是一个著名的FTP服务器软件,一般简称为wu- ftp。它功能强大,能够很好地运行于众多的UNIX操作系统,例如:IBM AIX、FreeBSD、HP-UX、NeXTstep、Dynix、 SunOS、Solaris等。所以Internet上的FTP服务器,一大半以上采用了它。wu-ftp拥有许多强大的功能,很适于吞吐量较大的FTP 服务器的管理要求:
1) 可以在用户下载文件的同时对文件做自动的
压缩或解压缩操作;
2) 可以对不同网络上的机器做不同的存取限制;
3) 可以记录文件上载和下载时间;
4) 可以显示传输时的相关信息,方便用户及时了
解目前的传输动态;
5) 可以设置最大连接数,提高了效率,有效地控
制了负载。
二、wu-ftp的组成
安装了wu-ftp后,你将在/bin目录下看到以下五个可执行文件:
ftpd FTP服务器程序
ftpshut 用于关闭FTP服务器程序
ftpcount 显示目前在线人数
ftpwho 查看目前FTP服务器的连接情况
ckconfig 检查FTP服务器的设置是否正确
除了这些可执行文件以外,它还在/etc和/var目录下生成了七个配置文件:
/etc/ftpusers
/etc/ftpaccess
/var/run/ftp.pids
/etc/ftpconversions
/var/log/xferlog
/etc/ftpgroups
/etc/ftphosts
系统安装了wu-ftp后,会建立一个特殊的用户ftp,并在/home目录下建立了一个ftpd目录,当用户以匿名登录上来时,将会自动定位于这个目录下。在这个目录下一般会建立几个子目录。
/home/ftpd/bin 存放一些供FTP用户使用的可
执行文件
/home/ftpd/etc 存放一些供FTP用户使用的配置
文件
/home/ftpd/pub 存放供下载的信息
/home/ftpd/incoming 存放供上载信息的空间
三、wu-ftp的配置
1. 查看、修改/etc/inetd.conf文件
/etc/inetd.conf文件是LINUX系统的超级服务器inetd的配置文件。它负责监听多个TCP/IP端口。当它收到请求,就根据配置文件派生一个相应的服务器。通过使用超级服务器,其他服务就可以只在需要时才派生,从而大大节省了系统资源。而wu-ftp就是利用超极服务器inetd来监听请求的。当超级服务器inetd收到了客户端的FTP请求时,就根据配置文件打开一个FTP服务进程。所以我们如果要使用wu-ftp,就必须确认在超级服务器inetd的配置文件inetd.conf中有这样一句:
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd
以便当超级服务器收到FTP请求的时候,能够派生一个wu-ftp的FTP服务进程。(注:要确认是否有这样一行时,可以使用文件内容查找命令来确认:
cat /etc/inetd.conf | grep ftp
如果没有,则用手工加入或手工修改。
2. wu-ftpd的命令选项
wu-ftpd就是wu-ftp的服务进程。它可以不带参数执行,也可以带参数执行。下面简单介绍一下wu-ftpd的执行参数。
-d 当FTP服务器出错时,将错误入系统的syslog中;
-l 将每次FTP客户端进行连接的入系统的syslog中;
-t 设置FTP客户端连接几分钟无操作就切断连接;
-a 使wu-ftp使用/etc/ftpaccess的设定;
-A 使wu-ftp不使用/etc/ftpaccess的设定;
-L 将FTP客户端连线后所执行的程序记录在系统的
syslog中;
-I 将FTP客户端上载文件的日志记录在/usr/adm.xferlog文件中;
-o 将FTP客户端下载文件的日志记录
在/usr/adm/xferlog文件中。
通过对以上参数的理解,我们建议,将上面系统安装时的那条默认配置改为:
ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd –a –I
3.提供自动压缩、解压缩的功能
如果想让FTP服务器有自动压缩、解压缩的功能,必须先将一些压缩、解压缩的命令文件如tar、gzip、gunzip、compress、uncompress等命令文件拷贝到/home/ftpd/bin目录下。
4. 关于/etc/ftpaccess的设置
这个配置文件是FTP服务器上最重要的配置文件,它直接关系到你的FTP服务器能否正常工作,还有许多权限上的设置。下面是一个典型的配置实例。
loginfails 3
class local real *
class remote anonymous guest *
limit remote 100 Any /etc/ftpd/toomany.msg
message /etc/ftpd/welcome.msg login
compress yes local remote
tar yes local remote
private yes
passwd-check rfc822 warn
log commands real
log transfer anonymous guest inbound outbound
log transfer real inbound
shutdown /etc/ftpd/shut.msg
delete no anonymous,guest
overwrite no anonymous,guest
rename no anonymous
chmod no anonymous,guest
umask no anonymous
upload /home/ftpd * no
upload /home/ftpd /bin no
upload /home/ftpd /etc no
upload /home/ftpd /pub yes real 0644 dirs
upload /home/ftpd /incoming yes real guest anonymous 0644 dirs
alias in /incoming
email guest@xxx.net
email guest@yyy.net
deny *.com.tw /etc/ftpd/deny.msg

下面我们逐句进行讲解,并给出每条设置的含义,以便大家触类旁通,以便根据自己FTP服务器的具体情况进行合理的设置。
1. 格式:loginfails [次数]
功能:设定当用户登录到FTP服务器时,允许用户输错密码的次数。
实例:loginfails 3:密码输入错误三次就切断连接。
2. 格式:class [类名] [real/guest/anonymous] [IP地址]
功能:这个指令的功能设定FTP服务器上用户的类别。并可对客户端的IP地址进行限制,允许某部分的IP地址或全部的IP地址访问。而在FTP服务器上的用户基本上可以分为以下三类:
real 在该FTP服务器有合法帐号的用户;
guest 有记录的匿名用户;
anonymous 权限最低的匿名用户
实例:class local real *:定义一个名为local的类,它包含了在任何地方登录(*代表所有IP地址)的real用户。
class remote anonymous guest *:定义一个名为remote的类,它包含了在任何地方登录的anonymous用户和guest用户。
3. 格式:limit [类别] [人数] [时间] [文件名]
功能:这个指令的功能为设置指定的时间内指定的类别允许连接的指定人数上限。当达到人数上限的时候,显示指定文件的内容。
实例:limit remote 100 Any /etc/ftpd/toomany.msg:在任何时间内,remote类的访问用户达到100人时,将不再允许无法产生新的连接,当第101位客户要连接时,连接将失败,并象用户出示文件/etc/ftpd/toomany.msg的内容。
4. 格式:message [文件名称] [指令]
功能:当用户执行所指定的指令时,系统将指定的文件内容显示出来。
实例:message /etc/ftpd/welcome.msg login:当用户执行login命令时,也就是登录到FTP服务器上的时候,系统将显示文件/etc/ftpd/welcome.msg的内容。
5. 格式:compress [yes/no] [类别]
功能:设置哪一个类别的用户可以使用compress(压缩)功能。
实例:compress yes local remote:允许local和remote两个类别的用户都能使用 compress(压缩)功能。
6. 格式:tar [yes/no] [类别]
功能:设置哪一个类别的用户可以使用tar(归档)功能。
实例:tar yes local remote:允许local和remote两类的用户都能使用tar功能。
7. 格式:private [yes/no]
功能:设定是否支持群组对文件的取用。
实例:private yes:支持群组对文件的取用。
8. 格式:passwd-check [none/trivial/rfc822] [enforce/warn]
功能:设定对匿名用户anonymous的密码使用方式。
none 表示不做密码验证,任何密码都可以登录;
trival 表示只要输入的密码中含有字符“@”就可以登录;
rfc822 表示密码一定要符合RFC822中所规定的E-Mail格式才能登录;
enfore 表示输入的密码不符合以上指定的格式就不让登录;
warn 表示密码不符合规定时只出现警告信息,仍然能够登录。
实例:passwd-check rfc822 warn:希望能够得到符合规定的E-Mail作为密码,但如果不是,也允许登录。
9. 格式:log command [real/guest/anonymous]
功能:设置哪些用户登录后的操作记录在文件/usr/adm/xferlog中。
实例:log command real:当real用户登录后,将他的操作记录下来。由于其它用户权限较低,所以操作不会引起太大的安全隐患,所以一般只需记下real用
户的操作就可以了。
10. 格式:log transfers [real/guest/anonymous] [inbound/outbound]
功能:设置哪些用户的上载(inbound)和下载(outbound)操作做日志。
实例:log transfer anonymous guest inbound outbound:对于匿名用户要更加的关注它们的文件操作,所以无论上载、下载都进行记录。
log transfer real inbound:对于合法用户则只记录他的上载记录。
11. 格式:shutdown [文件名]
功能:FTP服务器关闭的时间可以设置在后面所指定的文件中,当设置的时间一到,便无法登录FTP服务器了,要恢复的话只有将这个文件删掉。而这个文件必 须由指令/bin/ftpshut来生成。
实例:shutdown /etc/ftpd/shut.msg
12. 格式:delete [yes/no] [real/anonymous/guest]
功能:设置是否允许指定用户使用delete命令删除文件。默认是允许。
实例:delete no anonymous,guest:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户执行delete命令。
13. 格式:overwrite [yes/no] [real/anonymous/guest]
功能:设置是否允许指定用户覆盖同名文件。默认是允许。
实例:overwrite no anonymous,guest:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户覆盖同名文件。
14. 格式:rename [yes/no] [real/anonymous/guest]
功能:设置是否允许指定用户使用rename命令来为文件改名。默认是允许。
实例:delete no anonymous:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户执行rename命令改变文件名。而对有记录的匿名用户则适当的放宽,允许他们使用改名命令。
15. 格式:chmod [yes/no] [real/anonymous/guest]
功能:设置是否允许指定用户使用chmod命令更改文件权限。默认是允许。
实例:delete no anonymous,guest:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户执行chmod命令更改文件权限。
16. 格式:umask [yes/no] [real/anonymous/guest]
功能:设置是否允许指定用户使用umask命令。默认是允许。
实例:delete no anonymous:为了更好地管理FTP服务器,一般情况下,我们不允许匿名用户执行umask命令。
17. 格式:upload [根目录] [上载目录] [yes/no] [用户] [权限] [dirs/nodirs]
功能:对可以上载的目录进行更加详细的设置。
实例:upload /home/ftpd * no:表示在子目录/home/ftpd下不允许上载;
upload /home/ftpd /bin no:表示在子目录/home/ftpd/bin下不允许上载;
upload /home/ftpd /etc no:表示在子目录/home/ftpd/etc下不允许上载;
upload /home/ftpd /pub yes real 0644 dirs:允许用服务器上的合法用户在子目录/home/ftpd/pub目录下能上载权限为0644(也就是-rw-r--r--)的文件,而且在这个目录下可以新建子目录。
upload /home/ftpd /incoming yes real guest anonymous 0644 dirs:允许所有的用户在子目录/home/ftpd/incoming下能上载权限为0644的文件,而且在这个目录下可以新建子目录。
18. 格式:alias [目录别名] [目录名]
功能:给指定目录设置一个别名,在切换目录时就可以使用较短的目录别名。
实例:alias inc: /incoming:为子目录incoming设置一个别名inc:。
19. 格式:email [guest的E-Mail地址]
功能:只要将某些E-Mail地址设置在这个地方,那么这些用户登录到FTP服务器时,他的身份将为guest,一般权限比real低一些,比anonymous高。
实例:email guest@xxx.net email guest@yyy.net:这里仅是一个示例,实际上可 以包含多个符合规范的E-Mail地址。
20. 格式:deny [IP地址/域名] [说明文件]
功能:这个设置可以限制哪一些IP地址或域名的用户无法登入FTP服务器。
实例:deny *.com.tw /etc/ftpd/deny.msg:设置凡是域名是以“.com.tw”结束的域名,都禁止其访问。而将/etc/ftpd/deny.msg的内容显示给用户看。
5. 设置/etc/ftpuser,禁止某些用户登录
有时我们需要禁止一些用户使用FTP服务。其实这个设置是十分简单的,只需要将要禁止的用户帐号写入文件/etc/ftpuser中。由于从系统的安全考虑,一般我们是不希望权限过大的用户和一些与命令名相同的用户进入FTP服务器。所以在缺省的配置中,一般以下用户已经被列入了“黑名单”。
root
uucp
news
bin
adm
nobody
lp
sync
shutdown
halt
mail
6. 设置/etc/ftphosts,禁止某些来自指定机器上的登录如果你需要拒绝来自某些主机的登录,一种方法就是在/etc/ftpaccess中设置deny命令,另一种更加简单的方法就是在/etc/ftphosts中写入你要禁止的主机的IP地址或域名。
7. 使新的配置生效
到此为止,我们已经能够根据自己的需要对FTP服务器配置进行必要的修改和调整。而让我们重新配置后,就必须使其生效。一般的,对/etc/ftpaccess的配置是直接作用于设置后的下一次FTP服务进程。而其它的则要对inetd进程重新启动。
5.4 wu-ftp相关的其他一些命令的使用
5.4.1 连接数统计命令ftpcount
我们可以使用ftpcount命令十分清楚地统计出当前连接到FTP服务器上的用户数目,并且同时列出上限。命令输出如下所示:
Service class local 0 Users(20maximum)
Service class remote 5 Users(100maximum)
5.4.2 在线用户查看命令ftpwho
我们可以使用ftpwho命令十分清楚地列出当前连接的用户的详细情况。
5.4.2 FTP关闭文件生成命令ftpshut
我们可以使用ftpshut命令生成一个在/etc/ftpaccess中设置的shut.msg文件,用于关机设定。ftpshut命令的格式为:
Ftpshut <-l min> <-d min> time <说明>
-l 这个参数设定在关闭FTP服务器功能前多少分钟时停止用户的连接;
-d 这个参数设定在关闭FTP服务器功能前多少分钟时切断用户连接;
time 指定关闭FTP服务器的时间。例如6:20分则写为0620;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-30 18:25:08 | 显示全部楼层
[推荐]配置ARPA/Berkeley服务
网络管理-配置ARPA/Berkeley服务
配置ARPA/Berkeley 服务(1)
目标:
完成这一章,你将能做到以下事情:
了解常用的ARPA-Berkeley服务。
了解超级守护进程:inetd的功能。
了解在inetd中启动ftp/telnet服务的过程。
了解inetd配置文件。
在命令行启动或停止网络服务。
通过配置inetd.conf文件来启动或禁止某种internet服务。
通过配置inetd.sec文件允许或禁止选定的客户机对网络服务的使用。
通过配置passwd文件来允许或禁止指定的用户使用网络服务。
记录ARPA/Berkeley网络服务请求的日志。
使用/etc/hosts.equiv文件来定义主机之间的信任关系。
使用~/.rhosts文件来定义主机之间用户的信任关系。
1.Internet 服务的总览
功能描述 ARPA Berkeley
终端存取
文件传输
远程命令执行
电子邮件
内部进程通信
网络信息
动态路由
名称服务
时间同步
远程启动
远程打印
telnet
ftp
SMTP
gated
NTP
BOOTP
rlogin
rcp
remsh, rexec
sendmail(使用SMTP)
Sockets
rwho,ruptime,finger
BIND
printer(rlpdaemon)  
2.internet 服务的"客户机/服务器"模式
客户端使用一个服务        服务器提供一个服务
# rlogin gary  <-----------------> rlogind
Internet 服务是基于“客户机/服务器”的模式。
客户机使用服务器提供的服务。关键字“客户机/服务器”经常被用在系统之间而不是用在进程之间,但是一个服务器之所以能够提供服务是因为有一个服务进程运行,另一个方面,一个客户端只有运行一个客户端进程才能和服务器上的进程进行通信。
一个系统如果同时运行一个客户进程和服务器进程,就能同时作为一个服务器和一个客户机。
上例是说明一个简单的客户机/服务器关系,一个用户在节点roger上执行一个rlogin命令从gary节点上获取一个虚拟的终端。rlogin程序是一个客户端的进程。而服务器上运行的是相应的服务器端的进程-rlogind,然后在rlogin和rlogind之间会建立一个网络通信对话线程。
3.通过/sbin/rc启动Internet服务
多数internet服务是一个守护进程。在系统启动过程中,系统运行在运行级别为2的时候启动这些进程,然后在系统中持续运行。
internet服务在服务器上有如下一些守护进程:
gated
named
rwhod
xntpd
sendmail
每一个服务在/sbin/init.d下面都有一个启动/关闭脚本,相关的配置脚本在/etc/rc.config.d目录下。
你也可以禁用其中的一些服务。检查/etc/rc.config.d文件中的控制变量(特别是netdaemons),来决定启动或者停止系统中的哪些服务。
4.通过inetd启动internet服务
虽然许多网络服务都有相应的守护进程在系统中持续运行,但还是有一些internet服务的服务进程是通过inetd(超级守护进程)来管理。
inetd守护进程在系统启动过程中系统运行级别为2时启动,这个进程启动后会监控每个internet服务请求使用的的端口。当inetd接收到一个客户端的请求,就会启动对应的服务进程来响应这个请求。
inetd超级守护进程管理的internet服务有:
telnet
ftp
tftp
bootp
rlogin
remsh
其它的服务
通过inetd启动服务进程有两个主要的优点。首先,服务器进程只在需要的时候启动,这会减轻服务器的负载,第二,使用inetd,服务器可以同时与多个客户端建立连接,inetd守护进程处理另外的客户端请求的方式很简单,就是为这个客户端启动另外一个进程。如果有三个客户端telnet到你的服务器, inetd会启动三个telnetd服务器进程。
注意:inetd只是在服务器上运行,即使没有inetd进程,你仍然可以telnet和ftp到其它的主机。
inetd守护进程在运行级别2时候启动并且在系统中持续运行直到系统关闭。与其它在启动过程中执行的脚本不同,inetd在 /sbin/init.d/inetd 没有控制参数,这就意味着如果你不想在系统启动的时候同时启动inetd,你必须从/etc/rc2.d中删除 inetd启动脚本。
你可以通过执行inetd启动脚本手工停止或者启动inetd:
# /sbin/init.d/inetd stop
# /sbin/init.d/inetd start
inetd守护进程相关的几个配置文件在下节描述:
/etc/inetd.conf
/etc/services
/var/adm/inetd.sec
你的位置:首页->系统管理->网络管理->配置ARPA/Berkeley服务(2)
配置ARPA/Berkeley 服务(2)
5.配置/etc/inetd.conf文件
问题:我需要提供FTP服务吗?
问题: 如何启动一个ftp守护进程?
回答:配置/etc/inetd.conf文件
.
.
ftp    stream    tcp  nowait  root  /usr/lbin/ftpd    ftpd  -l
telnet  stream    tcp  nowait  root  /usr/lbin/telnetd   telnetd
# login  stream    tcp  nowait  root  /usr/lbin/rlogind   rlogind
shell   stream    tcp  nowait  root  /usr/lbin/remshd   remshd
.
.
# inetd -c
inetd启动的时候,它会读取/etc/inetd.conf的配置信息,然后启动相应的服务。
如果想要禁用某种服务,你可以在/etc/inetd.conf文件中对应的条目前面加上注释符号#。
注意:如果修改了/etc/inetd.conf文件,你必须使用inetd -c命令来强制inetd重新读取这个文件。
以下说明/etc/inetd.conf文件中各个字段的含义:
服务名      这个名称对应/etc/services中指定的服务名,如果这个服务器是RPC-            based(NFS),这个服务名称就应该在rpc中。
socket类型   可以为stream或者为dgram,取决于服务器socket是一个stream还是datagram。         socket会在以后的章节中讨论。
协议      必须是/etc/protocols中定义的一个有效的协议,例如,tcp或者udp。
等待/不等待  等待只在datagram中使用。而其它的socket都应该为非等待方式。如果是等待方         式,在一个datagram到达的时刻一个socket只能执行一个datagram服务器。
用户      指明服务由哪个用户身份启动。
服务器程序   当inetd接收到一个请求时候,执行的程序的绝对路径。
参数      服务器程序启动的argv[0]参数,通常指服务器进程的名称。
一个/etc/inetd.conf文件的例子
##
#
#
#     ARPA/Berkeley 服务
#
##
ftp    stream    tcp  nowait  root  /usr/lbin/ftpd    ftpd  -l
telnet  stream    tcp  nowait  root  /usr/lbin/telnetd   telnetd
# Before uncommenting the "tftp" entry below,please make sure
# that you have a "tftp" user in /etc/passwd.If you don't
# have one,please consult the tftpd(1M) manual entry for
# information about setting up this service.
tftp    dgram     udp  wait   root   /usr/lbin/tftpd   tftpd    /usr/lib/sw/HP-UX.install
#bootps  dgram     udp  wait   root   /usr/lbin/bootpd   bootpd
#finger  stream    tcp  nowait  bin   /usr/lbin/fingerd  fingerd
login   stream    tcp  nowait  root   /usr/lbin/rlogind   rlogind
shell   stream    tcp  nowait  root   /usr/lbin/remshd   remshd
exec   stream    tcp  nowait  root   /usr/lbin/rexecd   rexecd
#uucp   stream    tcp  nowait  root   /usr/sbin/uucpd    uucpd
##
#
#
  .
  .
6.配置/etc/services
问题:为了接收FTP的请求,应该监听哪个端口?
回答:配置/etc/services文件
.
.
ftp     21/tcp        # file Transfer protocol (Control)
telnet    23/tcp        # Virtual Terminal Protocol
login    513/tcp       # remote login
shell    514/tcp       # remote command,no passwd used
每一个IP数据包中都包含有一个目标地址,这个地址是由目标主机的IP地址和目标主机的端口号组成,依靠这个地址,系统才能将每个数据包发送给正确的目标。
每一个internet服务有一个“通用”的端口号,所有的主机上都有这些端口号,/etc/services 文件中记录这些端口号和其对应的服务名。
inetd通过检查/etc/inetd.conf文件来决定提供哪些服务,然后再参考/etc/services文件来决定使用哪些端口来监控这些服务。
通过在/etc/services中的一行开始加上“#”号可以禁用一种服务,但是更常用的方式是注释掉/etc/inetd.conf中的条目。
建立一个连接
让我们来了解一下客户机连接服务器的详细步骤。下例描述了两个主机之间建立一个ftp连接的详细过程:
首先,inetd守护进程在系统启动的时候自动启动。在读取了/etc/inetd.conf和/etc/services文件后,inetd便会在21号端口监听FTP请求。如果inetd.conf中还配置了其它的服务,inetd也会监听其对应的端口。
当客户机上的一个用户发出一个ftp命令,客户端的ftp进程会任意打开一个端口同时向服务器上的21端口发送一个ftp请求。客户端的进程不需要使用21号端口,因为没有人会去查找客户机进程。而服务器必须使用一个通用的端口号,以便各个客户端发送请求。
服务器端的inetd守护进程从端口21接收到这个请求,由于21端口为ftp指定的端口,inetd会启动一个ftpd服务进程,靠这个进程建立一个与客户端ftp进程之间的通信连接。而inetd会继续监听其它的请求。
如果同时另外一个客户机请求提供ftp服务,服务器端的inetd守护进程会在端口21启动另外一个ftpd进程。
注意:用netstat -a 命令可以检查有哪些端口可用
7.配置/var/adm/inetd.sec文件
问题:哪些客户机允许使用FTP服务。
回答:修改/var/adm/inetd.sec
.
.
ftp    deny   128.1.1.1
telnet  deny   128.1.*.*
shell   allow   192.1.1.*   192.1.3.*
login   allow   192.1.1-3.*  host1 host2
.
.
如果想要限制客户机使用某些服务,可以通过修改/var/adm/inetd.sec文件来实现。
这个文件的每一个行都定义了某些客户机可以存取inetd管理的一种服务,上例中的情况为:
inetd守护进程拒绝客户机128.1.1.1使用ftp服务,而所有的其它主机都可以使用ftp服务。
网络128.1中的主机都不允许telnet到这个服务器。
只有网络192.1.1或者192.1.3中的主机可以remsh到这个服务器。
网络193.1.1,192.1.2,或者193.1.3中的主机都可以rlogin到服务器,除此之外,host1和host2也可以rlogin到这个服务器。
如果inetd.sec文件不存在,表明所有的客户机可以使用服务器提供的全部服务。如果这个文件存在,但是没有任何与inetd服务相关的条目,未列出的服务对所有的客户机都有效。
inetd.sec文件的格式如下:
服务名       /etc/services中定义的有效服务名
allow/deny     决定后面列出的主机是否能使用一种服务,默认为allow。
主机        允许使用服务的主机的IP地址,网络名,或者主机名。可以使用通配符(*)和范围符号(-)。这些字符可以出现在地址的任何部分。
这个文件的属主为root用户。它的许可权限为r--r--r--。
注意:必须使用/etc/services文件中定义的正式的服务名。rlogin服务的服务名为login。rcp 和remsh的服务名是shell。
8.配置inetd的日志功能
Q:哪个客户机使用了服务器上的哪个服务?
在/var/adm/syslog/syslog.log中有记录!
sep 5 15:51:10 host1 inetd[2234]:telnet/tcp : Connection from host1
sep 5 15:51:12 host1 inetd[2251]:login/tcp : Connection from host1
/etc/rc.config.d/netdaemons
export INETD_ARGS="-1"   # Enable inetd logging at every boot by
               # setting the INETD_ARGS variable here
inetd -l 命令会启动inetd的日志功能。如果启动日志功能。系统日志中就会记录有连接信息。如果使用日志功能,inetd会记录所有的连接请求。其中也会记录由于安全检查失败的连接试图。所以这个功能可以用来检查是否有人尝试非法进入你的系统。
inetd的日志功能在系统启动时候生效,配置/etc/rc.config.d/netdaemons文件如下:
export INETD_ARGS="-1"
注意,inetd日志中记录的是主机名,但是没有记录用户名。而/var/adm/wtmp和/var/adm/btmp文件中记录有成功的和不成功的登录尝试。使用以下的命令来浏览这些文件:
# last    (浏览成功的登录)
# lastb     (浏览不成功的登录)
9.不同系统的用户之间的相互信任
没有建立信任关系的时候:        建立了信任关系后:
# rlogin gary             # rlogin gary
Password: *******           Welcome to gary
Welcome to gary!
系统和用户之间的信任关系:
允许一些用户或所有用户不需要密码就可以进入另外一台主机
只能在Berkeley服务中使用(rlogin remsh rcp)
通过配置/etc/hosts.equiv和~/rhosts文件建立这种关系
系统之间和系统的用户之间的信任关系让本地用户在使用rlogin,remsh,和rcp命令通过网络存取其它主机时不需要输入密码。
建立系统之间的信任关系是通过配置/etc/hosts.equiv文件来完成的。而建立不同系统的用户之间的信任关系需要配置~/.rhosts文件,这两个文件会在以后讨论。
配置这些文件之后你就可以以相同的帐号方便、透明的存取其它主机。但是这种方式也有很大的风险。所以一定要确保下面的文件的许可权限为:
r--r--r--  /etc/hosts.equiv
rw-------  ~/.rhosts
10.配置/etc/hosts.equiv文件
host1         host2         host3
           /etc/hosts.equiv    /etc/hosts.equiv
login:leo       host1 -sue       host1 tom
           host1
1:$ rlogin host2
2: $ rlogin host2 -l tom
3: $ remsh host3 ls            哪个命令会成功?
4:$ remsh host3 -l tom ls
5: $login: sue
  $ rcp host2: .profile
/etc/hosts.equiv将建立主机之间的信任关系,而这些主机是同一用户经常登录的主机,如果远程主机上的用户名和本地主机的用户名是一致的,用户不会被提示输入口令就能进入另外主机。这个文件不适用于超级用户。如果你以超级用户登录,并且试图存取另外的主机,/etc/host.equiv文件不会生效。
/etc/hosts.equiv只在使用Berkeley服务时有效,如remsh,rcp和rlogin。
注意:当你在hosts.equiv中列出一个主机,哪个系统中的所有的和本地用户名一致的用户都可以直接存取你的系统,root用户除外。root用户之间的信任关系可以通过设置.rhosts文件来实现。
/etc/hosts.equiv中的条目
例子解释:
1. $ rlogin host2
leo 想要以用户leo身份登录host2。 由于配置了等价性,不需要输入密码就可以直接登录host2。
2. $ rlogin host2 -l tom
leo必须输入密码,因为/etc/hosts.equiv中不能设置不同用户的等价性。
3. remsh host3 ls
leo想要以leo的身份存取host3。这个命令会失败,因为只配置了host1上的用户tom的信任关系。
4. remsh host3 -l tom ls
leo 想要以用户tom身份存取host3。这个行动会失败,因为只配置了host1上的用户tom的信任关系。
5. rcp host2: .profile
host1上的用户sue想要存取host2。rcp会失败,因为sue是唯一被host2排除在外的host1上的用户。
11.配置~/.rhosts文件
host1                   host2
login: leo              ~root/.rhosts
                    host1   
1.rlogin host2 -l root        ~sue/.rhosts
2.remsh host2 ls            host1 sue
3.remsh host2 -l sue ls        host1 joe
login: sue              ~leo/.rhosts
4:rlogin host2            host1 -sue
5:rcp leo@host2:.profile       host1 +
问题:哪个命令会成功?
任何用户都可以创建和配置$HOME/.rhosts文件,这个文件的作用是指定远程主机上用户和本地用户之间的信任关系。$HOME/.rhosts的文件属主必须为本地用户。
本地主机信任的远程主机的用户是在本地的$HOME/.rhosts文件中列出的,这个用户可以使用本地用户的帐号登录系统而不需要输入密码,远程用户同样也可以在本地系统上拷贝文件或者执行命令。
.rhosts文件只对Berkeley服务有效:如remsh,rcp,和rlogin。
+号和-号在.rhosts文件中也可以使用。你可以参考上例。
注意: .rhosts可以用来让没有权限存取/etc/hosts.equiv文件的远程系统上的用户进入系统。如果你想要root也可以使用信任关系,你必须在超级用户的home目录下创建.rhosts文件,。
例子解释:
1. rlogin host2 -l root
要求输入密码,因为host2上的root用户的.rhosts文件中只配置了系统host1上的root用户。
2. remsh host2 ls
leo想要以host2上的用户leo身份使用系统。这会成功,因为host2上的/home/leo/.rhosts文件配置了允许host1上的所有用户以leo身份登录host2。
3. remsh host2 -l sue ls
这会失败因为在host2上sue的文件中没有配置关于用户leo的条目。
4. rlogin host2
现在sue想要以host2上的sue帐号登录host2。结果不会要求输入密码,因为在/home/sue/.rhosts中存在条目 host1 sue。
5. rcp leo@host2:.profile
这个请求会失败。因为在host2的/home/leo/.rhosts中没有配置sue的信任关系。他是host2的leo用户唯一排除在外的host1上的用户。
禁用用户的.rhosts文件
用户可能没有意识到.rhosts文件的不正确的配置会带来安全隐患。你可以通过在inetd.conf文件的“shell"和"login"所在的行加上-l选项来禁止Berkeley服务使用 .rhosts文件:
# vi /etc/inetd.conf
   login stream tcp nowait root /usr/lbin/rlogind rlogind -l
   shell stream tcp nowait root /usr/lbin/remshd remshd -l
# inetd -c
注意:这个选项不会影响到root用户的.rhosts文件。/etc/hosts.equiv仍然起作用。
12.ARPA/Berkeley服务回顾
现在回顾一下本章介绍的,控制internet服务的可执行文件和配置文件。ARPA/Berkeley服务的配置文件如下:
/etc/inetd.conf        决定inetd提供或者不提供哪些服务
/etc/services         将服务名和通用端口号关联。
/var/adm/inetd.sec       决定哪个客户机可以存取哪个inetd服务
/var/adm/syslog/syslog.log   记录哪些客户机发送过inetd请求,和发送的时间。
/etc/passwd          定义帐号和密码
/etc/ftpusers         定义哪些用户不能使用ftp服务(任选项)
~/.netrc           启动FTP自动登录的功能(任选项)
/etc/hosts.equiv       配置主机的信任关系(任选项)
~/.rhosts           配置用户的信任关系(任选项)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表