22.6. 添加网络设备
在将 2.4 内核迁移到 2.6 内核时,添加网络设备的过程已改变:
proc
文件系统不再用于控制或获取网络设备的状态。- 新的
sys
文件系统现在为控制设备提供工具。 /sys/class/net/interface_name/device
现在提供活跃设备的状态。interface_name
是设备配置时由设备驱动程序为网络接口指定的名称,如eth0
或eth2
。/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
。