2011年6月4日星期六

  AIX 连网

在 UNIX® 服务器上,可以以多种方式执行同一任务。一些人喜欢使用命令行执行带各种标志的命令,其他人喜欢使用 GUI 和 X 窗口会话。一些人直接用 vi 修改文件,其他人通过运行专门的命令自动地更新文件内容。对于连网也是如此,系统管理员可以使用多种连网配置方法。

常用缩写词

  • DNS:Domain name system
  • GUI:Graphical user interface
  • I/O:Input/output
  • IEEE:nstitute of Electrical and Electronics Engineers
  • NFS:Network file system

IBM AIX 是最健壮的操作系统之一,但是寻找执行网络相关任务(比如设置接口或修改默认路由)的最佳方式多少有点儿困难。经历了管理数千台各种服务器之后,我找到了各种执行网络管理的方式(也犯过一些错误)。另外,在这个过程中,我找到了最好、最快和最简便的 AIX 连网管理方法。

本文提供配置网络设备的基本知识,包括某些文件的作用、如何设置和配置接口以及如何管理路由和 IP 别名。

AIX 中的连网

如果您有 Sun Solaris、HP/UX 或 Linux® 背景,会觉得 AIX 中的连网配置方式有悖于其他风格的 UNIX 采用的标准文本文件设计。AIX 网络管理的许多方面通过 Object Data Manager (ODM) 来处理,这是与 Windows® 操作系统中的系统注册表相似的专用数据库。不能通过编辑文件直接操作 ODM,而是要通过 mktcpip 和 lsattr 等专用命令跟踪系统信息。但是,某些方面(比如主机名解析)仍然使用可以直接编辑的文本文件。

同样,当在服务器中使用新的网卡时,比如给逻辑分区 (LPAR) 动态地分配 I/O 资源,在 /dev 中会出现至少两个设备:一个代表网卡的物理属性,另一个是网卡的逻辑表示。例如,服务器中的第一个以太网卡会有三个设备文件:/dev/ent0(物理接口表示)、/dev/en0(逻辑接口表示)和 /dev/et0(IEEE 802.3 逻辑接口表示)。因此,尽管可以在物理接口上修改介质速度和双工模式,但是要在逻辑接口上设置 IP 地址和子网。

注意:如果使用在 Virtual I/O (VIO) 控制下的虚拟适配器,情况会有所不同。

同样,一些命令对网络配置有持久的影响,其他命令的效果只持续到下一次重新引导之前。因此,一定要了解用 ifconfig 命令短期关闭网卡与用 chdev 命令删除网卡之间的差异。另外,通过 System Management Interface Tool (smit) 执行的命令可能并不调用您希望的命令,所以最好在提交更改之前用 F6 键进行检查。

回页首

基本网络配置

对于 AIX 系统管理员,有一个普遍规律:可以根据他们对 smit 的依赖程度看出哪些人是有经验的。过分依赖于 smit 的管理员通常对这个操作系统缺乏了解,所以只好借助于这个工具。但是在某些领域(包括基本网络配置),与执行带十几个标志长达 200 个字符的命令相比,smit 要优雅简单得多。

在分配和探测到网卡(通过运行 cfgmgr)时,设置第一个(主)网卡的最简便方法是运行 smitty tcpip。选择 Minimum Configuration & Startup,然后选择适当的逻辑接口,见 图 1


图 1. Minimum Configuration & Startup

在这个窗口中,必须填写一些信息,包括服务器的主机名、IP 地址、网络掩码、名称服务器 IP 地址和域以及默认路由。当准备好让配置生效时,向下滚动到 START TCP/IP,按 Option-Tab 以选择 yes

按 Enter,设置会立即生效。系统装载在 /etc/rc.tcpip 文件中已经配置的所有相关服务(即 NFS、自动挂装器),网络接口可用了。系统还在 ODM 中定义一个逻辑设备(inet0),它与主机名和路由信息相关。

回页首

配置更多网络接口和参数

现在,可能希望配置另一个网络接口,比如用于备份网络。例如,如果服务器名为 test,可能希望把这个 IP 地址称为 test-backup。尽管您可能想再通过 Minimum Configuration & Startup 窗口配置它,但这是不对的。

如果回到此窗口并提供想要的信息,就会把整个服务器重新命名为 test-backup,当更改 inet0 设备时还可能更改默认路由。另外,因为 TCP/IP 服务被回收,可能会丢失 NFS 挂装等连接。实际上,应该使用另一个 smit 菜单:smitty chinet(见 图 2)。


图 2. Change/Show a standard Ethernet interface

可以通过 smitty chinet 菜单给网络接口分配 IP 地址和网络掩码,而不会干扰现有的底层网络接口或 inet0。在 INTERNET ADDRESSNetwork MASK 字段中输入相关信息,然后把 Current STATE 字段改为 up。按 Enter 之后,这个接口立即出现。

但是,如何给服务器上的接口分配主机名呢?在这里,需要直接修改两个文件。第一个是 /etc/hosts 文件,它包含 IP 地址的本地定义;可以指定 IP 地址与主机名的关系,这与大多数其他风格的 UNIX 相似。在这里,可以提供更多主机信息、本地名称别名和硬编码的 IP 地址。

