NetCrosswalk: Cross-Vendor Network Task Translator

You know how to do it on one box. Here's how it's done on the other — GUI or CLI, plus the gotchas.

30 tasks
Addressing & Services

Set up a DHCP server on an interface

Hand out addresses, gateway, and DNS to clients on a subnet.

Why it differs: MikroTik splits this into three separate objects you must create in the right order, which is why its DHCP setup fails more often than anyone else's.

Router / switch / AP

MikroTik RouterOS

GUI or CLI
Written against RouterOS 7.x

Steps

  1. Easiest path — the wizard: IP → DHCP Server → DHCP Setup button, pick the interface, accept the prompts.
  2. Manual, in order: /ip pool add name=pool10 ranges=192.168.10.100-192.168.10.200
  3. /ip dhcp-server add name=dhcp10 interface=vlan10 address-pool=pool10 lease-time=1d disabled=no
  4. /ip dhcp-server network add address=192.168.10.0/24 gateway=192.168.10.1 dns-server=192.168.10.1
  5. Verify: /ip dhcp-server lease print

Gotchas & notes

  • Three objects are required: pool, server, and network. Skipping the network entry is the classic failure — clients get an IP but no gateway or DNS, so 'DHCP works but there is no internet'.
  • A new DHCP server is created disabled when added manually. Set disabled=no or flip the checkbox; a missing lease with no log entry usually means this.
  • The interface must already have the IP address configured, and it must be the bridge (not a bridge member port) in a switched setup.
  • Use the DHCP Setup wizard for a new subnet — it creates all three objects consistently, then edit afterwards.
  • Check for a competing DHCP server on the segment with /ip dhcp-server alert add interface=vlan10 — it logs rogue servers.
Vendor documentation ↗
NGFW / router

Fortinet FortiGate (FortiOS)

GUI or CLI
Written against FortiOS 7.2 – 7.6

Steps

  1. GUI: Network → Interfaces → edit the interface → enable DHCP Server → set the address range, netmask, default gateway (Same as Interface IP), and DNS.
  2. CLI: config system dhcp serveredit 0set interface "vlan10"set default-gateway 192.168.10.1set netmask 255.255.255.0config ip-rangeedit 1set start-ip 192.168.10.100set end-ip 192.168.10.200nextendnextend
  3. Verify: Dashboard → DHCP monitor, or execute dhcp lease-list

Gotchas & notes

  • DHCP is configured inside the interface settings, not in a separate services menu — people hunt for a DHCP section and do not find one.
  • The DNS setting defaults to *Same as System DNS*; if the FortiGate's own DNS is unset or wrong, every client inherits the problem. Check Network → DNS.
  • execute dhcp lease-list is the fast CLI check, and execute dhcp lease-clear <mac> releases a stuck lease.
  • DHCP relay is a different mode on the same interface — you cannot have server and relay simultaneously.
Vendor documentation ↗
Controller-managed gateway / switch / AP

Ubiquiti UniFi Network

GUI
Written against UniFi Network 8.x – 9.x (UDM / UDM-Pro / UXG)

Steps

  1. Settings → Networks → <network> — DHCP is part of the network definition.
  2. Set *DHCP Mode* DHCP Server, the *DHCP Range*, *Lease Time*, and optionally *DHCP Name Server* and *DHCP DNS Search Domain*.
  3. Save; the gateway provisions.

Gotchas & notes

  • Creating a network enables DHCP by default with an auto-chosen range — convenient, but it means a new VLAN starts serving addresses before you have thought about it.
  • The DHCP range must be inside the network's subnet and must not overlap your static addressing. UniFi will accept a range that collides with devices you assigned by hand.
  • *DHCP Name Server* defaults to Auto (the gateway). Point it at your own DNS server explicitly if you run internal DNS, or name resolution for internal hosts silently fails.
  • Advanced options (option 43, 66, custom options) are under the network's advanced DHCP settings and vary by controller version.
Vendor documentation ↗
Router / switch

Cisco IOS / IOS-XE

CLI
Written against IOS-XE 17.x (Catalyst 9000, ISR 1000/4000)

