Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
dhcrelay(8)		    System Manager's Manual		   dhcrelay(8)

NAME
       dhcrelay	- Dynamic Host Configuration Protocol Relay Agent

SYNOPSIS
       dhcrelay	 [  -4 ] [ -dqaD ] [ -p	port | -rp relay-port ]	[ -c count ] [
       -A length ] [ -pf pid-file ] [ --no-pid ] [ -m append | replace |  for-
       ward  | discard ] [ -i interface0 [ ...	-i interfaceN ]	] [ -iu	inter-
       face0 [ ...  -iu	interfaceN ] ] [ -id interface0	[ ...  -id  interfaceN
       ] ] [ -U	interface ] [ -g ipaddr	] server0 [ ...serverN ]

       dhcrelay	 -6  [	-dqI ] [ -p port | -rp relay-port ] [ -c count ] [ -pf
       pid-file	] [ --no-pid ] [ -s subscriber-id ] -l lower0 [	...  -l	lowerN
       ] -u upper0 [ ...  -u upperN ]

DESCRIPTION
       The Internet Systems Consortium DHCP Relay Agent, dhcrelay, provides  a
       means  for  relaying  DHCP and BOOTP requests from a subnet to which no
       DHCP server is directly connected to one	or more	DHCP servers on	 other
       subnets.	 It supports both DHCPv4/BOOTP and DHCPv6 protocols.

OPERATION
       The  DHCP Relay Agent listens for DHCPv4	or DHCPv6 queries from clients
       or other	relay agents on	one or more interfaces,	passing	them along  to
       ``upstream''  servers or	relay agents as	specified on the command line.
       When a reply is received	from upstream, it is multicast or unicast back
       downstream to the source	of the original	request.

