glenda.party
term% ls -F
term% cat index.txt
IPCONFIG(8)                 System Manager's Manual                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] [-f dbfile] [-x netmtpt] [ type  [  device  ]]
         [verb] [ local [ mask [ remote [ file-server [ auth ]]]]]

       ip/rip [-bdr] [-x netmtpt]

       ip/linklocal [ -t gwipv4 ] mac ...

       ipv6on [ netmtpt ndbfile [ gwv4 ]]

DESCRIPTION
       Ipconfig  binds a device interface 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 ad‐
       dress.  If no device is  specified,  the  first  ether  device  on  the
       mounted  IP  stack is used.  The addresses can be specified in the com‐
       mand line or obtained via DHCP.  If DHCP is requested, it will also ob‐
       tain 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
       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
              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-lo‐
              cal address.

       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.

       f      use the ndb database file dbfile .

       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, re‐
              newaltime, 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 re‐
              quested.

       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
       are:

       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 link-local address corresponding to the given
       mac address.  Given -t, linklocal instead prints the 6to4  EUI-64-based
       IPv6 address corresponding to 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  ad‐
       dress) and attempts to add a default IPv6 route to the local IPv4 gate‐
       way's  IPv6 address.  If gwv4 is supplied, it will be used as the gate‐
       way IPv4 address.

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 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 204.178.31.1 ether /net.alt/ether1\
                   204.178.31.6 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

       Get  all addresses via DHCP.  Configure the IPv6 link-local address au‐
       tomatically 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

                                                                   IPCONFIG(8)