.SH
6.2.1 - Host name
.R
.ihtml h3
Each machine on the network receives a corresponding section in
.CW ndb .
The host name (hereafter referred to as
.CW sysname )
is assigned by setting the
.CW sys=
tuple:
.P1
sys=x301
.P2
The resulting
.CW sysname
is used by the
.CW /rc/bin/termrc
and
.CW /rc/bin/cpurc
startup scripts, which in turn call upon any additional configuration that may exist in
.CW /cfg/$sysname/ .
(Look at the scripts to see how they deal with
.CW /cfg .)
.html -
.ihtml h3

.SH
6.2.2 - Identifying and setting up your network interfaces
.R
.ihtml h3
Network interfaces are recognized by their MAC addresses, which are identified to
.CW ndb
using the
.CW ether=
tuple:
.P1
sys=x301 ether=00226811f7dd
.P2
Additional tuples in the same grouping will be used to configure the interface in question.
.html -
.ihtml h4

.SH
6.2.2.1.1 - Interfaces
.R
.ihtml h5
.html -
.ihtml h5

.SH
6.2.2.1.1.1 - wavelan
.R
.ihtml h5
Lucent Wavelan (Orinoco) IEEE 802.11b and compatible PCMCIA cards. Compatible cards include the Dell TrueMobile 1150 and the Linksys Instant Wireless Network PC Card. Port and IRQ defaults are 0x180 and 3 respectively.
These cards take a number of unique options to aid in identifying the card correctly on the 802.11b network. The network may be ad hoc or managed (i.e. use an access point):
.CW
mode=[adhoc, managed]
.R
and defaults to managed. The 802.11b network to attach to (managed mode) or identify as (ad hoc mode), is specified by
.CW essid=string
and defaults to a null string. The card station name is given by
.CW station=string
and defaults to Plan 9 STA. The channel to use is given by
.CW channel=number
where number lies in the range 1 to 16 inclusive; the channel is normally negotiated automatically.
If the card is capable of encryption, the following options may be used:
.CW
crypt=[off, on]
.R
and defaults to on.
.CW keyN=string
sets the encryption key N (where N is in the range 1 to 4 inclusive) to string; this will also set the transmit key to N (see below). There are two formats for string which depend on the length of the string. If it is exactly 5 or 13 characters long it is assumed to be an alphanumeric key; if it is exactly 10 or 26 characters long the key is assumed to be in hex format (without a leading 0x). The lengths are checked, as is the format of a hex key.
.CW txkey=number
sets the transmit key to use to be number in the range 1 to 4 inclusive. If it is desired to exclude or include unencrypted packets
.CW
clear=[off, on]
.R
configures reception and defaults to inclusion.
The defaults are intended to match the common case of a managed network with encryption and a typical entry would only require, for example
.CW
essid=left-armpit key1=afish key2=calledraawaru
.R
if the port and IRQ defaults are used. These options may be set after boot by writing to the device's ctl file using a space as the separator between option and value, e.g.
.CW
echo 'key2 1d8f65c9a52d83c8e4b43f94af' >/net/ether0/0/ctl
.R
Card-specific power management may be enabled/disabled by
.CW
pm=[on, off]
.R
.html -
.ihtml h5

.SH
6.2.2.1.1.2 - wavelanpci
.R
.ihtml h5
PCI Ethernet adapters that use the same Wavelan programming interface. Currently the only tested cards are those based on the Intersil Prism 2.5 chipset.
.html -
.ihtml h5

.SH
6.2.2.1.4 - Wifi Debug
.R
.ihtml h5
For cards that use the wifi layer, debug prints (\fBnote:\fR will appear on the console) may be enabled with:
.P1
echo debug >\'#l0/ether0/clone\'
# change this to suit if wifi interface is not #l0
.P2
or by adding
.CW debug=1
to the interface definition in
.CW plan9.ini .
Read:
.ihtml a
.CW plan9.ini(8)
.ihtml a
.html -
.ihtml h3

.SH
6.2.3 - IP address
.R
.ihtml h3
The
.CW ip=
tuple is used to associate an IP address with the machine:
.P1
sys=x301 ether=00226811f7dd ip=192.168.0.31
.P2
If no
.CW ip=
tuple is present, the boot scripts will attempt to bring up the interface using DHCP (see below).
.html -
.ihtml h3

.SH
6.2.4 - Default gateway
.R
.ihtml h3
The default gateway is configured using the
.CW ipgw=
tuple, usually under an
.CW ipnet=
section that defines default settings for an entire subnet:
.P1
ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0 ipgw=192.168.0.1
.P2
but it may also be specified on a per-machine basis:
.P1
sys=x301 ether=00226811f7dd ip=192.168.0.31 ipgw=192.168.0.1
.P2
.B Note:
Tuples included in the definition of a machine supercede those defined for the network to which the machine belongs.
.html -
.ihtml h3