第二个文件是 /etc/netsvc.conf。这个文件告诉服务器如何执行主机名解析,这与 Solaris 服务器上 nsswitch.conf 文件的作用很相似。在文件中输入 hosts = local, bind 这样的字符串,服务器就会先查看本地 hosts 文件,然后查询 DNS。另外,如果需要更改 DNS 主机名解析参数,可以修改 /etc/resolv.conf 文件以包含更多 DNS 服务器、搜索特定的域和设置重试或重新传输等其他选项。

回页首

路由和别名

在设置网络接口并连线时,可能有必要提供额外的路由信息。这些路由告诉服务器如何经过默认网关到达特定的主机或网络外部。在这里,我采用的方式有点儿特殊。

如果使用 smit 通过 smitty route 菜单更改路由信息,它会调用 chdev 命令为 inet0 配置新的路由。这个路由更改会立即生效并在 ODM 的 Customized Attribute (CuAt) 数据库中注册一个新条目。这个过程能够完美地实现目标,但是我出于两个原因不提倡使用它。

首先,如果需要检查哪些路由已经激活,就不得不查看两个地方。必须查看 netstat –rn 的输出以检查服务器上激活了哪些路由,然后用下面这样的低层命令针对 ODM 检查此信息:

odmget -q "attribute = route" CuAt

 

这样可以看到系统已经存储的哪些路由会在引导时激活,但是这并不方便。

第二,如果某些东西弄乱了,就不得不非常小心地直接修改 ODM。尽管 AIX 与原来相比已经有了很大进步,但是在手工操作 ODM 时错误的操作可能导致服务器不可用,在 ODM 中仍然可能造成混乱。

我提倡使用 /etc/rc.net 文件存储需要添加的路由。在这个文件中,有一个 IBM 预先设计的小节,用来保存路由信息。看一下 "Part II - Traditional Configuration",会看到可以添加路由的区域。这样就有了一个容易更改的文本文件,其中以简单明了的方式包含路由信息,不需要操作 ODM 了。

route 命令也很简单。要想添加到某一主机的路由,需要运行下面的命令并用自己的信息替换变量,把这个命令添加到 /etc/rc.net 文件中:

route add –host $HOST_IP $GATEWAY

 

使用以下命令添加到某一网络的路由:

route add -net $NETWORK -netmask $NETMASK $GATEWAY

 

如果需要使用这种方法删除路由,只需把 add 替换为 delete,运行命令并从 /etc/rc.net 文件中删除相关的行。

双重默认路由

在路由操作方面可能发生的另一个问题是出现双重默认路由。当有人通过 Minimum Configuration & Startup 窗口更改主网络接口上的默认路由时,常常发生这种情况。新的路由立即生效,但是 ODM 同时存储老的和新的默认路由。因此,重新引导会导致服务器有两个默认路由,这会造成各种麻烦,可以通过 netstat -rn 看到它们。下面的过程可以轻松地纠正这个问题:

  1. 在服务器上,通过运行以下命令从 ODM 刷新路由表:

/etc/route -n –f and odmdelete -o CuAt -q "name=inet0 and attribute=route"

 

  1. 进入 Minimum Configuration & Startup 页面,重新输入默认路由,把 START TCP/IP 域的 Now 选项设置为 yes。按 Enter。
  2. 在命令提示下,运行在 /etc/rc.net 文件中添加的所有 route 命令。

    不要运行 /etc/rc.net 文件本身,因为这么做会造成其他问题。

IP 别名

如果希望给接口添加同一子网中的另一个 IP 地址,可以用 IP 别名轻松地实现。只需运行以下命令在 ODM 中添加此信息,用自己的信息替换变量,在 /etc/hosts 文件中添加主机名:

chdev –l $INTERFACE –a alias4=$IP,$NETMASK

 

如果需要删除别名,就把 alias4 替换为 delalias4 并运行相同的命令。

回页首

更改和取消网络接口配置

有时候,需要关闭网络接口。例如,当替换损坏的硬件或更改以太网卡的物理属性以使用巨型帧时,可能需要关闭网络接口(因为如果网卡上有逻辑设备正在运行,就无法更改物理属性)。如果您作为 UNIX 系统管理员已经有一段时间了,可能很熟悉用 ifconfig 命令启动和关闭网络接口。这个命令是有效的,语法普遍适用,但是它的效果只是临时的,只持续到下一次引导系统时。因此,我喜欢使用 chdev 命令。

运行 chdev –l $INTERFACE down 关闭接口并在 ODM 中记录更改。如果需要启动它,只需把 down 改为 up。使用 chdev –l $INTERFACE detach 命令可以更进一步,从 ODM 中完全清除 IP 信息。这样就可以安全、完整地更改设备的 IP 信息。还可以使用 rmdev 彻底删除逻辑和物理设备。

回页首

结束语

本文提供了在 AIX 服务器上执行基本网络管理的背景知识。尽管本文没有深入讨论网络调优,比如优化 Maximum Transmission Unit 大小,但是概述了系统管理员为了让服务器连网需要执行的关键步骤。

 

没有评论:

发表评论