NetWare Core Protocol™
(NCP™) on Linux: How it works

Dana Henriksen

Distinguished Engineer

Novell, Inc.

DeeAnne Higley

Senior Software Engineer

Novell, Inc.

Agenda

Architecture

Tools

Compatibility

Security

Future

Architecture

Architecture:
Design Goals

Transparent access for the Novell Client™

Run in user space

Operate independently of underlying file system

Architecture:
A little history

Previous Linux eDirectory™ releases: limited NCP support

104 (eDirectory access)

23 (limited)

Limited file access (for eDirectory streams)

Miscellaneous

Time sync

Licensing

Extended NCPs

Architecture:
A little history--NetWare® (cont.)

server.exe

ncp listener

Resource Management

Threads, Memory

ds.nlm

NCP 104 handler

NCP 23 handler (partial)

NCP Handler

File System, NCP Extensions

Architecture:
NCP on Linux—nds daemon (ndsd)

ndsd

Resource Management

Threads, Memory

libncpengine.so

NCP listener

NCP Handler

(File System NCPs)

NCP Handler

104, partial 23, NCP Extensions

Resource Management

Threads, Memory

Architecture

Contained in eDirectory Linux daemon (ndsd)

/usr/lib/nds-modules/libncpengine.so.*

Not on other *nix platforms

Activated by the presence of conf file (/etc/opt/novell/ncpserv.conf)

Applies NetWare hierarchical acls to POSIX file system

Architecture

Architecture

ndsd (eDirectory)

libncpengine.so

ncp2nss

libnrm2ncp.so

ncpcon

Architecture:
NCP Volumes

Default volume

SYS

/usr/novell/sys

eDirectory volume object

Created during install of NCP Server

Attribute: linuxNCPMountPoint

Others

NSS

Additions through ncpcon, nrm, or directly modifying /var/opt/novell/ncpserv.conf

Architecture:
Installing NCP Server

ndsd (eDirectory)

libncpengine.so

ncp2nss

libnrm2ncp.so

ncpcon

add ncpserv.conf

extend schema

create sys volume object

modify httpstkd.conf

restart ndsd

Architecture:
File System Support

NSS

Special integration

Salvage

Directory quotas

User space restrictions

Reiser

EXT3

Other POSIX file systems

Architecture:
ncp2nss

Architecture:
ncp2nss

ndsd (eDirectory)

libncpengine.so

ncp2nss

NSS _admin

NSS

Kernel

Tools

Tools:
ndsstat

Installed as part of eDirectory

Command line utility

Useful to determine state of eDirectory (is it running?)

Tools:
Where Are the eDirectory Files?

Configuration file: /etc/nds.conf

Log file: /var/nds/ndsd.log

Core files: /var/nds/dib

Tools:
Where Are the ncpserv Files?

Binaries:

/opt/novell/ncpserv/sbin

/opt/novell/ncpserv/bin

Configuration File:

/etc/opt/novell/ncpserv.conf

Log files (/var/opt/novell/log)

ncpserv.log

ncp2nss.log

libnrm2ncp.log

More information on the use of NCP log files is available at the Lab

Tools:
ncpcon

libncpengine.so

eDirectory (ndsd)

ncpcon

Tools:
ncpcon (cont.)

Command line or interactive

Help

Tools:
ncpcon (cont.)

Sample functionality

Current connections

list

details

Volumes

list

mount/dismount

create/delete

Statistics

Tools:
ncpserv nrm plugin

libncpengine.so

eDirectory (ndsd)

libnrm2ncp.so

httpstkd

Tools:
ncpserv nrm plugin (cont.)

Very similar functionality to ncpcon

Sample functionality

Connections

List

Detail

send/clear

Volumes

List

create/delete

Statistics

Compatibility

Compatibility:
Clients

Supported

TCP/IP Clients

Windows Client 32

NLM Clients

UDP Clients

NCPFS

Not Supported

IPX

Legacy DOS clients

Other IPX clients

Compatibility:
Features

Supported

Clustering

New UTF8 NCPS (Case 89)

Full filesystem NCPs

64-bit file IO

NDS® NCPs

Not Supported

Extended Attributes

Queue NCPs

Legacy print NCPs

Oplocks (future)

Soft Links

Compatibility:
UTF8 Support - Client

Client Support

Use latest NetWare Client software

Enable “Use UTF8 encoding and NCPs”

In the “Advanced Settings” on the Red N

Default setting is off

Needed for international chars if you want to:

Share files with clients from other locals

Share files with SAMBA clients

Compatibility:
UTF8 Support - Server

Server support

All file system accesses done in UTF-8

NCP on wire path encoding

Case 89 uses UTF-8

All others use Local Code Page

Uses POSIX local code page (<0x80)

No map characters get bracketed

[XX] for Local to UTF-8

[XXXX] for UTF-8 to Local

Compatibility:
File Attributes

Supported

Read Only

User Write Mode bit

Hidden

User Read Mode bit

Not Supported

Archive

Compression

Migration

Suballocation

Others

Security

Security:
Rights

NetWare Trustees

Full SRWCEMFA rights

Stored in XML file

Enforced by NCP (not file system)

NSS Integration

Inherited Rights Masks

Stored in XML file

NSS integration

Security:
UIDs

LUM integration

UID of root with non LUM enabled users

UID of user if LUM enabled

UID set for files created

User RWX set for objects

Group and Public mode bits 0

Security:
Non-NCP Access

Non-NSS Volumes

File and subdirectory Owner Ids

Gets the UID of the creator

Gives RWX rights

NSS

Applies eDirectory security equivalences to files system based on NSS trustee data

NCP

CIFS

NFS

Futures

Futures

Possible enhancements:

Oplocks

Other file attributes / Extended attributes

Cross protocol locking

EM64T / X86-64

IPV6

Summary

Architecture

Tools

Compatibility

Security

Future

Question & Answer

2003-12-08T12:43:39