IPX Protocol: IPX stands for Internetwork Packet Exchange. It is a networking protocol used by the Novell NetWare operating systems. Like UDP, IPX is a datagram protocol used for connectionless communications.
The IPX protocol stack is supported by Novell’s NetWare network operating system. Because of Netware’s popularity through the late 1980s into the mid 1990s, IPX became a popular internetworking protocol. Novell derived IPX from Xerox Network Services’ IDP protocol.
IPX Addressing: Logical networks are assigned a unique 32-bit hexadecimal address in the range of 0×1 – 0xFFFFFFFE.
Hosts have a 48-bit node address which by default is set to the network interface card’s MAC address. The node address is appended to the network address to create a unique identifier for the host on the network.
Similarities wih IP: The IPX network address is conceptually identical to the network part of the IP address (the parts with netmask bits set to 1); the node address then has the same meaning as the bits of IP address with netmask bits set to 0. As the node address is usually identical to the MAC address of the network adapter, the Address Resolution Protocol is not needed.
For routing, the entries in the IPX routing table are similar to IP routing tables; routing is done by network address, and for each network address a network:node of the next router is specified in a similar fashion an IP address/netmask is specified in IP routing tables.
IPX over Ethernet
IPX can be transmitted over Ethernet using one of the following 4 encapsulation types:
For Linux to work as Novel Client we need a Kernel with IPX support. I have used kernel-2.6.20 but many previous versions have IPX support.
For IPX protocol we need ipx utilities to be installed on our Linux system. These utilities can be installed using rpm named “ipxutils”. I have used “ipxutils-2.2.6-7”.
Ncpfs is a filesystem which understands the Novell NetWare(TM) NCP protocol. Functionally, NCP is used for NetWare the way NFS is used in the TCP/IP world
For ncpfs functionality on Linux we need rpm named “ncpfs”. I have used “ncpfs-2.2.6-7”.
Configure the IPX network software
There are two ways of configuring the IPX network software. You can manually configure all of your IPX network information or you can choose to let the software determine for itself some reasonable settings using the command:
# ipx_configure –auto_interface=on –auto_primary=on
After your IPX network is configured you should be able to use the slist command to see a list of all of the Novell fileserver on your network:
If the slist command displays a message like: ncp_connect: Invalid argument then your kernel probably does not support IPX. In this case patch-up your kernel for IPX support or Install new kernal with IPX support. When you boot with kernel having IPX support you should see messages about ‘IPX‘ and ‘ncpfs‘ in the system startup messages.
If the slist command does not list all of your fileservers then you may need to use the manual network configuration method.
Have a look at output of “ifconfig” command
eth1 Link encap:Ethernet HWaddr 00:C0:26:32:A2:11
inet addr:10.0.0.123 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::2c0:26ff:fe32:a211/64 Scope:Link
IPX/Ethernet 802.3 addr:00C02632A211
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8538 errors:0 dropped:0 overruns:0 frame:0
TX packets:4622 errors:0 dropped:0 overruns:0 carrier:0
RX bytes:1347923 (1.2 MiB) TX bytes:4959973 (4.7 MiB)
Interrupt:20 Base address:0xdc00
Mount a Novell(TM) Volume
If your IPX network software is configured properly, you should now be able to mount a Novell volume into your Linux filesystem. The ncpmount command is used for this purpose you have to specify following information:
The fileserver name
The fileserver directory to mount (Optional)
The fileserver User id. If it is protected with a password then Password is also required.
The mount point. This will be an existing directory on your machine.
There is an equivalent ncpumount command to unmount a mounted NCP filesystem.
Various options of ncpmount command are as follows:
usage: ncpmount [options] mount-point
-S server Server name to be used
-A dns_name DNS server name to be used when mounting over TCP or UDP
-U username Username sent to server
-V volume Volume to mount, for NFS re-export
-u uid uid the mounted files get
-g gid gid the mounted files get
-f mode permission the files get (octal notation)
-d mode permission the dirs get (octal notation)
-c uid uid to identify the connection to mount on Only makes sense for root
-t time_out Waiting time (in 1/100s) to wait for an answer from the server. Default: 60
-r retry_count Number of retry attempts. Default: 5
-C Don’t convert password to uppercase
-P password Use this password
-n Do not use any password
If neither -P nor -n are given, you are asked for a password.
-s Enable renaming/deletion of read-only files
-h print this help text
-v print ncpfs version number
-b Force bindery login to NDS servers
-i level Signature level, 0=never, 1=supported, 2=preferred, 3=required
-m Allow multiple logins to server
-N os2,nfs Do not use specified namespaces on mounted volume
-y charset character set used for input and display
-p codepage codepage used on volume, including letters `cp’
Example command to mount fileserver SUMI_WEB, with a login id of “guest” with no password, under the “/mnt/web” directory
# ncpmount -S SUMI_WEB /mnt/web -U guest -n
Example command to mount fileserver SUMI_DEV, with a login id of “rdeep” with password, “secret” under the “/mnt/dev” directory
# ncpmount -S SUMI_DEV /mnt/dev -U rdeep -P secret
Configure mounts to be automatically performed
Make the following entries in file “/etc/rc.local”
# configure the IPX network
ipx_configure –auto_interface=on –auto_primary=on
# guest login to the Accounting fileserver
ncpmount -S SUMI_WEB /mnt/web -U guest -n