COMMAND	LINE
       Protocol	selection options:

       -6     Run dhcrelay as a	DHCPv6 relay agent.  Incompatible with the  -4
	      option.

       -4     Run dhcrelay as a	DHCPv4/BOOTP relay agent.  This	is the default
	      mode  of operation, so the argument is not necessary, but	may be
	      specified	for clarity.  Incompatible with	-6.

       Specifying DHCPv4/BOOTP servers

       In DHCPv4 mode, a list of one or	more server addresses must  be	speci-
       fied  on	 the  command  line, to	which DHCP/BOOTP queries should	be re-
       layed.

       Options available for both DHCPv4 and DHCPv6:

       -c count
	      Maximum hop count.  When forwarding packets,  dhcrelay  discards
	      packets which have reached a hop count of	COUNT.	Default	is 10.
	      Maximum is 255.

       -d     Force dhcrelay to	run as a foreground process.  Useful when run-
	      ning  dhcrelay  under  a	debugger, or running out of inittab on
	      System V systems.

       -p port
	      Listen and transmit on port PORT.	 This is mostly	useful for de-
	      bugging purposes.	 Default is port 67 for	DHCPv4/BOOTP, or  port
	      547 for DHCPv6.  Incompatible with -rp.

       -rp relay-port
	      Alternative  source  port	 for  upstream (i.e toward the server)
	      messages with DHCPv4 RAI relay-port sub-option or	DHCPv6	relay-
	      source-port  option. Relay port support is only available	if the
	      code was compiled	with (./configure --enable-relay-port) and re-
	      quires LPF or BPF	link layer access.

       -q     Quiet mode.  Prevents dhcrelay6 from printing its	 network  con-
	      figuration on startup.

       -pf pid-file
	      Path to alternate	pid file.

       --no-pid
	      Option  to  disable  writing  pid	files.	By default the program
	      will write a pid file.

       Options available in DHCPv4 mode	only:

       -a     Append an	agent option field to each request  before  forwarding
	      it  to  the  server.  Agent option fields	in responses sent from
	      servers to clients will be stripped before forwarding  such  re-
	      sponses back to the client.  The agent option field will contain
	      two  agent  options:  the	Circuit	ID suboption and the Remote ID
	      suboption.  Currently, the Circuit ID will be the	printable name
	      of the interface on which	the client request was received.   The
	      client  supports inclusion of a Remote ID	suboption as well, but
	      this is not used by default.

       -A length
	      Specify the maximum  packet  size	 to  send  to  a  DHCPv4/BOOTP
	      server.	This might be done to allow sufficient space for addi-
	      tion of relay agent options while	still fitting into the	Ether-
	      net MTU size.

       -D     Drop  packets  from upstream servers if they contain Relay Agent
	      Information options that indicate	they  were  generated  in  re-
	      sponse  to  a  query  that came via a different relay agent.  If
	      this option is not specified, such packets will be relayed  any-
	      way.

       -g ipaddr
	      When  a  package gets sent back to the client, replace the gate-
	      way's IP address (giaddr)	with the given	ipaddr.	 This  can  be
	      used  as	a  workaround  for bogus clients like Solaris 11 grub,
	      which use	the giaddr instead of  the  announced  router  (3)  to
	      setup its	default	route.

       -i ifname
	      Listen  for  DHCPv4/BOOTP	traffic	on interface ifname.  Multiple
	      interfaces may be	specified by using more	than  one  -i  option.
	      If  no  interfaces  are  specified on the	command	line, dhcrelay
	      will identify all	network	interfaces, eliminating	 non-broadcast
	      interfaces if possible, and attempt to listen on all of them.

       -iu ifname
	      Specifies	an upstream network interface: an interface from which
	      replies  from  servers  and other	relay agents will be accepted.
	      Multiple interfaces may be specified by using more than one  -iu
	      option.  This argument is
	       intended	 to  be	used in	conjunction with one or	more -i	or -id
	      arguments.

       -id ifname
	      Specifies	a downstream  network  interface:  an  interface  from
	      which  requests  from clients and	other relay agents will	be ac-
	      cepted.  Multiple	interfaces may be specified by using more than
	      one -id option.  This argument is	intended to be	used  in  con-
	      junction with one	or more	-i or -iu arguments.

       -m append|replace|forward|discard
	      Control  the  handling  of incoming DHCPv4 packets which already
	      contain relay agent options.  If such a packet does not have gi-
	      addr set in its header, the  DHCP	 standard  requires  that  the
	      packet be	discarded.  However, if	giaddr is set, the relay agent
	      may  handle  the	situation in four ways:	 It may	append its own
	      set of relay options to the packet, leaving the supplied	option
	      field intact; it may replace the existing	agent option field; it
	      may forward the packet unchanged;	or, it may discard it.

       -U ifname
	      Enables the addition of a	RFC 3527 compliant link	selection sub-
	      option  for  clients  directly connected to the relay.  This RFC
	      allows a relay to	specify	two different IP  addresses:  one  for
	      the server to use	when communicating with	the relay (giaddr) the
	      other  for  choosing  the	subnet for the client (the suboption).
	      This can be useful if the	server is unable to  send  packets  to
	      the relay	via the	address	used for the subnet.

	      When  enabled,  dhcrelay	will  add  an  agent option (as	per -a
	      above) that includes the link selection suboption	 to  the  for-
	      warded  packet.  This will only be done to packets received from
	      clients that are directly	connected to the relay (i.e. giaddr is
	      zero).  The address used in the suboption	will be	 that  of  the
	      link  upon  which	 the  inbound packet was received (which would
	      otherwise	be used	for giaddr). The value of giaddr will  be  set
	      to that of interface ifname.

	      Only  one	interface should be marked in this fashion.  Currently
	      enabling this option on an interface causes the relay to process
	      all DHCP traffic similar to the -i option, in the	future we  may
	      split the	two more completely.

	      This  option  is off by default.	Note that enabling this	option
	      automatically enables the	-a option.

	      Keep in mind that	using options such as -m replace or -m discard
	      on relays	upstream from one using	-U can pose problems.  The up-
	      stream relay will	wipe out the initial agent  option  containing
	      the link selection while leaving the re-purposed giaddr value in
	      place, causing packets to	go astray.

       Options available in DHCPv6 mode	only:

       -I     Force use	of the DHCPv6 Interface-ID option.  This option	is au-
	      tomatically  sent	 when  there are two or	more downstream	inter-
	      faces in use, to	disambiguate  between  them.   The  -I	option
	      causes  dhcrelay	to  send  the option even if there is only one
	      downstream interface.

       -s subscriber-id
	      Add an option with the specified subscriber-id into the  packet.
	      This  feature  is	 for testing rather than production as it will
	      put the same subscriber-id into the packet for all clients.

       -l [address%]ifname[#index]
	      Specifies	the ``lower'' network interface	for DHCPv6 relay mode:
	      the interface on which queries will be received from clients  or
	      from  other  relay  agents.   At least one -l option must	be in-
	      cluded in	the command line when running in DHCPv6	mode.  The in-
	      terface name ifname is a mandatory parameter.  The link  address
	      can be specified by address%; if it isn't, dhcrelay will use the
	      first  non-link-local  address configured	on the interface.  The
	      optional #index parameter	specifies the interface	index.

       -u [address%]ifname
	      Specifies	the ``upper'' network interface	for DHCPv6 relay mode:
	      the interface to which queries  from  clients  and  other	 relay
	      agents  should be	forwarded.  At least one -u option must	be in-
	      cluded in	the command line when running in DHCPv6	mode.  The in-
	      terface name ifname is a mandatory  parameter.  The  destination
	      unicast  or  multicast  address can be specified by address%; if
	      not specified, the  relay	 agent	will  forward  to  the	DHCPv6
	      All_DHCP_Relay_Agents_and_Servers	multicast address.

       It  is  possible	to specify the same interface with different addresses
       more than once, and even, when the system supports it, to use the  same
       interface as both upper and lower interfaces.

SEE ALSO
       dhclient(8), dhcpd(8), RFC3315, RFC2132,	RFC2131.

BUGS
       Using the same interface	on both	upper and lower	sides may cause	loops,
       so  when	running	this way, the maximum hop count	should be set to a low
       value.

       The loopback interface is not (yet) recognized as a valid interface.

AUTHOR
       dhcrelay(8) To  learn  more  about  Internet  Systems  Consortium,  see
       https://www.isc.org

								   dhcrelay(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=dhcrelay&sektion=8&manpath=FreeBSD+14.3-RELEASE+and+Ports>

home | help