20.3. 添加网络设备
网络设备驱动程序模块由 udev 自动加载。
您可以在 IBM Z 上动态添加或永久添加网络接口。
- 动态
- 加载设备驱动程序
- 从忽略的设备列表中删除网络设备。
- 创建组设备。
- 配置 设备。
- 设置设备在线。
- 永久
- 创建配置脚本。
- 激活 接口。
以下小节提供了每个 IBM Z 网络设备驱动程序的每个任务的基本信息。第 20.3.1 节 “添加 qeth 设备” 介绍如何将 qeth 设备添加到 Red Hat Enterprise Linuxnbsp 的现有实例中 ;Hat Enterprise Red Hat Enterprise Linuxnbsp;Linux.第 20.3.2 节 “添加 LCS 设备” 介绍如何在 Red Hat Enterprise Linuxnbsp 的现有实例中添加 lcs 设备 ;Hat Enterprise Red Hat Enterprise Linuxnbsp;Linux.
20.3.1. 添加 qeth 设备
qeth 网络设备
驱动程序在 QDIO 模式、HiperSockets、z/VM guest LAN 和 z/VM VSWITCH 中支持 IBM Z OSA-Express 功能。
qeth
设备驱动程序为以太网和 Hipersockets 设备分配相同的接口名称: enccw
bus_ID。总线 ID 由频道子系统 ID、子通道集 ID 和设备编号组成,如 enccw0.0.0a00
。
20.3.1.1. 动态添加 qeth 设备
要动态添加
qeth
设备,请按照以下步骤执行:
- 确定是否载入
qeth
设备驱动程序模块。以下示例显示了载入的qeth
模块:#
lsmod | grep qeth qeth_l3 127056 9 qeth_l2 73008 3 ipv6 492872 155ip6t_REJECT,nf_conntrack_ipv6,qeth_l3 qeth 115808 2 qeth_l3,qeth_l2 qdio 68240 1 qeth ccwgroup 12112 2 qeth如果 lsmod 命令的输出显示qeth
模块没有被加载,请运行 modprobe 命令加载它们:#
modprobe qeth - 使用 cio_ignore 程序从忽略的设备列表中删除网络频道,并使其在 Linux 中可见:
#
cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id将 read_device_bus_id、write_device_bus_id、data_device_bus_id 替换为代表网络设备的三个设备总线 ID。例如,如果 read_device_bus_id 是0.0.f500
,write _device_bus_id 为0.0.f501
,data _device_bus_id 为0.0.f502
:#
cio_ignore -r 0.0.f500,0.0.f501,0.0.f502 - 使用 znetconf 工具来识别并列出网络设备的候选配置:
#
znetconf -u Scanning for network devices... Device IDs Type Card Type CHPID Drv. ------------------------------------------------------------ 0.0.f500,0.0.f501,0.0.f502 1731/01 OSA (QDIO) 00 qeth 0.0.f503,0.0.f504,0.0.f505 1731/01 OSA (QDIO) 01 qeth 0.0.0400,0.0.0401,0.0.0402 1731/05 HiperSockets 02 qeth - 选择您要使用的配置,并使用 znetconf 应用配置,并将配置的组设备在线作为网络设备。
#
znetconf -a f500 Scanning for network devices... Successfully configured device 0.0.f500 (enccw0.0.f500) - 另外,您还可以在将组群设备设置为在线前传递参数:
#
znetconf -a f500 -o portname=myname Scanning for network devices... Successfully configured device 0.0.f500 (enccw0.0.f500)现在,您可以继续配置enccw0.0.f500
网络接口。
另外,您可以使用
sysfs
属性设定设备在线,如下所示:
- 创建
qeth
组设备:#
echo read_device_bus_id,write_device_bus_id,data_device_bus_id > /sys/bus/ccwgroup/drivers/qeth/group例如:#
echo 0.0.f500,0.0.f501,0.0.f502 > /sys/bus/ccwgroup/drivers/qeth/group - 接下来,通过查找读取频道来验证
qeth
组设备是否已正确创建:#
ls /sys/bus/ccwgroup/drivers/qeth/0.0.f500根据您的系统设置情况以及您所需要的功能设置其他参数和特性,例如:portno
layer2
portname
- 通过向在线
sysfs
属性写入1
使设备在线:#
echo 1 > /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online - 然后确认该设备状态:
#
cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/online 1返回值为1
表示设备在线,返回值0
表示设备离线。 - 查找分配给该设备的接口名称:
#
cat /sys/bus/ccwgroup/drivers/qeth/0.0.f500/if_name enccw0.0.f500现在,您可以继续配置enccw0.0.f500
网络接口。s390utils 软件包中的以下命令显示qeth
设备最重要的设置:#
lsqeth enccw0.0.f500 Device name : enccw0.0.f500 ------------------------------------------------- card_type : OSD_1000 cdev0 : 0.0.f500 cdev1 : 0.0.f501 cdev2 : 0.0.f502 chpid : 76 online : 1 portname : OSAPORT portno : 0 state : UP (LAN ONLINE) priority_queueing : always queue 0 buffer_count : 16 layer2 : 1 isolation : none
20.3.1.2. 动态删除 qeth 设备
要删除
qeth
设备,请使用 znetconf 实用程序。例如:
- 使用 znetconf 工具显示您配置的所有网络设备:
#
znetconf -c Device IDs Type Card Type CHPID Drv. Name State -------------------------------------------------------------------------------------- 0.0.8036,0.0.8037,0.0.8038 1731/05 HiperSockets FB qeth hsi1 online 0.0.f5f0,0.0.f5f1,0.0.f5f2 1731/01 OSD_1000 76 qeth enccw0.0.09a0 online 0.0.f500,0.0.f501,0.0.f502 1731/01 GuestLAN QDIO 00 qeth enccw0.0.f500 online - 选择要删除的网络设备,并运行 znetconf 将设备离线,取消分组 the
ccw
> 组设备。#
znetconf -r f500 Remove network device 0.0.f500 (0.0.f500,0.0.f501,0.0.f502)? Warning: this may affect network connectivity! Do you want to continue (y/n)?y Successfully removed device 0.0.f500 (enccw0.0.f500) - 验证删除是否成功:
#
znetconf -c Device IDs Type Card Type CHPID Drv. Name State -------------------------------------------------------------------------------------- 0.0.8036,0.0.8037,0.0.8038 1731/05 HiperSockets FB qeth hsi1 online 0.0.f5f0,0.0.f5f1,0.0.f5f2 1731/01 OSD_1000 76 qeth enccw0.0.09a0 online
20.3.1.3. 永久添加 qeth 设备
要使新
qeth
设备持久,您需要为新接口创建配置文件。网络接口配置文件位于 /etc/sysconfig/network-scripts/
目录中。
网络配置文件使用命名规则
ifcfg-设备
,其中 device 是之前创建的 qeth
组设备的 if_name
文件中的值,如 enccw0.0.09a0。
对于持久性设备配置,会以透明的方式处理 The cio_ignore 命令,您不需要从忽略列表中手动释放设备。
如果同一类型的另一个设备的配置文件已经存在,最简单的方法是将其复制到新名称中,然后编辑它:
#
cd /etc/sysconfig/network-scripts#
cp ifcfg-enccw0.0.09a0 ifcfg-enccw0.0.0600
要了解网络设备的 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 enccw0.0.09a0 Virt.NIC QDIO 0 sw always_q_2 n/a n/a 1 64
0.0.0600/0.0.0601/0.0.0602 x00 enccw0.0.0600 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=enccw0.0.09a0 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
声明,以反映 yourccw
组中的if_name
文件的内容。 - 修改
IPADDR
声明,以反映您的新接口的 IP 地址。 - 根据需要修改
NETMASK
声明。 - 如果要在引导时激活新接口,请确保
ONBOOT
设置为yes
。 - 确保
SUBCHANNELS
声明与您 qeth 设备的硬件地址匹配。请注意,必须用小写字母指定 ID。 - 如果您的环境中不需要,请修改
PORTNAME
声明或将其退出。 - 您可以在
OPTIONS
参数中添加任何有效的sysfs
属性及其值。Red Hat Enterprise Linuxnbsp;Hat Enterprise Red Hat Enterprise Linuxnbsp;Linux 安装程序目前使用它来配置层模式(layer2
)以及qeth
设备的相对端口号(portno
)。现在 OSA 设备的默认qeth
设备驱动程序为 2 层模式。要继续使用之前默认使用 3 层模式的旧的ifcfg
定义,请在OPTIONS
参数中添加layer2=0
。
/etc/sysconfig/network-scripts/ifcfg-0.0.0600
# IBM QETH DEVICE=enccw0.0.0600 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 中附加)来更改系统的 I/O 配置,对
ifcfg
文件的更改才会生效。另外,您可以执行以下命令为之前未激活的网络频道触发 ifcfg
文件激活:
- 使用 cio_ignore 程序从忽略的设备列表中删除网络频道,并使其在 Linux 中可见:
#
cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id将 read_device_bus_id、write_device_bus_id、data_device_bus_id 替换为代表网络设备的三个设备总线 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 enccw0.0.0600 - 检查接口的状态:
#
ip addr show enccw0.0.0600 3: enccw0.0.0600: <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 enccw0.0.0600 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 enccw0.0.0600 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
。