12.10. 永久添加 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 文件,如下:

  1. 修改 DEVICE 声明以反映您的 ccw 组中 if_name 文件的内容。
  2. 修改 IPADDR 声明以反映您的新接口的 IP 地址。
  3. 根据需要修改 NETMASK 声明。
  4. 如果要在引导时激活新接口,请确定将 ONBOOT 设为 yes
  5. 请确定 SUBCHANNELS 的值和您的 qeth 设备的硬件地址一致。
  6. 修改 PORTNAME 声明,如果您的环境不需要该参数,则无需修改。
  7. 您可在 OPTIONS 参数中添加任意有效 sysfs 属性及其值。Red Hat Enterprise Linux 安装程序目前使用它配置 qeth 设备的层模式(layer2)以及相关端口号(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

ifcfg 文件的修改只在重启系统或者更改系统 I/O 配置动态添加新网络设备通道(例如: 在 z/VM 中添加)时才会生效。另外,您可以触发 ifcfg 对之前不活跃的网络通道的激活,请执行以下命令:

  1. 使用 cio_ignore 程序从忽略的设备列表中删除网络通道,并使其出现在 Linux 中:

    # cio_ignore -r read_device_bus_id,write_device_bus_id,data_device_bus_id

    使用代表网络设备的三个设备总线 ID 替换 read_device_bus_idwrite_device_bus_iddata_device_bus_id例如,如果 read_device_bus_id0.0.0600,则 write_device_bus_id0.0.0601data_device_bus_id0.0.0602

    #  cio_ignore -r 0.0.0600,0.0.0601,0.0.0602
  2. 要触发激活更改的 uevent,请执行:

    # echo add > /sys/bus/ccw/devices/read-channel/uevent

    例如:

    # echo add > /sys/bus/ccw/devices/0.0.0600/uevent
  3. 检查网络设备状态:

    # lsqeth
  4. 现在启动新的接口:

    # ifup enc600
  5. 检查接口的状态:

    # 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
  6. 检查新接口的路由:

    # 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
  7. 使用 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
  8. 如果默认路由信息被改变了,需要更新相应的 /etc/sysconfig/network

为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。