IPCONFIG(8) IPCONFIG(8)
NAME
ipconfig, rip, linklocal, ipv6on - Internet configuration
and routing
SYNOPSIS
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 ]
DESCRIPTION
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 authentication 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 equivalent 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 verbs are:
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 stack.
The IPv6-specific verbs, which take different arguments,
are:
add6 prefix pfx-len onlink auto validlt preflt
Page 1 Plan 9 (printed 10/29/25)
IPCONFIG(8) IPCONFIG(8)
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 run-
ning, forks one.
The options are:
6 if adding an address (the default action), add the IPv6
link-local address.
b the baud rate to use on a serial line when configuring
PPP.
c write the control string ctl to the ethernet device con-
trol 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.
Page 2 Plan 9 (printed 10/29/25)
IPCONFIG(8) IPCONFIG(8)
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 network 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 sec-
onds with no answer. This option directs ipconfig
instead to fork a background 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,
discovermask, discoverrouter, dns, dom, dumpfile,
etherencap, extpath, finger, homeagent, impress, ipaddr,
ipforward, ipgw, ipmask, irc, lease, log, lpr, maxdata-
gram, maxmsg, message, mtu, name, netbiosdds, netbiosns,
netbiosscope, netbiostype, ni, nisdomain, nisplus, nis-
plusdomain, nntp, nonlocal, ntp, overload, params, path-
plateau, pathtimeout, policyfilter, pop3, rebindingtime,
renewaltime, rl, rootpath, rs, serverid, smtp, st, stati-
croutes, stdar, subnetslocal, supplymask, swap, sys,
tcpka, tcpkag, tcpttl, tftp, time, timeoff, trailerencap,
ttl, type, vendorclass, www, xdispmanager, xfont
The options ipmask, ipgw, dns, sys, and ntp are always
requested.
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 inter-
face.
Rip runs the routing protocol RIP. It listens for RIP pack-
ets on connected networks and updates the kernel routing
tables. The options are:
Page 3 Plan 9 (printed 10/29/25)
IPCONFIG(8) IPCONFIG(8)
b broadcasts routing information onto the networks.
n gathers routing information but doesn't write to the
route table. 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 an IPv6 link-local address
(derived from its MAC address) and an IPv6 global address,
either from an ipv6 attribute for $sysname or the
interface's MAC address, if present, or via stateless
address autoconfiguration. It also attempts to add a
default IPv6 route from a router advertisement.
EXAMPLES
Configure Ethernet 0 as the primary IP interface. Get all
addresses via DHCP. Start up a connection server and DNS
resolver for this IP stack.
% bind -b '#l0' /net
% bind -a '#I0' /net
% ip/ipconfig
% ndb/cs
% ndb/dns -r
Add a second address to the stack.
% ip/ipconfig ether /net/ether0 add 12.1.1.2 255.255.255.0
At Bell Labs, our primary IP stack is always to the
company's internal firewall-protected network. The follow-
ing creates an external IP stack to directly access the out-
side Internet. Note that the connection server uses a dif-
ferent set of ndb files. This prevents us from confusing
inside and outside name/address bindings.
% bind -b '#l1' /net.alt
% bind -b '#I1' /net.alt
% ip/ipconfig -x /net.alt -g 135.104.24.1 ether /net.alt/ether1\
135.104.24.14 255.255.255.0
% 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
Page 4 Plan 9 (printed 10/29/25)
IPCONFIG(8) IPCONFIG(8)
Get all addresses via DHCP. Configure the IPv6 link-local
address automatically and listen for router announcements.
ip/ipconfig -6
ip/ipconfig ra6 recvra 1
FILES
/sys/log/v6routeradv
SOURCE
/sys/src/cmd/ip/ipconfig
/sys/src/cmd/ip/rip.c
/sys/src/cmd/ip/linklocal.c
/rc/bin/ipv6on
SEE ALSO
ether(3), ip(3), loopback(3), ndb(6), 6in4(8), dhcpd(8),
ppp(8)
/lib/rfc/rfc2373 for IPv6's modified EUI-64
BUGS
Currently, SLAAC relies on each ipnet declaration containing
an ipv6pfx attribute. This should be replaced by a router
advertisement prefix.
Page 5 Plan 9 (printed 10/29/25)