AIX FAQ 第 3 期
2008-09-20 08:23:59 来源:WEB开发网在第 2 期 FAQ 中,我们向您介绍了一些 AIX 网络概念和管理方面的常见问题及其解决方法。在本期中,我们将继续向您介绍一些和网络管理相关的技巧,其中包括 r 命令的介绍、网络启动以及相关的配置文件、inetd 服务等。同时,您还以通过我们提供的在线问题提交页面来提交你所想知道的一些常见问题,我们会及时为您进行解答。
EtherChannel
EtherChannel 是一个能够把多个网卡的带宽聚合在一起的技术。在 AIX 5L 中,EtherChannel 的功能已经被增强,可以支持对网络接口失败情况的检测。这被称作网络接口备份。
在使用网络接口备份的情况下,EtherChannel 只启用一个网络适配器。这样做的目的是为了让在一个网卡无法工作的时候能够通过其它的网卡(连接着不同的网络交换机)保证通信的正常。
注意:目前网络接口备份功能受10/100M 和 千兆网卡支持,如果您使用其它的网络设备,可能会出现一些问题。
配置 EtherChannel 的网络接口备份功能
执行 SMIT,选择 Devices -> Communication -> EtherChannel,如下图所示:
图 1 使用 SMIT 配置 EtherChannel
选择 Add an EtherChannel 来增加一个新的 EtherChannel 定义,如下图所示:
图 2 使用 SMIT 添加一个 EtherChannel
要想创建 EtherChannel,需要选择想要加入 EtherChannel 的网络接口。如果您选择的网卡已经是其它的 EtherChannel 的一部分的话,您将收到一些错误信息,如下所示:
Method error (/usr/lib/methods/cfgech):
0514-001 System error:
Method error (/usr/lib/methods/chgent):
0514-062 can not perform the requested function because the
specified device is busy.
图 2 为 EtherChannel 配置地址
如上图所示,为 EtherChannel 选择一个有效的硬件地址。将 EtherChannel 的模式切换到 netif_backup,用以启用网络接口备份功能。在这种模式下,EtherChannel 会定时检测适配器的链接状态,如果连接状态不为 up,那么 EtherChannel 将会切换到其它网络适配器上。
这也是唯一一个会用到 Internet Address to Ping,Number of Retries,Retry Time-out 这几个选项的模式。下面来介绍一下这几个选项的作用:
Internet Address to Ping
如果这个选项不为空以及模式为 netif_backup,则这个地址就可以被 ping 到。如果 EtherChannel 在尝试了 Number of Retries 次后没有 ping 到这个地址,那么 EtherChannel 就会切换适配器。
Number of Retries
EtherChannel 在切换适配器前尝试 ping 的次数,缺省为 3 次。
Retry Time-out
这个参数是两次 ping 操作之间的时间间隔,缺省为 1 秒。
配置网络属性
网络属性是使用 no 命令来进行配置的。no 命令可以显示和设置当前内核中的网络属性。no 命令是显示还是设置属性取决于使用的参数。- o 参数可以同时实现两个功能,既可以显示,也可以设置参数。当使用 no 修改了网络的属性后,系统会在 syslog 中使用 LOG_KERN 标记对操作进行日志记录。
使用 no 命令请谨慎。因为它并不进行范围的检查,所以,任何数值都可以成为它的参数值。如果使用不当,no 将会让您的系统无法工作。
一些参数可以在系统运行时进行修改并生效。但是有些参数的修改必须在 netinet 内核扩展加载以前进行,同时必须置于 /etc/rc.net 文件中靠前的位置。
下面来举几个使用 no 的例子。
要增加 mbuf 池的最大值到 3MB,可以执行以下命令:
# no -o thewall=3072
要缺省的 socket 缓存值得大小,请将下面的命令增加到 etc/rc.net 文件中的最底部。
/usr/sbin/no -o tcp_sendspace=16384
/usr/sbin/no -o udp_recvspace=16384
下表为常用的网络参数以及说明:
属性 | 描述 |
directed_broadcast | 确定是否向网关直接进行网络广播。 |
Ipforwarding | 确定内核是否转发网络包。 |
thewall | 定义内存池中使用的内存的最大数(以 K 为单位) |
ipsendredirects | 确定内核是否发送重定向信号。 |
net_malloc_police | 确定 net_malloc/net_free 跟踪缓存的大小。 |
route_expire | 确定是否终止路由。 |
routervalidate | 确定是否在新的路由添加到路由表是对它进行有效性的检查。 |
sb_max | 确定 socket 使用缓存的最大值。 |
tcp_sendspace | 确定系统发送数据时使用的 socket 缓存大小。 |
udp_recvspace | 确定系统接收 UDP 数据时使用的 socket 缓存大小。 |
r 命令
r 命令是类似 rcp,rlogin 和 rsh 等命令的统称。下表列出了这些 r 命令以及它们的功能。
r 命令 | 描述 |
rcp | 在两个不同的机器间传输文件。 |
rlogin | 连接远程的计算机。 |
rsh | 在远程的计算机上执行命令。 |
这些命令被安装在 /usr/bin 目录下,并包含在 bos.net.tcp.clients 文件集里,如下面所示:
# ls -l /usr/bin/rcp /usr/bin/remsh /usr/bin/rlogin /usr/bin/rsh
-r-sr-xr-x 1 root system 319972 Feb 10 2002 /usr/bin/rcp
-r-sr-xr-x 2 root system 303506 Feb 10 2002 /usr/bin/remsh
-r-sr-xr-x 1 root bin 306328 Feb 10 2002 /usr/bin/rlogin
-r-sr-xr-x 2 root system 303506 Feb 10 2002 /usr/bin/rsh
# lslpp -w /usr/bin/rcp /usr/bin/remsh /usr/bin/rlogin /usr/bin/rsh
File Fileset Type
----------------------------------------------------------------------------
/usr/bin/rcp bos.net.tcp.client File
/usr/bin/remsh bos.net.tcp.client Hardlink
/usr/bin/rlogin bos.net.tcp.client File
/usr/bin/rsh bos.net.tcp.client File
下图通过展示 rsh 命令的工作流程来演示了 r 命令的工作原理。
图 4 r 命令的工作原理
下面来解释一下这个工作流程:
在客户端上,rsh 发起了对服务端的连接请求。
服务端上的 rshd 守护进程通过下面的步骤来确认试图连接用户的有效性:
rshd 守护进程在相关的配置文件或者服务(/etc/password 文件或者 NIS 服务)中查找用户名和密码。
如果用户的 ID 不是 0,那么 rshd 将在 /etc/host.equiv 文件中查找客户的名称,并进行有效性的确认。
如果 $HOME/.rhosts 文件存在,那么 rshd 将通过它来对远程的连接进行验证。
如果前面的尝试都不成功,那么 rshd 将消失提示符让您输入密码来进行用户的确认。
3.一旦 rshd 确认了用户的有效性,将生成一个子 Shell 来为客户端服务(上图的 B 过程)。这个 Shell 将继承 rshd 建立的连接,同时它将接收到 rsh 提供的命令。这个子 Shell 将输出返回给 rsh (如上图的 C 过程)。当远程的命令结束以后,rsh 进程也会随即退出。
/etc/host.equiv 文件是整个系统范围的 r 命令的配置文件,而 $HOME/.rhosts 文件只适用于特定的用户。为了能够正确地利用 r 命令,需要保证这两个文件都保持相同的格式,如下所示:
hostname [username]
第一个选项表示可以访问本服务器的机器名。如果使用符号 +,那么表示任何主机都可以访问本服务器。第二个选项(可选)是指定哪些用户可以访问本服务器。如果使用符号 +,那么表示任何用户都可以访问本服务器,但是这也意味着没有任何身份认证了。
从上面的介绍可以看出,r 命令可以给系统管理带来很多的方便,但是同时也会给系统带来很多的安全漏洞。所以,我们并不推荐您在生产环境使用 r 命令。
网络启动
当服务器启动以后,网络也通过 cfgmgr 在启动阶的第二阶段进行初始化。网络启动脚本是由 ODM 的配置规则来确定的。缺省的脚本是 /etc/rc.net 文件,它使用 ODM 的数据来定义、加载和配置网络接口。
下图演示了整个网络启动过程。
图 5 网络启动过程
另一种可能的网络启动方式是使用 /etc/rc.bsdnet 文件的BSD 风格。这个脚本使用传统的 ifconfig 命令来配置网络接口。
网络启动的下一个阶段是运行 /etc/rc.tcpip 脚本。在网络安装阶段,一个条目被动地添加到了 /etc/inintab 文件中。rc.tcpip 脚本使用系统资源控制器(System Resource Controller,SRC)来来启动被选中的守护进程。
在 AIX 中,子系统(subsystem)和子服务器(subserver)的名字有特定的含义:
子系统 由 SRC 控制的守护进程和服务器。
子服务器 由子系统控制的守护进程。由于唯一控制子服务器的 TCP/IP 子系统是 inetd,所以所有由 inetd 控制的 TCP/IP 守护进程就是子服务器。
系统资源控制器(SRC)
SRC 是一个 AIX 特有的子系统控制器,用于控制和管理子系统进程。SRC 为系统管理员提供了管理工具用以启动、停止、跟踪、列表和刷新守护进程。
下面的实用工具可以用于进行 SRC 管理工作:
startsrc 启动 TCP/IP 子系统和子服务
stopsrc 停止所有 TCP/IP 子系统和子服务
refresh 刷新子系统和子服务(强制执行初始化)
lssrc 显示子系统和子服务的状态
网络子系统
/etc/rc.tcpip 文件是一个可以运行在系统上的脚本。它可以使用 startsrc 命令来启动被选中的守护进程。/etc/rc.tcpip 也可以随时在命令行上运行。
下面列出的子系统都可以使用 rc.tcpip 启动:
syslogd:UNIX 的标准错误日志服务器
portmap:用于 RPC 的端口查看工具
inetd:启动例如 telnet、ftp 等服务的 Internet 守护进程
lpd :打印服务守护进程
routed 或 gated:动态路由。请注意两个子系统不能同时启动
sendmail:邮件服务器
timed,xntpd:时间同步守护进程
snmpd,dpid2:SNMP 守护进程
dhcpcd, dhcprd, dhrcpsd:DHCP守护进程
autoconf6, ndpd-host:IPv6 守护进程
mrouted:多播路由
注意:rc.tcpip 自动地启动 syslogd, portmap, inetd, lpd, 和 sendmail 守护进程。而上面的其它进程需要单独地在 rc.tcpip 脚本中把注释去掉。
要显示所有的网络守护进程,可以使用 lssrc 命令:
# lssrc -g tcpip
Subsystem Group PID Status
inetd tcpip 7484 active
snmpd tcpip 7740 active
dpid2 tcpip 7998 active
tftpd tcpip 14494 active
rwhod tcpip 15466 active
gated tcpip inoperative
named tcpip inoperative
routed tcpip inoperative
iptrace tcpip inoperative
xntpd tcpip inoperative
timed tcpip inoperative
dhcpcd tcpip inoperative
dhcpsd tcpip inoperative
dhcprd tcpip inoperative
ndpd-host tcpip inoperative
ndpd-router tcpip inoperative
mrouted tcpip inoperative
上面的例子列出了所有属于 tcpip 组的守护进程。当然,您还可以使用 smitty subsys 命令来对子系统进行控制,如下图所示:
图 6 使用 SMIT 配置 子系统
SMIT 菜单可以帮助你对子系统进行管理,如启动、停止、刷新和跟踪子系统守护进程。
Internet 守护进程-Inetd
Internet 守护进程 inetd 是一个超级服务守护进程。它可以管理其它的 Internet 子服务器并且可以按照请求启动它们。inetd 可以通过仅当守护进程被请求时而启动它们的方式来简化管理工作和降低系统的负载。inetd 由 startsrc 命令启动。启动时,inetd 读取配置文件 /etc/inetd.conf,从而决定哪些 Internet 服务需要被启动。inetd 会为每个启动的 Internet 服务监听端口,例如 telnet(端口:23)。
/etc/inetd.conf 文件
/etc/inetd.conf 是 inetd 的缺省配置文件。这个文件可以指定哪些服务可以被缺省的启动,以及可以设定一些服务的启动参数。如果您改变了 /etc/inetd.conf,那么可以使用 refresh –s intetd 或者 kill –l inetdPID 命令来让 inetd 进程重新加载修改后的配置文件。
inetd 配置文件是一个 ASCII 文件,其中的条目对应了每一个所支持的 Internet 服务。
每一个条目包括以下的项:
ServiceName Internet服务的名称,应该和 /etc/services 文件中定义的一致。
SocketType 服务使用的 socket 的类型。
stream – 使用 stream 类型的 socket
dgram - 使用datagram 类型的 socket
sunrpc_tcp – 使用 RPC stream 类型的 socket
sunrpc_udp – 使用 RPC datagram 类型的 socket
ProtocolName Internet 服务使用的协议名词,应该和 /etc/protocols 文件中定义的一致。
wait/nowait/SRC wait 对应 dgram 类型,nowait 对应 stream 类型。这个项决定了inetd 是否在继续监听一个 socket 前等待一个 datagram 服务器释放这个 socket。SRC选项的作用和 wait 相同,但是它 startsrc 来启动子系统并且把启动的信息保存起来。
User Name 指定 inetd 启动服务时使用的用户名。这样可以控制服务进程的使用权限。
Server Path 服务程序的完整路径。对于由 inetd 内部提供的服务,这个选项应该为 internal。
Program Arguments 服务程序启动时使用的选项。最多可以使用 5 个选项。
下面显示了一个具体的 /etc/inetd.conf 文件的内容:
## name type nowait program arguments
##
ftp stream tcp6 nowait root /usr/sbin/ftpd ftpd
telnet stream tcp6 nowait root /usr/sbin/telnetd telnetd -a
shell stream tcp6 nowait root /usr/sbin/rshd rshd
kshell stream tcp nowait root /usr/sbin/krshd krshd
login stream tcp6 nowait root /usr/sbin/rlogind rlogind
klogin stream tcp nowait root /usr/sbin/krlogind krlogind
exec stream tcp6 nowait root /usr/sbin/rexecd rexecd
#comsat dgram udp wait root /usr/sbin/comsat comsat
#uucp stream tcp nowait root /usr/sbin/uucpd uucpd
#bootps dgram udp wait root /usr/sbin/bootpd bootpd
/etc/bootp tab
....
/etc/services 文件
/etc/services 文件包括了已知的使用者 DARPA Internet 网络上的服务,同时也包括了一些第三方开发商的服务。文件中的每一行以特定的格式定义了每一个服务:
ServiceName PortNumber/ProtocolName Aliases
这些项的作用是:
ServiceName 指定服务的官方名称
PortNumber 指定服务使用的 socket 端口
ProtocolName 指定服务使用的传输协议
Aliases 指定服务使用的非官方名称
项与项之间由空格或者制表符分隔。注释由 # 开头,直至行尾。
如果修改了 /etc/services,您需要使用 refresh –s inetd 或者 kill –l InetdPID 来使修改生效。
下面显示了一个具体的 /etc/services 文件的内容:
# Network services, Internet style
#
tcpmux 1/tcp # TCP Port Service Multiplexer
tcpmux 1/udp # TCP Port Service Multiplexer
compressnet 2/tcp # Management Utility
compressnet 2/udp # Management Utility
...
telnet 23/tcp
smtp 25/tcp mail
nsw-fe 27/tcp # NSW User System FE
nsw-fe 27/udp # NSW User System E
...
man 9535/tcp
man 9535/udp
isode-dua 17007/tcp
isode-dua 17007/udp
dtspc 6112/tcp
fontserver 7100/tcp xfs # X11R6 font server
网络服务分配的端口
下面的表提供了一个常用网络服务端口的列表
守护进程 | 端口 | 服务描述 |
ftp | 21 | 用于本地主机和远程主机间传递文件。 |
tftp | 69 | 类似 FTP 的服务,也是用于主机间的文件传递,多用于网络安装使用。 |
login | 513 | 可以使 rlogin 命令登录到远程的主机上。 |
telnet | 23 | 使用 telnet 端口连接远程主机。 |
Bootps | 67 | 设置 Internet Boot Protocol 服务器 |
Timed | 525 | 在局域网内和其它主机进行时间同步。 |
Shell | 514 | 在登录时,通过读取 shell 启动文件来设置用户的用户环境。 |
Snmp | 161 | 用于网络主机间交换管理信息使用。 |
Smtp | 25 | 主要是用于网络间传递 email。sendmail 服务使用它来收发 email。 |
下面列出了更多常用服务使用的端口,供您参考:
ftp 21/tcp
telnet 23/tcp
shell 514/tcp cmd # no passwords used
kshell 544/tcp krcmd
login 513/tcp
klogin 543/tcp
exec 512/tcp
uucp 540/tcp uucpd # uucp daemon
bootps 67/udp # bootp server port
finger 79/tcp
systat 11/tcp users
netstat 15/tcp
tftp 69/udp
talk 517/udp
ntalk 518/udp
snmp 161/tcp # snmp request port
snmp 161/udp # snmp request port
snmp-trap 162/tcp # snmp monitor trap port
snmp-trap 162/udp # snmp monitor trap port
smtp 25/tcp mail
re-mail-ck 50/tcp # Remote Mail Checking Protocol
re-mail-ck 50/udp # Remote Mail Checking Protocol
xns-mail 58/tcp # XNS Mail
xns-mail 58/udp # XNS Mail
ni-mail 61/tcp # NI MAIL
ni-mail 61/udp # NI MAIL
imap2 143/tcp # Interim Mail Access Pro. v2
imap2 143/udp # Interim Mail Access Pro. v2
pcmail-srv 158/tcp # PCMail Server
pcmail-srv 158/udp # PCMail Server
mailq 174/tcp # MAILQ
mailq 174/udp # MAILQ
tam 209/tcp # Trivial Auth. Mail Protocol
tam 209/udp # Trivial Auth. Mail Protocol
imap3 220/tcp # Interactive Mail Acces Pro.
imap3 220/udp # Interactive Mail Acces Pro.
mailbox 2004/tcp
更多精彩
赞助商链接