Netware是Novell公司的网络文件系统,这个东西以前用的很多,现在好像用的不多了,据说也可以支持TCP/IP协议了,不过以前的版本只支持IPX协议,IPX这个协议最近都快被人忘记了。
Linux下是可以支持基于IPX协议的Netware服务器的,需要用一个叫mars_nwe的东西来模拟。不过这个东西很古老了,从02年就没有再更新了。从http://www.compu-art.de/mars_nwe/可以下载到最新的版本0.99.pl20,不过编译不过去,我改了一下,编译过去了,不过主要问题是里面关于quota这块儿用的版本比较低,因为quota从2.0以后有了一些的变化(现在是3.13的了),数据结构也有了一些调整,所以我现在还不能确定我的修改是否一定没问题,不过至少连接是没问题了,这块儿还需要再测试。
下面我简单介绍一下怎么配置(基于Asianux Server 3):
1、核心,需要重新编译核心加入ipx和ncpfs的支持,注意ipx里面的“Full internal IPX network”(也就是CONFIG_IPX_INTERN)一定不要选,否则别的机器是连不通的,我就是一开始不知道,结果折腾了很长时间。
2、ipxutils,支持配置ipx的工具,Asianux已经带了,需要确认是否安装了。
3、ncpfs,支持ncpfs的工具,因netware的服务器用的是ncpfs,所以需要安装这个包。
4、mars_nwe,这个就是模拟netware服务的包,配置文件在/etc/nwserv目录下,对nwserv.conf稍做修改就可以,主要修改的地方:
(1)163行的CDROM路径,这个还是老的写法,在Asianux Server 3中不存在/mnt/cdrom目录,你可以把它改成别的目录,或者干脆就建一个/mnt/cdrom目录就OK了。
(2)184行,服务器的名字,这个就是你的netware的服务器的名字,自己起一个就可以了,注意,这个文件中都是以一个数字开头的,数字就表示了这行是什么意思,比如服务器名字是2,所以这行就是“2 servername”,数字2就相当于别的一些配置文件中的类似“ServerName”的关键字。
(3)314行IPX设备以及帧的定义,这个对应的数字是4,第二列表示网络,如果你的网络里面没有其他的netware的服务,那么可以随便写,如果有,只要不和它冲突就可以,第三列是设备,写eth0就可以,第四列是帧,可以写802.3或ethernet_ii,最后一列就是选择Internal router是否处理RIP/SAP,这个我也不是很清楚是否有用,一般就写1就可以,大于6的数字就表示处理。
(4)592行可以设置登录用户,默认就只有一个guest,可以加上linux系统中的用户,写法是:
13 登录用户名 Linux用户名 密码 标识
其中,登录用户名和Linux用户名可以不一样,密码是登录Netware的密码,标识目前只知道有0x1,表示用户不能修改密码。不过默认的这个guest用户对应的Linux用户是nobody,这个看起来是没有问题,nobody用户也没什么权限,但是因为它没有HOME目录,所以它的HOME就变成了根目录,这样在Netware的客户端上就会看到整个Linux系统的根目录,所以所有文件都可以看了,虽然只能看,当感觉也很不安全,最好把这个guest用户去掉。
其他的就没什么了,可以就用默认的。
好,下面说说我的测试过程,因为我这边没有无盘终端,所以我就是用的两台Linux机器做的测试,一台做服务器,另外一台做客户端:
服务器配置:
1、安装支持ipx和ncpfs的核心,安装ncpfs和mars_nwe两个包,确认已经安装了ipxutils;
2、加载ipx和ncpfs模块;
3、修改/etc/sysconfig/network-scripts/ifcfg-eth0文件,只保留DEVICE=eth0和OnBOOT=yes两行,这是为了使eth0只支持IPX协议而不支持TCP/IP协议;
4、重新启动/etc/rc.d/init.d/network服务,确认用ifconfig查看eth0不能看到IP了;
5、修改/etc/nwserv/nwserv.conf文件;
6、启动/etc/rc.d/init.d/nwserv服务;
7、用ifconfig命令确认IPX协议已经支持(可以看到IPX/Ethernet 802.3这样的行),如果看不到IPX的行,那么就先关掉nwserv服务,然后运行命令ipx_interface add eth0 802.3,再用ifconfig命令查看,看到IPX之后再启动nwserv服务;
8、运行命令slist应该可以看到服务,名称就是你在/etc/nwserv/nwserv.conf文件中设置的;
OK,到这里,服务器就配置好了,如果不放心,可以先在服务器上自己mount一下自己:
ncpmount -S servername -U username -P password
这里的servername,username和passwork要换成你自己的,可以不加-P参数,这时会要求你输入密码,还有就是用户名,默认设置了guest的用户,没有密码,可以用这个先试。用户的设置也在/etc/nwserv/nwserv.conf文件中。
就是要mount到的目录,注意,如果你设置了CDROM的路径是/mnt/cdrom,那么千万不要mount到/mnt目录上,因为netware会共享出/mnt/cdrom,如果你mount到/mnt目录下,ncpmount命令就会死掉,因为出现了循环。
客户端的设置:
前四步的设置和服务器一样;
5、使用命令ipx_interface add -p eth0 802.3为eth0增加IPX支持并自动设置IPX地址;注意,这里一定要加一个-p的参数,这表示使用Primary模式,在/proc/net/ipx/interface文件中可以相应的看到Primary那里是写的Yes。否则,在客户端是看不到服务器的。我因为这个问题折腾了好长时间,开始还怀疑是交换机不支持IPX协议,后来换了直连线也不行,后来无意中看到了这个参数,一试就OK了!
6、用命令ifconfig查看,应该可以看到eth0具有类似IPX/Ethernet 802.3这样的行;
7、运行命令slist查看可用服务器,应该可以看到类似下面的行:
Known NetWare File Servers Network Node Address
---------------------------
MARS 7F000001 000000000001
8、如果你看到上面的服务器就说明客户端已经可以和服务器连接了,我们就可以用命令(比如mount到/opt目录下):
ncpmount -S MARS /opt -U guest
来连接服务器MARS了,运行这条命令后会要求你输入密码,直接回车会随便输入都可以,然后再查看/opt目录就可以看到好多目录,这些目录都可以在/etc/nwserv/nwserv.conf文件中定义,其中HOME目录默认就是服务器的根目录。
在/proc/net/ipx/目录下有一些关于ipx的相关文件,其中interface文件包含系统中IPX界面的配置信息;route文件包含在IPX路由表中出现的路由列表;socket文件包含正在使用的IPX socket的列表。