developerWorks 中国, 编辑团队, IBM
2008 年 5 月 22 日 在第 1 期 AIX FAQ 中,我们为您提供了一些 AIX 的基础知识和基本操作。在第 2 期中,我们将向您介绍一些 AIX 网络概念和管理方面的常见问题及其解决方法。在随后的几期中,还会陆续介绍其它相关网络方面的内容,希望您能够关注。
网络适配器
在 AIX 中,TCP/IP 网络支持多种适配器,如:
- 10/100 MB 以太网适配器
- 千兆以太网适配器
- 令牌环网络适配器
- FDDI
- ATM Turboways 100/155
- 异步适配器和本地串行端口
- 串行光通道转换器
添加一个网络适配器:
当在系统中添加网络适配器后,在 ODM(Object Data Manager)中就会有相应的逻辑设备被创建。下面的例子是如何创建一个以太网络适配器:
# lsdev -Cc adapter | grep ent
ent0 Available 10-80 IBM PCI Ethernet Adapter (22100020)
ent1 Available 20-60 Gigabit Ethernet-SX PCI Adapter (14100401)
|
相应的网络接口可以允许 TCP/IP 使用网络适配器。对于那些可以自动检测到的适配器,如以太网和令牌网适配器,网络接口都是自动创建的。然而,例如 ATM 适配器,就需要手工进行创建。
对于每个网络适配器,AIX 系统为它们分别分配了一个位置码(location codes)。它的作用是确定适配器所在的位置。一般情况下,位置码一般由最多 4 位代码组成,具体代码的含义在不同类型的机器上是不同的。在这里,我们向您展示如何查询适配器的位置码,如下面的示例:
# lsdev -Cc adapter
ppa0 Available 01-R1 Standard I/O Parallel Port Adapter
sa0 Available 01-S1 Standard I/O Serial Port
sa1 Available 01-S2 Standard I/O Serial Port
sa2 Available 01-S3 Standard I/O Serial Port
siokma0 Available 01-K1 Keyboard/Mouse Adapter
fda0 Available 01-D1 Standard I/O Diskette Adapter
scsi0 Available 10-60 Wide SCSI I/O Controller
tok0 Available 10-68 IBM PCI Tokenring Adapter (14103e00)
ent0 Available 10-80 IBM PCI Ethernet Adapter (22100020)
mg20 Available 20-58 GXT130P Graphics Adapter
ent1 Available 20-60 Gigabit Ethernet-SX PCI Adapter (14100401)
scsi1 Available 30-58 Wide SCSI I/O Controller
sioka0 Available 01-K1-00 Keyboard Adapter
sioma0 Available 01-K1-01 Mouse Adapter
|
从示例中可以看出,这个系统中安装了 tok0 (一个 PCI 令牌环适配器,位置码为10-68),ent0(一个内置的以太网卡,位置码为10-80)和一个 PCI 千兆以太网卡,位置码为20-60,通过相应的参数表,可以查询到各个网络适配器对应的槽位。详细的操作方法可以参见 System p 的硬件手册:
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.pseries.doc/hardware_docs/hardware.htm
删除一个网络适配器
如果您想从系统中删除一个网络适配器,首先你需要删除相对应的网络接口,然后才能成功删除这个适配器设备。
例如,想删除一个名为 ent1 的网络适配器,需要执行下面的相应操作:
1.查看网络适配器;
# lsdev -Cl ent1 //ent1 为网络适配器名
ent1 Available 04-D0 IBM PCI Ethernet Adapter (22100020)
|
2.查看网络接口的定义:
# lsdev -Cl en1 //en1 为网络接口名
en1 Available Standard Ethernet Network Interface
|
3.停止这个网络接口:
4.删除这个网络接口:
5.删除这个网络接口的驱动:
# rmdev -l en1 -d
en1 deleted
# rmdev -l ent1 -d
ent1 deleted
|
然后您就可以关闭您的服务器,然后把相应的网络适配器拆卸掉了。如果您使用的是热插拔的 PCI 插槽,那么您只要禁用相应的 PCI 插槽,就可以在机器运行的状态下拆卸掉对应的网络适配器了。
网络驱动
为了确认您适配器安装的是哪个网络驱动,您需要使用 lsdev 命令来查询对应的设备的 ID 号,这个 ID 会在 lsdev 输出中显示(一般在括号中)。然后使用 lslpp 命令查找对应的 LPP。下面的例子就是演示如何查询出一个千兆以太网卡所对应的驱动:
# lsdev -Cc adapter | grep ent
ent0 Available 10-80 IBM PCI Ethernet Adapter (22100020)
ent1 Available 20-60 Gigabit Ethernet-SX PCI Adapter (14100401)
# lslpp -l | grep 14100401
devices.pci.14100401.diag 4.3.3.0 COMMITTED Gigabit Ethernet-SX PCI
devices.pci.14100401.rte 4.3.3.10 COMMITTED Gigabit Ethernet-SX PCI
devices.pci.14100401.rte 4.3.3.0 COMMITTED Gigabit Ethernet-SX PCI
|
安装不存在的网络驱动
如果一个新安装的网络适配器没有在 lsdev 命令输出中显示,那么您可以通过使用cfgmgr 命令来确定缺少了那些软件。cfgmgr 命令会立即显示一个警告并显示缺少了哪些驱动文件集,例如:
# cfgmgr
cfgmgr: 0514-621 WARNING: The following device packages are required for
device support but are not currently installed.
devices.pci.token-ring:devices.pci.14101800:devices.pci.IBM.42H0658:devices.pci
.
IBM.25H3037:devices.pci.IBM.38H5818
|
安装缺失的驱动文件集并重新运行 cfgmgr 命令。如果 cfgmgr 没有显示任何警告,那么这个网络适配器被成功地安装在您的系统上了。
网络驱动属性
您可以使用 lsattr 命令显示网络驱动的属性值。命令会显示每一个网络驱动的属性名称、值,以及它的相关作用描述。每一个网络驱动属性都有一个标记表示它是否能够被修改。
上面这个例子中列出的是一个千兆以太网卡的驱动属性。注意,属性 attributes busmem, busintr, intr_priority, 和rx_que_size 是不能被修改的。如果这个属性值为 True,那么就可以使用 chdev 来对它进行修改,例如:
# chdev -l ent1 -a rx_checksum=yes
ent1 changed
|
在对这些属性修改之前,务必阅读一下这个设备驱动的相关文档。为了达到最好的性能,请让网络接口的属性尽量符合整个网络的相关属性。
lsattr 命令可以协助对网络驱动的参数值进行设定。它的 –R 标记可以显示某个指定属性值得范围,例如:
# lsattr -R -l ent1 -a stat_ticks
1000...1000000 (+1)
|
这个例子显示了 stat_ticks 属性值的范围在 1000 到 1000000 之间。
AIX 网络接口
下表中列出了 AIX 支持的网络接口。可能系统中会存在同一类型的多种设备,同时每种设备都会有它们自己的接口。跟在适配器和接口名称后面的 x 表示对应的适配器和接口的数字,从 0 开始。每当系统增加一个型号的设备或接口时,x 就会相应增加1。
可以注意到,标准的以太网(en)和802.3(et)使用的是相同的适配器类型(et)。
ledev 命令可以用于显示系统上的可用网络接口,例如:
# lsdev -Cc if
en0 Available Standard Ethernet Network Interface
et0 Defined IEEE 802.3 Ethernet Network Interface
lo0 Available Loopback Network Interface
tr0 Available Token Ring Network Interface
|
和网络适配器相同,网络接口的属性也可以使用 chedev 命令进行修改。例如:
# lsattr -E -l en0 -a netaddr
netaddr 10.47.1.5 Internet Address True
# chdev -l en0 -a netaddr=10.47.1.6
en0 changed
# ifconfig en0
en0:
flags=e080863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT>
inet 10.47.1.6 netmask 0xffff0000 broadcast 10.47.255.255
|
地址解析协议(ARP)
网络上的机器只有知道了其它机器的物理(MAC)地址才能与其进行通信。而机器是通过不断的发送 ARP 广播包来更新自己本地的 MAC 地址表的。下面的例子向您演示了如何在 AIX 上查询本机网络接口对应的 ARP 地址:
经过了一次 ARP 查询,系统会把 IP 和 MAC 的对应关系列表保存在本机的 ARP 缓存中,这样就保证了本机只需查询本地的 ARP 缓存就可以得到相应机器的 MAC 地址,而不需要每次都进行相应的 ARP 广播查询。但是如果网络中的相应机器更换了网络适配器,那么相应的对应相同 IP 地址网卡的 MAC 地址也会随之更改。这样如果还继续按照本地的 ARP 缓存中的信息来进行相应的连接的话,将无法达到相应的网络接口。这样就需要对本机的 ARP 缓存进行相应的更新。
首先,使用 arp 命令查看 ARP 缓存:
ARP 缓存信息中会包括:
- 机器名(如果可以被解析的话)。
- IP 地址。
- MAC 地址。
- 硬件接口类型,如令牌环或以太网。
当网络上任何支持 ARP 的机器接受到 ARP 请求时,本机会记住请求方的 IP 地址和硬件地址,如果需要会更新本机的 APR 列表。如果请求包中的目的地址和接收方的地址不符合,那么,接收方就会抛弃这个请求包;相反,接收方会向请求方发回一个响应包,这样请求方就会按照响应包中的信息更新自己的 ARP 缓存列表。这样就可以保证 ARP 列表的正确性。
基本网络管理
执行 smitty tcpip 命令会显示如下图的界面:
选择“
Minimum Configuration & Startup
”,然后选择您想配置的网络接口。然后就可以进入对应的配置界面:
上图中显示了对应网络接口最基本的一些信息。包括:主机名,IP 地址,子网掩码,DNS 信息等。在这里您可以进行相应的修改,然后按 Enter 进行确认保存。
下面会详细地向您介绍如设置相应的属性。
设置主机名
除了可以使用 SMIT 来设置主机名,您还可以使用 hostname 命令来设置它。例如:
检查当前主机名:
使用 chdev 修改主机名:
# chdev -l inet0 -a hostname=server3
inet0 changed
|
使用 lsattr 名查看主机名:
# lsattr -El inet0 -a hostname -F value
server3
|
域名解析设置
在简单的 TCP/IP 网络中,网络中的机器使用 /etc/hosts 文件来存储对应机器的 IP 地址和机器名的列表。但是在大型的网络中,网络中的计算机就需要借助类似 DNS 的服务来解析域名了。
AIX 系统上,缺省的域名解析顺序是:
- 使用 /etc/resolv.conf 文件中定义的 DNS/BIND 解析。
- NIS
- 查询 /etc/hosts 文件
当然可以通过建立或者修改 /etc/netsvc.conf 文件来修改这个缺省的解析顺序。同时,环境变量 NSORDER 也可以覆盖 /etc/netsvc.conf 文件和缺省定义的解析顺序。NSORDER 变量的格式为:host=value,value,value,其中 value 可以为 bind,nis 和 local。下面的例子演示了如何通过修改 NSORDER 变量来影响域名解析功能:
# ping -c 1 server2
PING server2.itsc.austin.ibm.com: (9.3.240.57): 56 data bytes
64 bytes from 9.3.240.57: icmp_seq=0 ttl=255 time=0 ms
----server2.itsc.austin.ibm.com PING Statistics----
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0/0/0 ms
# export NSORDER=local,bind,nis
# ping -c 1 server2
PING server2: (9.3.240.57): 56 data bytes
64 bytes from 9.3.240.57: icmp_seq=0 ttl=255 time=0 ms
----server2 PING Statistics----
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0/0/0 ms
|
修改域名解析顺序一定要小心,但是在 DNS 无法使用的时候,这个操作还是很有必要的。
/etc/resolv.conf 文件中保存着本机 DNS 服务器的信息。如果 /etc/resolv.conf 文件不存在,那么 DNS 服务也就无法使用。对于 /etc/resolv.conf 文件的配置,您可通过 smitty resolv.conf 命令来执行,如下图所示:
下面是一个 /etc/resolv.conf 文件的示例:
# cat /etc/resolv.conf
search ibm.com
nameserver 9.3.240.2
nameserver 9.53.248.2
nameserver 9.53.183.2
domain itsc.austin.ibm.com
|
对应的记录的含义:
- search 搜索机器名的列表。这通常由本地机器名的域决定。
- nameserver 按顺序要查询的 DNS 服务器的 IP 地址,最多三个。
- domain 本地域名。
注意: 只能使用一个 search 和 domain 选项。
网络接口配置
如果你从网络管理员那里得到了你机器的 IP 地址和子网掩码信息,那么你就可以动手配置你的网络接口了。
您可以使用命令来直接配置您的网络接口,例如:
当然,首先,您需要查看机器有哪些网络接口:
# lsdev -Cc if
en0 Available Standard Ethernet Network Interface
et0 Defined IEEE 802.3 Ethernet Network Interface
lo0 Available Loopback Network Interface
tr0 Available Token Ring Network Interface
|
然后使用 chedev 命令进行配置:
# chdev -l en0 -a netaddr='9.3.240.58' -a netmask=255.255.255.0’
en0 changed
|
这样您就将 en0 接口的 IP 地址和子网掩码分别配置为:9.3.240.58 和 255.255.255.0。
同样,您可以使用 SMIT 进行同样的配置,例如:
执行 smitty chinet 进入配置页面
需要提醒您的是,smitty chinet 和 chedev 都会永久的更新 ODM,这样即使重启也无法使设置失效。当然,还有不必更新 ODM 的方法,就是使用 ifconfig 命令进行临时的修改,当然在机器重启后,相关的网络接口配置也会恢复到修改前的状态。例如:
# ifconfig en0 195.116.119.2 netmask 255.255.255.0 up
|
以上命令就可以相应地修改 en0 的 IP 地址和子网掩码。
TTY 配置
AIX 是一个多用户的操作系统,它支持用户在本地或者从远程进行登录和访问。支持这个功能的通讯层就是 TTY 子系统。TTY 子系统控制着终端设备和相关程序的通信。典型的 TTY 设备有:
- 调制解调器
- ASCII 终端
- 系统控制台
- 串口打印机
- X-windows 下的 X-term 和 aixterm
下面的例子向您简单地演示了一下如何在串行端口 0 上配置一个能够实现登录功能的 TTY 控制台。
创建 TTY 控制台:
# mkdev -c tty -t tty -s rs232 -p sa0 -w 0 -a login=enable
tty0 Available
|
确认 TTY 控制台已经添加到自定义的 VPD 目标类中了:
# lscfg -vp|grep tty
tty0 01-S1-00-00 Asynchronous Terminal |
显示控制台的完全路径:
如果想删除这个 TTY 控制台,首先要取消它的登录功能:
# chdev -l tty0 -a login=disable
tty0 changed
|
然后再删除它:
# rmdev -l tty0 -d
tty0 deleted
|
参考资料 学习
获得产品和技术
-
IBM 试用软件:从 developerWorks 可直接下载这些试用软件,您可以利用它们开发您的下一个项目。
讨论
关于作者
对本文的评价
|