DHCP server
For cases where a host requires IPAM (IP Address Management) without an external DHCP server, or where DHCP relay to underlay is not possible, IPAM information can be stored locally on the SR Linux device, which can assign an IP address and other DHCP options to the host using a local DHCP server.
SR Linux supports static IP allocations on both DHCPv4 and DHCPv6 servers. The SR Linux DHCP server can be enabled under regular Layer 3 or IRB subinterfaces. On Layer 3 or IRB subinterfaces, the DHCP server can only be enabled under subinterfaces where DHCP relay is disabled.
When an incoming DHCP Discover or Solicit message is received from a host (DHCP client), and its MAC address matches an entry in the SR Linux DHCP server configuration, the SR Linux DHCP server starts the process of IP address assignment and sends other DHCP options if configured to do so.
For DHCPv4, in addition to IP address allocation, the SR Linux can send the following DHCP options to a host:
- router (option 3) – IPv4 address of the gateway for the DHCP client
- ntp-server (option 4) – List of up to 4 NTP servers for the DHCP client to use
- dns-server (option 6) – List of up to 4 DNS servers for the DHCP client to use
- hostname (option 12) – The hostname for the DHCP client
- domain-name (option 15) – The domain name the client can use when resolving hostnames via DNS
- bootfile-name (option 66) – URL to a provisioning script for the DHCP client to use when booting
- server-id – IP address the DHCP server must match within the network-instance, such as the subinterface primary address or loopback address
For DHCPv6, in addition to IP address allocation, the SR Linux can send a list of up to 4 DNS servers for the DHCP client to use (option 23).
Notes:
- The SR Linux DHCP server supports static IP address allocation only. Dynamic allocation is not supported.
- It is assumed there is no DHCP relay agent between the DHCP client and the SR Linux DHCP server. Relayed frames are not supported.
- For IPv6, DHCP configuration uses MAC-to-IPv6 address binding. The IPv6 address is assigned to the client based on the client's MAC address, not IAID. The client's MAC address is derived from the client identifier. The recommended client identifier type is DUID type DUID-LLT or DUID-LL.
Configuring the DHCP server
To configure the SR Linux DHCP server, you enable it on a subinterface and at the
system dhcp-server
level configure DHCPv4 and DHCPv6 options
and static IP allocations for the network-instance where DHCP is required.
The following example enables DHCPv4 and DHCPv6 servers for a subinterface:
--{ * candidate shared default }--[ ]--
# info interface ethernet-1/1 subinterface 1
interface ethernet-1/1 {
subinterface 1 {
admin-state enable
ipv4 {
address 192.14.1.4/27 {
}
dhcp-server {
admin-state enable
}
}
ipv6 {
address 2001:192:14:1::4/120 {
}
dhcpv6-server {
admin-state enable
}
}
}
}
The following example configures DHCPv4 and DHCPv6 options, which are supplied to DHCP clients on the default network-instance:
--{ * candidate shared default }--[ ]--
# info system dhcp-server
system {
dhcp-server {
admin-state enable
network-instance default {
dhcpv4 {
options {
domain-name lan
router 192.168.1.1
dns-server [
192.168.1.53
192.168.1.54
]
ntp-server [
192.168.1.50
]
}
}
dhcpv6 {
options {
dns-server [
2001:192:14:1::4
2001:192:14:1::5
]
}
}
}
}
}
The following example configures static IP allocation settings for an IPv4 host:
--{ * candidate shared default }--[ ]--
# info detail system dhcp-server network-instance default dhcpv4
system {
dhcp-server {
admin-state enable
network-instance default {
dhcpv4 {
admin-state enable
static-allocation {
host 00:1D:FE:E0:E9:7C {
ip-address 192.168.1.1/24
options {
router 192.168.1.1
dns-server [
192.168.1.53
]
}
}
}
}
}
}
}
The following example configures static IP allocation settings for an IPv6 host:
--{ * candidate shared default }--[ ]--
# info detail system dhcp-server network-instance default dhcpv6
system {
dhcp-server {
admin-state enable
network-instance default {
dhcpv6 {
admin-state enable
static-allocation {
host 92:93:47:30:32:CA {
ip-address 2001:1::192:168:12:1/126
options {
dns-server [
2001:192:14:1::4
]
}
}
}
}
}
}
}