ipconfig, rip, linklocal, ipv6on - Internet configuration and routing
ip/ipconfig [-6DGNOPdnpruX] [-b baud] [-c ctl] [-g gateway] [-h host]
[-m mtu] [-o dhcp-opt] [-x netmtpt] [ type [ device ]] [verb] [ local
[ mask [ remote [ file-server [ auth ]]]]]
ip/rip [-bdr] [-x netmtpt]
ip/linklocal [ -t gwipv4 ] mac ...
ipv6on [ netmtpt ndbfile [ gwipv4 ]]
Ipconfig binds a device interface (default /net/ether0) to a mounted IP
stack (default /net) and configures the interface with a local address
and optionally a mask, a remote address, a file server and an authenti‐
cation server address. The addresses can be specified in the command
line or obtained via DHCP. If DHCP is requested, it will also obtain
the addresses of DNS servers, NTP servers, gateways, a Plan 9 file
server, and a Plan 9 authentication server. If this is the first non-
loopback interface on the IP stack, the information will be written to
/net/ndb in the form of an ndb(8) entry.
Type may be ether, gbe, ppp, pkt, or loopback. The gbe type is equiva‐
lent to ether except that it allows jumbo packets (up to ~9KB). The
pkt interface passes all IP packets to and from a user program. For
ppp the device can be any byte stream device.
The verb (default add) determines the action performed. The usual
add if the device is not bound to the IP stack, bind it. Add the
given local address, mask, and remote address to the interface.
An interface may have multiple addresses.
remove remove the address from the device interface.
unbind unbind the device interface and all its addresses from the IP
The IPv6-specific verbs, which take different arguments, are:
add6 prefix pfx-len onlink auto validlt preflt
sets the named IPv6 parameters; see ip(3) for more detail.
ra6 [ keyword value ] ...
sets IPv6 router advertisement parameter keyword's value. See
ip(3) for more detail. Setting recvra non-zero also forks a
process to receive and process router advertisements. Setting
sendra non-zero also enables IP routing on the interface, forks
a process to send router advertisements, and if no recvra
process is running, forks one.
The options are:
6 if adding an address (the default action), add the IPv6 link-
b the baud rate to use on a serial line when configuring PPP.
c write the control string ctl to the ethernet device control file
before starting to configure it. May be repeated to specify
multiple control writes.
d use DHCP to determine any unspecified configuration parameters.
D turn on debugging.
g the default gateway.
G use only generic DHCP options. Without this option, ipconfig
adds to requests a Vendor Class option with value plan9_$cputype
and also requests vendor specific options 128 and 129 which we
interpret as the Plan 9 file server and auth server. Replies to
these options contain a list of IP addresses for possible file
servers and auth servers.
h the hostname to add to DHCP requests. Some DHCP servers, such
as the one used by Comcast, will not respond unless a correct
hostname is in the request.
m the maximum IP packet size to use on this interface.
n determine parameters but don't configure the interface.
N look in /lib/ndb for the IP parameters. This only works if the
interface is an ethernet. It uses the ethernet address to find
a matching entry.
O addresses specified on the command line override those obtained
via DHCP. A command line address of 0 implies no override.
p write configuration information to /net/ndb, even if other net‐
work interfaces are already configured
P do not write configuration information to /net/ndb, even if this
is the first network interface to be configured
r by default, ipconfig exits after trying DHCP for 15 seconds with
no answer. This option directs ipconfig instead to fork a back‐
ground process that keeps trying forever.
u disable IPv6 duplicate discovery detection, which removes any
existing ARP table entry for one of our IPv6 addresses before
adding new ones.
x use the IP stack mounted at netmtpt instead of at /net.
X don't fork a process to keep the DHCP lease alive.
o adds dhcpoption to the list of paramters requested of the DHCP
server. The result will appear in /net/ndb should this be the
first interface. The known options are:
arptimeout, baddr, bflen, bootfile, clientid, cookie, discover‐
mask, discoverrouter, dns, dom, dumpfile, etherencap, extpath,
finger, homeagent, impress, ipaddr, ipforward, ipgw, ipmask,
irc, lease, log, lpr, maxdatagram, maxmsg, message, mtu, name,
netbiosdds, netbiosns, netbiosscope, netbiostype, ni, nisdomain,
nisplus, nisplusdomain, nntp, nonlocal, ntp, overload, params,
pathplateau, pathtimeout, policyfilter, pop3, rebindingtime,
renewaltime, rl, rootpath, rs, serverid, smtp, st, staticroutes,
stdar, subnetslocal, supplymask, swap, sys, tcpka, tcpkag,
tcpttl, tftp, time, timeoff, trailerencap, ttl, type, vendor‐
class, www, xdispmanager, xfont
The options ipmask, ipgw, dns, sys, and ntp are always
If DHCP is requested, a process is forked off to renew the lease before
it runs out. If the lease does run out, this process will remove any
configured addresses from the interface.
Rip runs the routing protocol RIP. It listens for RIP packets on con‐
nected networks and updates the kernel routing tables. The options
b broadcasts routing information onto the networks.
n gathers routing information but doesn't write to the route ta‐
ble. This is useful with -d to debug a network.
x use the IP stack mounted at netmtpt instead of at /net.
d turn on (voluminous) debugging.
Linklocal prints the IPv6 EUI-64-based link-local address derived from
the given mac address. Given -t, linklocal instead prints the 6to4
EUI-64-based IPv6 address derived from mac and 6to4 gateway gwipv4.
Ipv6on uses the network database at ndbfile to configure the network
mounted on netmtpt with a link-local address (derived from its MAC
address) and attempts to add a default IPv6 route to the local IPv4
gateway's IPv6 address. If gwipv4 is supplied, it will be used as the
gateway's IPv4 address.
Configure Ethernet 0 as the primary IP interface. Get all addresses
via DHCP. Start up a connection server and DNS resolver for this IP
% bind -b '#l0' /net
% bind -a '#I0' /net
% ndb/dns -r
Add a second address to the stack.
% ip/ipconfig ether /net/ether0 add 220.127.116.11 255.255.255.0
At Bell Labs, our primary IP stack is always to the company's internal
firewall-protected network. The following creates an external IP stack
to directly access the outside Internet. Note that the connection
server uses a different set of ndb files. This prevents us from con‐
fusing inside and outside name/address bindings.
% bind -b '#l1' /net.alt
% bind -b '#I1' /net.alt
% ip/ipconfig -x /net.alt -g 18.104.22.168 ether /net.alt/ether1\
% ndb/cs -x /net.alt -f /lib/ndb/external
% ndb/dns -sx /net.alt -f /lib/ndb/external
% aux/listen -d /rc/bin/service.alt /net.alt/tcp
Get all addresses via DHCP. Configure the IPv6 link-local address
automatically and listen for router announcements.
ip/ipconfig ra6 recvra 1
SEE ALSOether(3), ip(3), loopback(3), ndb(6), 6in4(8), dhcpd(8), ppp(8)
/lib/rfc/rfc2373 for IPv6's modified EUI-64