AIX 上的网络接口信息

AIX 上的网络接口信息

我想要获取有关 AIX 上可用网络接口的所有信息。就像在linux上一样,我们可以从/sys/class/net文件中获取它。 AIX 上有可以找到相关信息的文件吗?

我还尝试使用“/dev/kmem”文件访问它。我应该使用哪个结构来捕获网络接口的信息,就像我们使用 struct sysinfo 的系统信息一样。我正在尝试获取“ifnet”符号的信息。我可以从这里获取网络接口的MTU、硬件地址等信息吗?

答案1

在 AIX 上,此类内容保存在 ODM 中,但获取它的最简单方法是使用操作系统命令。对于网络接口,

ifconfig -a以获得逻辑信息。 lscfglsdev以及lsattr物理细节(或在某些情况下是伪物理)。

例子,

$ifconfig -a
en1: flags=5e080863,c0<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD(INACTIVE),PSEG,LARGESEND,CHAIN>
        inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
en0: flags=5e080822,c0<BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD(ACTIVE),PSEG,LARGESEND,CHAIN>
en2: flags=4e080822,80<BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST,GROUPRT,64BIT,PSEG,CHAIN>
en3: flags=4e080822,80<BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST,GROUPRT,64BIT,PSEG,CHAIN>
lo0: flags=e08084b<UP,BROADCAST,LOOPBACK,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT>
        inet 127.0.0.1 netmask 0xff000000 broadcast 127.255.255.255
        inet6 ::1/0
         tcp_sendspace 131072 tcp_recvspace 131072 rfc1323 1

$lsdev -Cl en1
en1 Available 10-78 Standard Ethernet Network Interface

$lscfg -vl ent1
  ent1             P1-I5/E1  10/100 Mbps Ethernet PCI Adapter II (1410ff01)

      10/100 Mbps Ethernet PCI Adapter II:
        Part Number.................09P5023
        FRU Number..................09P5023
        EC Level....................H10971A
        Manufacture ID..............YL1021
        Network Address.............0002556AF7A9
        ROM Level.(alterable).......SCU001
        Product Specific.(Z0).......A5204205
        Hardware Location Code......P1-I5/E1

$lsattr -El ent1
alt_addr        0x000000000000  Alternate Ethernet Address                    True
busintr         14              Bus interrupt level                           False
busmem          0xc0284000      Bus memory address                            False
chksum_offload  yes             Enable hardware transmit and receive checksum True
intr_priority   3               Interrupt priority                            False
ipsec_offload   no              IPsec Offload                                 True
large_send      yes             Enable TCP Large Send Offload                 True
media_speed     100_Full_Duplex Media Speed                                   True
poll_link       no              Enable Link Polling                           True
poll_link_timer 500             Time interval for Link Polling                True
rom_mem         0xc0200000      ROM memory address                            False
rx_hog          1000            RX Descriptors per RX Interrupt               True
rxbuf_pool_sz   1024            Receive Buffer Pool Size                      True
rxdesc_que_sz   512             RX Descriptor Queue Size                      True
slih_hog        10              Interrupt Events per Interrupt                True
tx_preload      1520            TX Preload Value                              True
tx_que_sz       8192            Software TX Queue Size                        True
txdesc_que_sz   512             TX Descriptor Queue Size                      True
use_alt_addr    no              Enable Alternate Ethernet Address             True

看来你想通过 API 来做到这一点。这原始设计制造商那么是最好的选择。我不知道这是最新的,但这是IBM ODM API 文档链接

ODM 文件通常位于 中/etc/objrepos,尽管很多文件是到/usr/lib/objrepos.某些产品也可以在其他位置安装 ODM 文件,例如 HACMP(现在是 PowerHA System Mirror 等)。

答案2

ODM 是用户希望如何配置系统的方式。它在引导时由 mkdev、cfgmgr 等读取。但是 AIX 允许直接操作属性,就像 BSD 系统一样。例如,您可以ifconfig en0 10.10.10.10像在 BSD 上一样更改接口的 IP 地址。 ODM 确实不是在这种情况下改变。或者,您可以通过chdev -l en0 -a netaddr=10.10.10.10更新 ODM 和当前设置来执行此操作。或者,您可以向 chdev 添加 -P 标志并仅更新 ODM,以便它在重新启动时生效。

ODM 接口记录在标准 IBM pubs 中http://www-01.ibm.com/support/knowledgecenter/ssw_aix_61/com.ibm.aix.base/kc_welcome_61.htm。还记录了访问当前设置(如 ifconfig 或 netstat)的所有各种方法。 Stephens 书籍或其他 BSD 参考资料的副本可以帮助您访问当前设置。我相信 AIX 上有一些示例演示了如何使用 ODM。

答案3

只需ifconfig -a命令即可给你答案。

您也可以尝试smitty tcpip进一步分析和配置更改。

相关内容