25.3. 添加网络设备
网络设备驱动程序模块自动由 udev 载入。
可动态或者永久在 IBM System z 中添加网络接口。
- 动态
- 载入设备驱动程序
- 从忽略的设备列表中删除网络设备。
- 创建组设备。
- 配置该设备。
- 在线设置设备。
- 永久
- 创建配置脚本。
- 激活该接口。
下面的部分为每个 IBM System z 网络设备驱动程序的每个任务提供基本信息。第 25.3.1 节 “添加 qeth 设备” 描述如何在现有 Red Hat Enterprise Linux 实例中添加 qeth 设备。第 25.3.2 节 “添加 LCS 设备” 描述如何在 Red Hat Enterprise Linux 现有实例中添加 lcs 设备。第 25.3.3 节 “映射子通道和网络设备名称” 描述如何永久保留网络设备名称。第 25.3.4 节 “为网络 Root 文件系统配置 System z 网络设备” 描述如何将网络设备配置为使用只能通过网络访问的 root 文件系统。
25.3.1. 添加 qeth 设备
qeth 网络设备驱动程序支持 System z QDIO 模式、HiperSocket、z/VM 客体 LAN 以及 z/VM VSWITCH 的 OSA 快速特性。
根据所添加接口的类型,qeth 设备驱动程序分配以下三个基本接口名之一:
- hsin 用于 HiperSocket 设备
- hsin 用于以太网特性
n 的值是一个唯一的整数值来区分不同的设备。n 为 0 代表此种类型中的第一个设备,1 为第 2 个设备,依次类推。
25.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
命令的输出显示这个模块还没有被载入,则请运行modprobe
命令去载入它们:# modprobe qeth
- 使用
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.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 (eth1)
- 另外,还可以在将组群设备设置为在线前传送参数:
# znetconf -a f500 -o portname=myname Scanning for network devices... Successfully configured device 0.0.f500 (eth1)
现在可以继续配置网络eth1
接口。
另外,可以使用 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
有关额外参数的详情请参考《System z 中的 Linux: Red Hat Enterprise Linux 6 中的设备驱动程序、特性和命令》中有关 qeth 设备驱动程序的章节。 - 在在线 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
eth1
现在可以继续配置网络eth1
接口。以下 s390utils 软件包中的命令显示 qeth 设备的重要设置:# lsqeth eth1 Device name : eth1 --------------------------------------------- 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
25.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 eth0 online 0.0.f500,0.0.f501,0.0.f502 1731/01 GuestLAN QDIO 00 qeth eth1 online
- 选择要删除的网络设备并启动
znetconf
将该设备设定为离线并取消 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 (eth1)
- 确定删除成功:
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 eth0 online
25.3.1.3. 永久添加 qeth 设备
要让新 qeth 设备永久保留,需要为其生成一个配置文件。该网络接口配置网络位于
/etc/sysconfig/network-scripts/
。
这个网络配置文件使用
ifcfg-device
命名规则,其中 device 可在之前生成的 qeth 组设备的 if_name
文件中找到。在这个示例中,它是 eth1
。以透明方式为永久设备配置处理 cio_ignore
,因此不需要从忽略列表中手动释放设备。
如果已经存在同一类型的另一个设备的配置文件,最简单的解决方案就是将其复制到新名称中。
# cd /etc/sysconfig/network-scripts # cp ifcfg-eth0 ifcfg-eth1
如果没有定义类似的设备,则必须自己生成一个。请使用
ifcfg-eth0
示例作为模板。
/etc/sysconfig/network-scripts/ifcfg-eth0
# IBM QETH DEVICE=eth0 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-eth1 文件,如下:
- 修改
DEVICE
状态反映 ccw 组群中if_name
的内容。 - 修改
IPADDR
状态反映新接口的 IP 地址。 - 根据需要修改
NETMASK
状态。 - 如果要在引导时激活新接口,则请确定将
ONBOOT
设定为yes
。 - 请确定
SUBCHANNELS
说明与 qeth 设备的硬件地址一致。 - 修改
PORTNAME
状态,如果环境不需要该参数,则无需修改。 - 可在
OPTIONS
参数中添加任意有效 sysfs 属性及其值。 Red Hat Enterprise Linux 安装程序目前使用它配置 qeth 设备的层模式(layer2
)以及相关端口号(portno
)。现在 OSA 设备的默认 qeth 设备驱动程序为层 2 模式。要继续使用之前默认依赖为层 3 模式旧的 ifcfg 定义,请在OPTION
参数中添加layer2=0
。
/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 PORTNAME=OSAPORT OPTIONS='layer2=1 portno=0' MACADDR=02:00:00:b3:84:ef TYPE=Ethernet
对
ifcfg
文件的修改只在重启系统或者更改系统 I/O 配置动态添加新网络设备通道(例如:在 z/VM 中添加)时方可生效。另外,您可以触发 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 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)
- 检查新接口的路由:
# 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 10.1.20.0 * 255.255.255.0 U 0 0 0 eth0 default 10.1.20.1 0.0.0.0 UG 0 0 0 eth0
- 使用 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
。