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系統中的用戶,寫法是:
登錄用戶名 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 F
ile 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的列表。