41.11. 永久添加 qeth 设备
要让您的新 qeth
设备基于持久性,需要为您的新接口生成配置文件。网络接口配置文件位于 /etc/sysconfig/network-scripts/
目录下。
这个网络配置文件的命名规则为 ifcfg-device
,其中 device 是之前创建的 qeth
组设备的 if_name
文件中的值。 例如: enc9a0
。对于持久性设备配置,cio_ignore
命令会被透明处理,您不需要从忽略列表中手动释放设备。
如果同一类型的另一个设备的配置文件已经存在,添加配置文件的最简单方法是将其复制到新名称中,然后编辑它:
#
cd /etc/sysconfig/network-scripts#
cp ifcfg-enc9a0 ifcfg-enc600
要了解网络设备的 ID,使用 lsqeth 工具:
#
lsqeth -p
devices CHPID interface cardtype port chksum prio-q'ing rtr4 rtr6 lay'2 cnt
-------------------------- ----- ---------------- -------------- ---- ------ ---------- ---- ---- ----- -----
0.0.09a0/0.0.09a1/0.0.09a2 x00 enc9a0 Virt.NIC QDIO 0 sw always_q_2 n/a n/a 1 64
0.0.0600/0.0.0601/0.0.0602 x00 enc600 Virt.NIC QDIO 0 sw always_q_2 n/a n/a 1 64
如果还没有定义类似的设备,必须生成一个新文件。使用 /etc/sysconfig/network-scripts/ifcfg-0.0.09a0
示例作为模板:
# IBM QETH DEVICE=enc9a0 BOOTPROTO=static IPADDR=10.12.20.136 NETMASK=255.255.255.0 ONBOOT=yes NETTYPE=qeth SUBCHANNELS=0.0.09a0,0.0.09a1,0.0.09a2 PORTNAME=OSAPORT OPTIONS='layer2=1 portno=0' MACADDR=02:00:00:23:65:1a TYPE=Ethernet
编辑新的 ifcfg-0.0.0600
文件,如下:
-
修改
DEVICE
声明以反映您的ccw
组中if_name
文件的内容。 -
修改
IPADDR
声明以反映您的新接口的 IP 地址。 -
根据需要修改
NETMASK
声明。 -
如果要在引导时激活新接口,请确定将
ONBOOT
设为yes
。 -
请确定
SUBCHANNELS
的值和您的 qeth 设备的硬件地址一致。 -
修改
PORTNAME
声明,如果您的环境不需要该参数,则无需修改。 您可以将任何有效的
sysfs
属性及其值添加到OPTIONS
参数。Red Hat Enterprise Linux 安装程序目前使用它来配置层模式(layer2
),以及qeth
设备的相对端口号(portno
)。现在 OSA 设备的默认
qeth
设备驱动程序为 2 层模式。要继续使用之前需要依赖 3 层模式的旧的ifcfg
定义,在OPTIONS
参数中添加layer2=0
。
/etc/sysconfig/network-scripts/ifcfg-0.0.0600
# IBM QETH DEVICE=enc600 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 PORTNAME=OSAPORT OPTIONS='layer2=1 portno=0' MACADDR=02:00:00:b3:84:ef TYPE=Ethernet
只有重启系统后或通过更改系统的 I/O 配置(例如在 z/VM 下连接)来动态添加新的网络设备后,对 ifcfg
文件的更改才会生效。另外,您可以执行以下命令来为之前未激活的网络通道触发 ifcfg
文件的激活:
使用
cio_ignore
程序从忽略的设备列表中删除网络通道,并使其出现在 Linux 中:#
cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id使用代表网络设备的三个设备总线 ID 替换 read_device_bus_id、write_device_bus_id 和 data_device_bus_id例如,如果 read_device_bus_id 是
0.0.0600
,则 write_device_bus_id 为0.0.0601
,data_device_bus_id 是0.0.0602
#
cio_ignore -r 0.0.0600,0.0.0601,0.0.0602要触发激活更改的 uevent,请执行:
#
echo add > /sys/bus/ccw/devices/read-channel/uevent例如:
#
echo add > /sys/bus/ccw/devices/0.0.0600/uevent检查网络设备状态:
#
lsqeth现在启动新的接口:
#
ifup enc600检查接口的状态:
#
ip addr show enc600 3: enc600: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 3c:97:0e:51:38:17 brd ff:ff:ff:ff:ff:ff inet 10.85.1.245/24 brd 10.34.3.255 scope global dynamic enc600 valid_lft 81487sec preferred_lft 81487sec inet6 1574:12:5:1185:3e97:eff:fe51:3817/64 scope global noprefixroute dynamic valid_lft 2591994sec preferred_lft 604794sec inet6 fe45::a455:eff:d078:3847/64 scope link valid_lft forever preferred_lft forever检查新接口的路由:
#
ip route default via 10.85.1.245 dev enc600 proto static metric 1024 12.34.4.95/24 dev enp0s25 proto kernel scope link src 12.34.4.201 12.38.4.128 via 12.38.19.254 dev enp0s25 proto dhcp metric 1 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1使用
ping
程序 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
。
其他资源
-
nm-settings-keyfile
手册页