Steps

  1. Exclude the addresses you use statically first: ip dhcp excluded-address 192.168.10.1 192.168.10.99
  2. ip dhcp pool VLAN10network 192.168.10.0 255.255.255.0default-router 192.168.10.1dns-server 192.168.10.1lease 1
  3. Save: copy running-config startup-config
  4. Verify: show ip dhcp binding, show ip dhcp pool

Gotchas & notes

  • ip dhcp excluded-address is a global command, not part of the pool, and it is easy to forget. Without it IOS will happily lease out your gateway and server addresses.
  • The pool covers the whole network statement minus exclusions — there is no start/end range concept like other vendors.
  • service dhcp must be enabled (it is by default); no service dhcp somewhere in the config silently disables everything.
  • Clear a stuck binding with clear ip dhcp binding <ip> or clear ip dhcp binding *.
  • For clients on a different subnet, configure ip helper-address <dhcp-server> on their SVI instead of a local pool.
Vendor documentation ↗
NGFW

Palo Alto Networks PAN-OS

GUI or CLI
Written against PAN-OS 10.2 / 11.x

Steps

  1. Network → DHCP → DHCP Server → Add.
  2. Pick the *Interface*, set *Mode* enabled (or auto), add the IP *Pool*, and set the options: Gateway, Subnet Mask, Primary/Secondary DNS.
  3. Commit.
  4. Verify: Network → DHCP → DHCP Server shows leases, or CLI show dhcp server lease interface all

Gotchas & notes

  • *Mode* auto probes for an existing DHCP server on the segment and disables itself if it finds one. That is a useful safety feature and also a confusing one — a server in auto mode that never hands out addresses is doing this deliberately.
  • The Inheritance Source option can pull DNS and other options from a DHCP client interface (typically the WAN), which is handy for small branch setups.
  • The interface must be a Layer 3 interface with an IP, in a zone, in a virtual router — DHCP will not save otherwise.
  • Needs a Commit like everything else on the platform.
Vendor documentation ↗
Router / firewall (FreeBSD)

Netgate pfSense CE

GUI
Written against pfSense CE 2.7 / Plus 24.x

Steps

  1. Services → DHCP Server → select the interface tab → tick *Enable DHCP server on this interface*.
  2. Set the *Range* (from/to), and optionally DNS servers, gateway, domain name, and lease times.
  3. Save.
  4. Verify: Status → DHCP Leases.

Changed across versions

  • 2.7.0 and earlierISC DHCP only — it's the sole backend, no chooser exists.
  • 2.7.1+Kea is available as an opt-in preview alongside ISC DHCP (pick the backend in System → Advanced → Networking). ISC DHCP is EOL upstream and Kea is slated to become the default in a future release, but as of this writing neither the switchover nor an ISC removal date has landed — some advanced options and static-mapping behaviors still differ between the two, so check which one is active before assuming a setting applies.

Gotchas & notes

  • The interface must have a static IP; pfSense hides the DHCP server tab for any interface set to DHCP client, which looks like the feature is missing.
  • Leave *DNS servers* blank to hand out the firewall's own resolver (the usual correct choice when DNS Resolver is enabled) — filling it in with public DNS bypasses your local resolver and breaks internal name resolution.
  • The range must not include the interface IP; pfSense validates this and will refuse to save.
  • Status → DHCP Leases has a handy button to convert an active lease into a static mapping.
Vendor documentation ↗
NGFW

SonicWall (SonicOS)

GUI
Written against SonicOS 7.3.x (Gen7 TZ/NSa/NSsp; current General Release line is 7.3.2/7.3.3 — note Gen8 TZ80/TZ280+/NSa 2800+ hardware instead runs the separate SonicOS 8.x line)

