首先,确定 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,write_device_bus_id 是 0.0.0601,data_device_bus_id 是 0.0.0602。这个设备是一个 z/VM 虚拟网卡,它所被分配的 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
你可以添加一个端口名。首先,你需要检查是否需要一个端口名:
# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/portname no portname required
应答显示你不需要提供端口名。
添加一个端口名,首先要检查设备不在线,然后运行以下命令:
在添加端口名的时候,设备必须是不在线的。
# 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/online1
返回值是"1"表示设备在线,'0'表示设备不在线。
检查这个设备被分配的接口名。
# cat /sys/bus/ccwgroup/drivers/qeth/0.0.0600/if_name eth1
改变 if_name 的值,可以运行以下命令:
# echo new_if_name > /sys/bus/ccwgroup/drivers/qeth/0.0.0600/if_name
根据你的系统设置情况以及你所需要的功能,你可能会设置其他一些参数和特性。
add_hhlen
broadcast_mode
buffer_count
canonical_macaddr
card_type
checksumming
chpid
detach_state
fake_broadcast
fake_ll
ipa_takeover
portno
priority_queueing
recover
route4
rxip
state
ungroup
vipa
如果需要了解这些功能如何工作,请参阅 http://www-128.ibm.com/developerworks/linux/linux390/october2005_documentation.html#3 (Device Drivers, Features, and Commands - SC33-8289-02)。
现在,你需要为你的新接口建立一个配置文件。这个配置文件被存放在 /etc/sysconfig/network-scripts/。
这个网络配置文件的命名规则是: ifcfg-device,其中 "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 行。
根据你的 ccw 组的 if_name 文件,修改 DEVICE 的值。
根据你的新的接口的 IP 地址修改 IPADDR 的值。
如果需要,修改 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 网关来检查你的设置:
# 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