.SH
6.2.5 - DNS Resolution
.R
.ihtml h3
DNS resolvers may be specified using the
.CW dns=
tuple, and may be configured for an entire network:
.P1
ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0 ipgw=192.168.0.1
dns=192.168.0.1
.P2
or on a per-machine basis:
.P1
sys=x301 ether=00226811f7dd ip=192.168.0.31 dns=192.168.0.1
.P2
These changes will take effect after a reboot. To configure a DNS resolver on the fly, it is possible to manually edit
.CW /net/ndb :
.P1
ip=192.168.0.31 ipmask=255.255.255.0 ipgw=192.168.0.1
sys=x301
dom=x301.9front
dns=192.168.0.1
# add or modify dns= lines to associate the DNS
# server 192.168.0.1 with the running system
.P2
.B Note:
.CW /net/ndb
is a synthetic file that represents the current operating state. It does not persist across reboots, and is only pre-populated when system networking was configured via DHCP.
Changes to a blank
.CW /net/ndb
file will match on the
.CW ip=
tuple.
Read:
.ihtml a
.CW ip(3)
.ihtml a
Finally, to turn on debug in
.CW dns :
.P1
echo -n debug >/net/dns
.P2
.html -
.ihtml h4

.SH
6.2.5.1 - Caching DNS server
.R
.ihtml h4
To run a caching DNS server, modify
.CW /cfg/$sysname/termrc
or
.CW /cfg/$sysname/cpurc
(whichever is appropriate) to include the following:
.P1
ndb/dns -rs
.P2
The caching DNS server will be started at boot time.
Next, modify
.CW /lib/ndb/local
such that the desired machines will use the IP address of the new caching DNS server as their DNS server, either by changing the
.CW dns=
tuple under the
.CW ipnet
of the corresponding network or by adding a
.CW dns=
tuple to the line of each desired machine.
Read:
.ihtml a
.CW ndb(6)
.ihtml a
and
.ihtml a
.CW ndb(8)
.ihtml a
.html -
.ihtml h4

.SH
6.2.5.2.1 - Troubleshooting DNS authoritative name server
.R
.ihtml h4
An online tool that evaluates the DNS configuration of a given domain name is available at:
.ihtml a
.CW https://intodns.com
.ihtml a
.html -
.ihtml h3

.SH
6.7.1 - How do I tcp boot?
.R
.ihtml h3
It is possible to boot from local media and then mount the root file system over the network. At the
.CW bootargs
prompt, type
.CW tls
(the old
.CW tcp
boot option will still work but is not recommended because the connection will not be encrypted).
At this point,
.CW ip/ipconfig
will determine network parameters using DHCP. When file (\f(CWfs\fR) or authentication (\f(CWauth\fR) server IP addresses could not be determined over DHCP then the boot process will prompt for those. When prompted for a
.CW user ,
enter a valid username and password that has already been configured on the auth server. The machine should then proceed to mount its root file system from the file server.
.B Note:
Values for
.CW fs
and
.CW auth
may be added to
.CW plan9.ini .
Read:
.ihtml a
.CW plan9.ini(8)
.ihtml a
.html -
.ihtml h4

.SH
6.7.1.1 - Passing arguments to ipconfig at the bootargs prompt
.R
.ihtml h4
When a DHCP server is not available, you may still tcp boot by configuring networking manually at the
.CW bootargs
prompt. Everything after
.CW tcp!
is passed as arguments to the
.CW ipconfig
command.
At the prompt:
.P1
bootargs is (tcp, tls, il, local!device) [tcp]
.P2
enter something like the following:
.P1
tls!-g 192.168.0.1 ether /net/ether0 192.168.0.23 255.255.255.0
.P2
where
.CW 192.168.0.1
is the gateway,
.CW 192.168.0.23
is the static IP address and
.CW 255.255.255.0
the subnet mask.
Read:
.ihtml a
.CW ipconfig(8)
.ihtml a
.html -
.ihtml h3

.SH
6.7.2 - How do I boot using PXE?
.R
.ihtml h3
It is also possible to PXE boot a system.
On the file server, add the following lines to
.CW /cfg/$sysname/cpurc
to start
.CW dhcpd
and
.CW tftpd
at boot time:
.P1
ip/dhcpd
ip/tftpd
.P2
Add an entry for
.CW tftp
under the appropriate
.CW ipnet=
tuple in
.CW /lib/ndb/local :
.P1
ipnet=9front ip=192.168.0.0 ipmask=255.255.255.0 ipgw=192.168.0.1
auth=192.168.0.2
authdom=9front
cpu=192.168.0.4
dns=192.168.0.1
dnsdomain=9front
smtp=192.168.0.4
tftp=192.168.0.3
.P2
Reboot the file server:
.P1
fshalt -r
.P2
To configure machines that will PXE boot from the file server, edit
.CW /lib/ndb/local
on the file server and add a
.CW bootf=
(boot file) tuple to the line representing each machine:
.P1
sys=x301 dom=x301.9front ether=00226811f7dd ip=192.168.0.31
bootf=/386/9bootpxe
.P2
For the system
.CW x301
we would then create a file
.CW /cfg/pxe/00226811f7dd
on the file server to serve as its
.CW plan9.ini :
.P1
bootfile=/386/9pcf
bootargs=tls
nobootprompt=tls
auth=192.168.0.2
fs=192.168.0.3
mouseport=ps2intellimouse
monitor=vesa
vgasize=1440x900x32
*acpi=1
user=sl
.P2
.B Note:
The
.CW user=
parameter refers to a single username that has been added both to the file server (for file permissions) as well as to the auth server (for network authentication).
If a file matching the remote system's MAC address is not found under
.CW /cfg/pxe/ ,
the file
.CW /cfg/pxe/default
(if it exists) will be used instead.
Finally, boot the desired remote systems via PXE. When prompted for a
.CW user ,
enter a valid username and password that has already been configured on the auth server. The remote system should now proceed to boot from the file server.
.html -
.html - FQA INDEX |
.html - FQA 5 - Building The System From Source |
.html - FQA 7 - System Management