红帽企业 Linux 4: 用于 IBM® S/390® 和 IBM® eServer™ zSeries® 体系的安装指南 | ||
---|---|---|
后退 | 附录 F. 为 S/390 和 zSeries 系统用户提供的附加信息 | 前进 |
红帽企业 Linux 添加网络设备的方法已经有了很大的变化。这是因为 2.4 内核被迁移到了 2.6 内核。
proc 文件系统已经不再用于控制或获取网络设备的状态。
新的 sys 文件系统提供了新的工具来控制设备。
/sys/class/net/<interface_name>/device 提供当前激活的设备的状态。
<interface_name> 是一个名字 (比如 eth0 或 ctc2)。当设备被配置时,设备驱动程序把这个名字提供给网络接口。
/etc/chandev.conf 不再存在。
现在的 sys 文件系统包括了以前存在 /etc/chandev.conf 中的信息。
/etc/modules.conf 不再存在。
网络接口别名表现在被存在 /etc/modprobe.conf 中。
第 F.6.1 节详细描述了如何把 qeth 设备加入到已经存在的红帽企业 Linux 系统中。安装其他 zSeries 网络接口可以参看 第 F.6.2 节
首先,确定 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/online 1 |
返回值是"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://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries and S/390 Device Drivers,Features,and Commands).
现在,你需要为你的新接口建立一个配置文件。这个配置文件被存放在 /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
为 zSeries 添加一个网络接口要进行一些基本的操作。
加载设备驱动程序。
建立组设备或是为 IUCV 建立 IUCV 设备。
设置这个设备。
设置这个设备在线 (对 IUCV 不适用 )。
定义别名(如果需要)。
建立一个配置脚本。
激活这个设备。
以下的章节提供了关于添加每个 zSeries 网络设备驱动的基本信息。
LAN 通道台(LCS)设备驱动程序支持 OSA-2 Ethernet/Token Ring,OSA-Express Fast Ethernet 的 non-QDIO 模式和 OSA-Express High Speed Token Ring 的 non-QDIO 模式。对于 z990,LCS 驱动也支持 Gigabit Ethernet 的 non-QDIO 模式(包括 1000Base-T)。
根据被加入的接口类型,LCS 驱动分配以下两个接口名中的一个: eth<n> 分配给 OSA-Express Fast Ethernet Gigabit Ethernet,tr<n> 分配给 Token Ring。其中 <n> 是一个唯一的整数值来区分不同的设备。<n> 为 0 代表此种类型中的第一个设备,1 为第 2 个设备,2 为第 3 个设备,以此类推。
加载设备驱动程序
# modprobe lcs |
创建组设备。
# echo <read_device_bus_id>,<write_device_bus_id> > /sys/bus/ccwgroup/drivers/lcs/group |
由于这个命令比较长,它被分成了两行.
设置这个设备。
OSA卡可以为一个单独的 CHPID 提供多达16个端口。在缺省的情况下,LCS 组设备使用端口 0。可以使用如下相似的命令为它分配其他的端口:
# echo <portno> > /sys/bus/ccwgroup/drivers/lcs/<device_bus_id>/portno |
想了解更多的关于配置 LCS 设备驱动程序的信息,可以参阅以下内容:
http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries and S/390 Device Drivers, Features, and Commands)
设置设备在线:
# echo 1 /sys/bus/ccwgroup/drivers/lcs/<read_device_bus_id>/online |
定义别名。
根据添加接口的类型而定,在 /etc/modprobe.conf 文件中添加和以下其中一行类似的内容:
eth<n> alias lcs tr<n> alias lcs |
建立一个配置脚本。
在 /etc/sysconfig/network-scripts/ 中创建一个文件,使用类似以下的名字:
ifcfg-eth<n> ifcfg-tr<n> |
该文件应该类似如下:
/etc/sysconfig/network-scripts/ifcfg-eth0 # IBM LCS DEVICE=eth0 BOOTPROTO=static HWADDR=00:06:29:FB:5F:F1 IPADDR=9.12.20.136 NETMASK=255.255.255.0 ONBOOT=yes NETTYPE=lcs SUBCHANNELS=0.0.09a0,0.0.09a1 PORTNAME=0 TYPE=Ethernet |
根据添加接口的类型而定,DEVICE 参数应该是以下之一:
DEVICE=eth<n> DEVICE=tr<n> |
激活这个设备。
根据添加接口的类型而定,使用一种 ifup 命令:
# ifup eth<n> # ifup tr<n> |
QETH 网络设备驱动支持: zSeries HiperSockets,OSA-Express Fast Ethernet,Gigabit Ethernet (including 1000Base-T),High Speed Token Ring,ATM features (running Ethernet LAN emulation)的 QDIO 模式。
根据加入接口的类型,QETH 驱动分配以下三个接口名中的一个:
hsi<n> :HiperSocket 设备
eth<n> :OSA-Express Fast Ethernet and Gigabit Ethernet
tr<n> :Token Ring
其中 <n> 是一个唯一的整数值来区分不同的设备。<n> 为 0 代表此种类型中的第一个设备,1 为第 2 个设备,2为第 3 个设备,以此类推。
加载设备驱动程序
# modprobe qeth |
创建组设备。
# echo <read_device_bus_id>,<write_device_bus_id>,<data_device_bus_id> > /sys/bus/ccwgroup/drivers/qeth/group |
由于这个命令比较长,它被分成了两行.
设置这个设备。
关于更多配置 QETH 驱动的信息,可以参阅如下内容:
http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries and S/390 Device Drivers, Features, and Commands)
设置设备在线:
# echo 1 /sys/bus/ccwgroup/drivers/qeth/<read_device_bus_id>/nline |
定义别名。
根据添加接口的类型而定,在 /etc/modprobe.conf 文件中添加和以下其中一行类似的内容:
hsi<n> alias qeth eth<n> alias qeth tr<n> alias qeth |
建立一个配置脚本。
在 /etc/sysconfig/network-scripts/ 中创建一个文件,使用类似以下的名字:
ifcfg-hsi<n> ifcfg-eth<n> ifcfg-tr<n> |
文件应该象:
/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 |
根据添加接口的类型而定,DEVICE 参数应该类似以下之一:
DEVICE=hsi<n> DEVICE=eth<n> DEVICE=tr<n> |
激活这个设备。
根据添加接口的类型而定,使用一种 ifup 命令:
# ifup hsi<n> # ifup eth<n> # ifup tr<n> |
通道对通道 (CTC) 的连接是一种典型的主机间的高速连接。CTC 设备驱动可以用来建立点对点的 TCP/IP 或两个 Linux for zSerier 和 Linux for S/390 之间的 tty 连接,或者是一个 Linux for zSerier 和 S/390 和其他主机操作系统 (如 z/OS,OS/390,z/VM,或 z/VSE) 之间的 tty 连接。
CTC 驱动分配一个如下的基础接口名:
ctc<n> |
其中 <n> 是一个唯一的整数值来区分不同的设备。<n> 为 0 代表此种类型中的第一个设备,1 为第 2 个设备,2为第 3 个设备,以此类推。
加载设备驱动程序
# modprobe ctc |
创建组设备。
# echo <read_device_bus_id>,<write_device_bus_id> > /sys/bus/ccwgroup/drivers/ctc/group |
由于这个命令比较长,它被分成了两行.
设置这个设备。
设置协议:
# echo <protocol> /sys/bus/ccwgroup/drivers/ctc/<device_bus_id>/protocol |
其中 <protocol> 是0,1,2,或 3。
0 — 这个协议提供了与其他非 OS/390,z/OS 设备(如 VM TCP service 主机) 的兼容性。这是缺省设置。
1 —这个协议提供了增强的用于检查其他 Linux 主机的程序包
2 —这个协议提供了与其他 Linux 主机的一个基于 CTC 的联接
3 — 这个协议提供了与其他 OS/390 或 z/OS 设备的兼容性。
关于更多 CTC 驱动的配置信息,请参阅:
http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries and S/390 Device Drivers, Features, and Commands)
设置设备在线:
# cho 1 /sys/bus/ccwgroup/drivers/lcs/<read_device_bus_id>/online |
定义别名。
根据添加接口的类型而定,在 /etc/modprobe.conf 文件中添加和以下类似的内容:
ctc<n> alias ctc |
建立一个配置脚本。
在 /etc/sysconfig/network-scripts/ 中创建一个文件,使用类似以下的文件名:
ifcfg-ctc<n> |
该文件应该类似如下:
/etc/sysconfig/network-scripts/ifcfg-ctc0 # IBM CTC DEVICE=ctc0 BOOTPROTO=static IPADDR=192.168.70.136 GATEWAY=172.16.70.136 NETMASK=255.255.255.255 ONBOOT=yes SUBCHANNELS=0.0.1b00,0.0.1b01 NETTYPE=ctc CTCPROT=0 TYPE=CTC |
激活这个设备。
根据添加接口的类型而定,使用一种 ifup 命令:
# ifup ctc<n> |
Inter-User Communication Vehicle (IUCV) 是一个 VM 间通信的工具,它允许作为一个 VM 访问者的程序和另外一个 VM 访问者或者它自己使用一个控制程序来交换信息。Linux for zSeries and S/390 IUCV 设备驱动是一个网络设备驱动,它使用 IUCV 连接运行在其他 VM 用户 ID 的 Linux 访问者或是连接一个 Linux 访问者和另一个 VM 的访问者,比如一个运行 TCP/IP 服务的机器。
IUCV 驱动程序分配类似以下的基准接口名称:
iucv<n> |
其中 <n> 是一个唯一的整数值来区分不同的设备。<n> 为 0 代表此种类型中的第一个设备,1 为第 2 个设备,2为第 3 个设备,以此类推。
加载设备驱动程序
# modprobe netiucv |
创建 IUCV 设备。
# echo <peer_id> > /sys/bus/iucv/drivers/netiucv/connection |
<peer_id> 的值是你想联接的 VM 访问者的访问者 ID。IUCV 设备驱动把这个 ID 看做为大写字母,通常是 TCPIP。
这会创建类似以下的 sysfs 结构:
cat /sys/bus/iucv/drivers/netiucv/netiucv<n> |
其中 <n> 是一个唯一的整数值来区分不同的设备。<n> 为 0 代表此种类型中的第一个设备,1 为第 2 个设备,2为第 3 个设备,以此类推。
设置这个设备。
若需要,设置最大缓存大小。
# echo <value> > /sys/bus/iucv/drivers/netiucv/netiucv<n>/buffer |
这里的 <value> 是你要设置的字节数量。如果你指定的值超出了有效范围,该命令会被忽略。
有效的最大缓存大小的允许设定范围是由 MTU 的设定决定的。它一定要在 <最小 MTU + 头的大小> 和 <最大 MTU + 头的大小> 的范围之间。它的头空间通常是 4 个字节。最大缓存大小的缺省设置是 32768 字节(32 KB)。
关于更多配置 IUCV 驱动的信息,可以参阅如下内容:
http://oss.software.ibm.com/developerworks/opensource/linux390/docu/lx26apr04dd01.pdf (Linux for zSeries and S/390 Device Drivers, Features, and Commands)
定义别名。
根据添加接口的类型而定,在 /etc/modprobe.conf 文件中添加和以下类似的内容:
iucv<n> alias netiucv |
建立一个配置脚本。
在 /etc/sysconfig/network-scripts/ 中创建一个文件,使用类似以下的文件名:
ifcfg-iucv<n> |
文件应该象:
/etc/sysconfig/network-scripts/ifcfg-iucv0 # IBM IUCV DEVICE=iucv0 BOOTPROTO=static IPADDR=192.168.70.136 GATEWAY=172.16.70.136 NETMASK=255.255.255.255 ONBOOT=yes NETTYPE=iucv PEERID=TCPIP TYPE=IUCV |
激活这个设备。
根据添加接口的类型而定,使用类似以下的 ifup 命令:
# ifup iucv<n> |