Steps

  1. MANAGE → Network → DHCP Server (this lives under a flat Network → DHCP Server menu in the older SonicOS 6.5 UI).
  2. On the Dynamic DHCP Server tab, click Add.
  3. General settings: pick the Interface the scope serves (e.g., X1 or a VLAN sub-interface), then set Range Start, Range End, and Lease Time.
  4. Set the Gateway (usually defaults to the interface's own IP) and, if you want clients to get something other than the firewall's own resolvers, fill in DNS Server 1/2/3 on the same scope.
  5. Save, then confirm the new scope shows as Enabled in the scope list.
  6. Verify: same page's lease table (or the Current DHCP Leases tab) fills in as clients pick up addresses.

Changed across versions

  • 7.0SonicOS 7 replaced the classic 6.5 left-hand navigation with the MONITOR / INVESTIGATE / MANAGE tab structure; DHCP Server moved from a top-level Network menu item into MANAGE → Network → DHCP Server.

Gotchas & notes

  • There is no E-CLI equivalent for creating or editing a DHCP scope — SonicWall keeps the CLI to bootstrap/network-basics and diagnostics, and DHCP server config is GUI-only.
  • Unlike MikroTik or pfSense, which split pool + network + server into separate objects, SonicOS bundles range, gateway, and DNS into one scope tied directly to an interface — fewer moving parts, but people coming from a split model go looking for a separate 'pool' object that doesn't exist here.
  • The interface must already have a static IP in the target subnet before you create the scope; scopes created against an interface without one will sit inactive with no obvious error.
  • If you leave the scope's DNS fields blank, clients inherit whatever the firewall itself uses (set in Network → DNS) — not a public resolver by default, which trips people up if the box's own DNS was never configured.
Vendor documentation ↗
Cloud-managed business routers, switches & Orbi Pro/WiFi APs

NETGEAR Insight (Cloud Management Platform)

GUI or CLI
Written against Insight Cloud Portal/App 10.0.x (cloud mgmt); switch-side CLI varies by line — Smart Switch "Lite CLI" firmware 6.0.10.5+/7.0.9.5+, fully-managed M4200/M4300 CLI 12.0.11.x

Steps

  1. Router / Orbi Pro AP (the only devices that actually serve client subnets): Insight portal or app → Locations → [location] → Devices → [router or Orbi Pro]LAN Settings (or the VLAN tab if you're running multiple VLANs) → toggle DHCP Server on for that subnet → set Starting IP, Ending IP, Subnet Mask, Lease Time, Gateway IP (defaults to the device's own LAN IP), and the DNS Server(s) to hand to clients.
  2. There is no CLI path on the router/Orbi Pro side — no console port, no SSH, nothing. If the toggle isn't in the Insight GUI, the feature doesn't exist on that device, full stop.
  3. Smart Switches: don't run a DHCP server for client subnets in normal deployments — that's the router's job. Neither the switch web GUI nor the Lite CLI exposes a 'DHCP server' object.
  4. Fully-managed M4200/M4300 (Layer-3 capable) only: local switch GUI → System → IP Addressing/Routing menu (naming varies by model) → DHCP Server → Pool Configuration → create a pool, bind it to a VLAN interface, set network/mask, default-router, dns-server, lease time. CLI equivalent over console/SSH: configureip dhcp pool <name>network <subnet> <mask>default-router <gateway>dns-server <ip1> <ip2>exit, then bring the VLAN interface up with ip address <ip> <mask> and enable the DHCP service. Treat exact sub-keywords as firmware-branch-dependent — confirm with ? context help or show running-config after applying.

Gotchas & notes

  • The single biggest trap coming from a single-OS vendor: 'NETGEAR' isn't one CLI or one GUI. On a router or Orbi Pro AP, DHCP server config lives ONLY in the Insight cloud portal/app — there's no local fallback if Insight is unreachable or the account is locked out.
  • Smart Switches don't do DHCP server at all in typical use — if a Cisco/Aruba habit says 'just SSH in and configure the pool,' that instinct doesn't map onto this tier.
  • Only the M4200/M4300 line can act as a DHCP server, and only because it's a real L3 switch with the IOS-like CLI — everything below that tier is L2-only for this purpose.
  • Insight's DHCP Server toggle is per-VLAN/subnet, not a standalone top-level object — if you don't see it, you're probably looking at the wrong VLAN tab.
Vendor documentation ↗