mirror of
https://github.com/vyos/vyos-documentation.git
synced 2025-10-26 08:41:46 +01:00
Service: Add DHCP relay
This commit is contained in:
parent
adf53888e9
commit
a3584bd2f1
@ -410,6 +410,175 @@ Commit the changes and show the configuration:
|
|||||||
DHCP Relay
|
DHCP Relay
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
If you want your router to forward DHCP requests to an external DHCP server
|
||||||
|
you can configure the system to act as a DHCP relay agent. The DHCP relay
|
||||||
|
agent works with IPv4 and IPv6 addresses.
|
||||||
|
|
||||||
|
All interfaces used for the DHCP relay must be configured. See
|
||||||
|
https://wiki.vyos.net/wiki/Network_address_setup.
|
||||||
|
|
||||||
|
DHCP relay example
|
||||||
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: images/service_dhcp-relay01.png
|
||||||
|
:scale: 80 %
|
||||||
|
:alt: DHCP relay example
|
||||||
|
|
||||||
|
DHCP relay example
|
||||||
|
|
||||||
|
In this example the interfaces used for the DHCP relay are eth1 and eth2. The
|
||||||
|
router receives DHCP client requests on eth1 and relays them through eth2 to
|
||||||
|
the DHCP server at 10.0.1.4.
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
Enable DHCP relay for eth1 and eth2:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
set service dhcp-relay interface eth1
|
||||||
|
set service dhcp-relay interface eth2
|
||||||
|
|
||||||
|
Set the IP address of the DHCP server:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
set service dhcp-relay server 10.0.1.4
|
||||||
|
|
||||||
|
The router should discard DHCP packages already containing relay agent
|
||||||
|
information to ensure that only requests from DHCP clients are forwarded:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
set service dhcp-relay relay-options relay-agents-packets discard
|
||||||
|
|
||||||
|
Commit the changes and show the results:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
commit
|
||||||
|
show service dhcp-relay
|
||||||
|
interface eth1
|
||||||
|
interface eth2
|
||||||
|
server 10.0.1.4
|
||||||
|
relay-options {
|
||||||
|
relay-agents-packets discard
|
||||||
|
}
|
||||||
|
|
||||||
|
The DHCP relay agent can be restarted with:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
restart dhcp relay-agent
|
||||||
|
|
||||||
|
DHCPv6 relay example
|
||||||
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. figure:: images/service_dhcpv6-relay01.png
|
||||||
|
:scale: 80 %
|
||||||
|
:alt: DHCPv6 relay example
|
||||||
|
|
||||||
|
DHCPv6 relay example
|
||||||
|
|
||||||
|
In this example DHCPv6 requests are received by the router on eth1 (`listening
|
||||||
|
interface`) and forwarded through eth2 (`upstream interface`) to the external
|
||||||
|
DHCPv6 server at 2001:db8:100::4.
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
*************
|
||||||
|
|
||||||
|
Set eth1 to be the listening interface for the DHCPv6 relay:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
set service dhcpv6-relay listen-interface eth1
|
||||||
|
|
||||||
|
Set eth2 to be the upstream interface and specify the IPv6 address of the DHCPv6 server:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
set service dhcpv6-relay upstream-interface eth2 address 2001:db8:100::4
|
||||||
|
|
||||||
|
Commit the changes and show results:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
commit
|
||||||
|
show service dhcpv6-relay
|
||||||
|
listen-interface eth1 {
|
||||||
|
}
|
||||||
|
upstream-interface eth2 {
|
||||||
|
address 2001:db8:100::4
|
||||||
|
}
|
||||||
|
|
||||||
|
Show the current status of the DHCPv6 relay agent:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
show dhcpv6 relay-agent status
|
||||||
|
|
||||||
|
The DHCPv6 relay agent can be restarted with:
|
||||||
|
|
||||||
|
.. code-block:: sh
|
||||||
|
|
||||||
|
restart dhcpv6 relay-agent
|
||||||
|
|
||||||
|
Additional parameters
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
DHCP relay agent options
|
||||||
|
************************
|
||||||
|
|
||||||
|
Set the maximum hop count before packets are discarded. Range 0...255,
|
||||||
|
default 10.
|
||||||
|
|
||||||
|
* :code:`set service dhcp-relay relay-options hop-count 'count'`
|
||||||
|
|
||||||
|
Set maximum size of DHCP packets including relay agent information. If a
|
||||||
|
DHCP packet size surpasses this value it will be forwarded without appending
|
||||||
|
relay agent information. Range 64...1400, default 576.
|
||||||
|
|
||||||
|
* :code:`set service dhcp-relay relay-options max-size 'size'`
|
||||||
|
|
||||||
|
Set the port used to relay DHCP client messages. Range 1...65535, default 67.
|
||||||
|
After setting a different port, requests are still accepted on port 67 but
|
||||||
|
replies are forwarded to 255.255.255.255 port 0 instead of 68.
|
||||||
|
|
||||||
|
* :code:`set service dhcp-relay relay-options port 'port'`
|
||||||
|
|
||||||
|
Four policies for reforwarding DHCP packets exist:
|
||||||
|
|
||||||
|
* **append:** The relay agent is allowed to append its own relay information
|
||||||
|
to a received DHCP packet, disregarding relay information already present in
|
||||||
|
the packet.
|
||||||
|
|
||||||
|
* **discard:** Received packets which already contain relay information will
|
||||||
|
be discarded.
|
||||||
|
|
||||||
|
* **forward:** All packets are forwarded, relay information already present
|
||||||
|
will be ignored.
|
||||||
|
|
||||||
|
* **replace:** Relay information already present in a packet is stripped and
|
||||||
|
replaced with the router's own relay information set.
|
||||||
|
|
||||||
|
* :code:`set service dhcp-relay relay-options relay-agents-packet 'policy'`
|
||||||
|
|
||||||
|
DHCPv6 relay agent options
|
||||||
|
**************************
|
||||||
|
|
||||||
|
Set listening port for DHCPv6 requests. Default: 547.
|
||||||
|
|
||||||
|
* :code:`set service dhcpv6-relay listen-port 'port'`
|
||||||
|
|
||||||
|
Set maximum hop count before packets are discarded. Default: 10.
|
||||||
|
|
||||||
|
* :code:`set service dhcpv6-relay max-hop-count 'count'`
|
||||||
|
|
||||||
|
If this is set the relay agent will insert the interface ID. This option is
|
||||||
|
set automatically if more than one listening interfaces are in use.
|
||||||
|
|
||||||
|
* :code:`set service dhcpv6-relay use-interface-id-option`
|
||||||
|
|
||||||
DNS Forwarding
|
DNS Forwarding
|
||||||
--------------
|
--------------
|
||||||
|
|||||||
BIN
docs/images/service_dhcp-relay01.png
Normal file
BIN
docs/images/service_dhcp-relay01.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 150 KiB |
BIN
docs/images/service_dhcpv6-relay01.png
Normal file
BIN
docs/images/service_dhcpv6-relay01.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 147 KiB |
Loading…
x
Reference in New Issue
Block a user