Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

22.6. 添加网络设备

在将 2.4 内核迁移到 2.6 内核时,添加网络设备的过程已改变:
  • proc 文件系统不再用于控制或获取网络设备的状态。
  • 新的 sys 文件系统现在为控制设备提供工具。
  • /sys/class/net/interface_name/device 现在提供活跃设备的状态。
    interface_name 是设备配置时由设备驱动程序为网络接口指定的名称,如 eth0eth2
  • /etc/chandev.conf 不再存在。
    sys 文件系统现在包含放入 /etc/chandev.conf 中的信息。
  • /etc/modules.conf 不再存在。
    现在,网络接口别名规格放在 /etc/modprobe.conf 中。
第 22.6.1 节 “添加 qeth 设备” 详细描述了如何将 qeth 设备添加到 Red Hat Enterprise Linux 的现有实例中。第 22.6.2 节 “添加网络设备的快速参考” 是安装其他 IBM System z 网络接口的快速参考。

22.6.1. 添加 qeth 设备

首先,决定 qeth 设备驱动程序模块是否被加载。
# lsmod | grep qeth
qeth                  135240  0
qdio                   45360  2 qeth
ipv6                  303984  13 qeth
ccwgroup               15104  1 qeth
如果 lsmod 命令的输出显示模块没有被加载,您必须运行 modprobe 命令来加载它们:
# modprobe qeth
接下来,创建一个 qeth 组设备。
# echo read_device_bus_id,write_device_bus_id,
data_device_bus_id > /sys/bus/ccwgroup/drivers/qeth/group
由于此命令的长度,它已被分为两行。
在以下示例中,read_device_bus_id 是 0.0.0600,写入_device_bus_id 是 0.0.0601,data_device_bus_id 为 0.0.0602。设备是 z/VM 虚拟 NIC,分配给此接口的 IP 地址是 192.168.70.69。
# echo 0.0.0600,0.0.0601,0.0.0602 > /sys/bus/ccwgroup/drivers/qeth/group
下一步,验证 qeth 组设备是否已正确创建:
# ls /sys/bus/ccwgroup/drivers/qeth
0.0.0600  0.0.09a0  group  notifier_register
您可以选择添加 portname。首先,您必须检查是否需要端口名称:
# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/portname
no portname required
响应表明您不需要提供 portname。
要添加端口名称,请检查设备是否离线,然后运行以下命令:
备注
添加 portname 时,设备必须离线。
# echo portname > /sys/bus/ccwgroup/drivers/qeth/0.0.0600/portname
接下来,让设备恢复在线:
# echo 1 > /sys/bus/ccwgroup/drivers/qeth/0.0.0600/online
然后确认该设备状态:
# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/online
1
返回值为 "1" 表示设备在线,返回值 '0' 表示设备离线。
检查分配给该设备的接口名称:
# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/if_name
eth1
根据您的系统设置方式以及您所需的功能,您可以选择设置附加参数和功能。
  • add_hhlen
  • broadcast_mode
  • buffer_count
  • canonical_macaddr
  • checksumming
  • detach_state
  • fake_broadcast
  • fake_ll
  • ipa_takeover
  • portno
  • priority_queueing
  • 恢复
  • route4
  • rxip
  • ungroup
  • vipa
有关这些功能如何工作的信息,请参阅 http://www-05.ibm.com/e-business/linkweb/publications/servlet/pbi.wss?CTY=US&FNC=SRX&PBL=SC33-8289-02设备驱动程序、功能和命令 - SC33-8289-02)。
现在,您需要为新接口创建配置文件。网络接口配置文件放置在 /etc/sysconfig/network-scripts/ 中。
网络配置文件使用命名规则 ifcfg-设备,其中 device 是之前创建的 qeth 组设备的 if_name 文件中的值。在本例中,它是 eth1
如果已定义了相同类型的另一个设备的现有配置文件,最简单的解决方案是将其复制到新名称。
# cd /etc/sysconfig/network-scripts
# cp ifcfg-eth0 ifcfg-eth1
如果您没有定义类似的设备,则必须创建一个。使用 ifcfg-eth0 示例作为模板。
/etc/sysconfig/network-scripts/ifcfg-eth0
# IBM QETH
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:06:29:FB:5F:F1
IPADDR=9.12.20.136
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.09a0,0.0.09a1,0.0.09a2
TYPE=Ethernet
编辑新的 ifcfg-eth1 文件。
现在,删除 HWADDR 行。
修改 DEVICE 声明以反映您的 ccwgroup 中的 if_name 文件的内容。
修改 IPADDR 声明以反映您的新接口的 IP 地址。
根据需要修改 NETMASK 声明。
如果您希望在引导时激活新接口,请确保将 ONBOOT 设置为 yes
请确定 SUBCHANNELS 声明与您的 qeth 设备的硬件地址匹配。
/etc/sysconfig/network-scripts/ifcfg-eth1
# IBM QETH
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.70.87
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.0600,0.0.0601,0.0.0602
TYPE=Ethernet
qeth 设备需要在 /etc/modprobe.conf 中定义一个别名定义。编辑此文件并为接口添加一个别名。
/etc/modprobe.conf
alias eth0 qeth
alias eth1 qeth
options dasd_mod dasd=0.0.0100,0.0.4b19
现在您可以启动新的接口:
# ifup eth1
检查接口的状态:
# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 02:00:00:00:00:01
          inet addr:192.168.70.87  Bcast:192.168.70.255  Mask:255.255.255.0
          inet6 addr: fe80::ff:fe00:1/64 Scope:Link
          UP BROADCAST RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:23 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:644 (644.0 b)  TX bytes:264 (264.0 b)
请注意,ifconfig 命令输出第一行中的 HWaddr 字段。必须添加到 ifcfg-eth1 文件后的值。在该文件中添加类似如下的行:
HWADDR=02:00:00:00:00:01
现在 ifcfg-eth1 类似如下:
# IBM QETH
DEVICE=eth1
HWADDR=02:00:00:00:00:01
BOOTPROTO=static
IPADDR=192.168.70.69
NETMASK=255.255.255.0
ONBOOT=yes
NETTYPE=qeth
SUBCHANNELS=0.0.0600,0.0.0601,0.0.0602
TYPE=Ethernet
检查新接口的路由:
# route
Kernel IP routing table
Destination     Gateway         Genmask        Flags Metric Ref  Use Iface
192.168.70.0    *               255.255.255.0  U     0      0      0 eth1
9.12.20.0       *               255.255.255.0  U     0      0      0 eth0
169.254.0.0     *               255.255.0.0    U     0      0      0 eth1
default         pdlrouter-if5.p 0.0.0.0        UG    0      0      0 eth0
使用 ping 命令验证您的更改:
# ping -c 1 192.168.70.8
PING 192.168.70.8 (192.168.70.8) 56(84) bytes of data.
64 bytes from 192.168.70.8: icmp_seq=0 ttl=63 time=8.07 ms
如果默认路由信息被改变了,需要更新相应的 /etc/sysconfig/network