GateKeeper Modules#

GateKeeper is built up of a number of modules, each of which is responsible for a specific task. Some modules can be enabled/disabled using config keys in YAML, but the Router module requires the use of a certain binary/docker-image.

This is because the Router module is heavily reliant on the Netlink API, which is only available on Linux. Separating the Router module into a separate binary/docker-image allows for the use of GateKeeper on other platforms as a DHCP/DNS server while also making it easier to maintain the router module without impacting other features.

DNS#

The DNS module is a simple recursive DNS server that can be used to resolve DNS locally. It includes a local domain list that can be used to resolve local DNS entries (such as router, mediapc, etc) or just a way to override DNS entries as this local list is considered before a recursive request is made upstream.

Configuration#

The DNS module is loaded if the config file contains the DNS key.

Below are the list of configuration options for the DNS module.

KeyDescriptionDefault
InterfaceThe interface the UDP socket will bind toeth0
LocalDomainsA map of DNS names to IP addresses
UpstreamServersThe upstream DNS servers to use8.8.8.8, 1.1.1.1
BlocklistsA list of host file formated files that will be used to block DNS requests
BlockedDomainsA list of domains to outright block

DHCP#

The DHCP module is a simple DHCP server that can be used to provide DHCP to devices on the network.

Configuration#

The DHCP module is loaded if the config file contains the DHCP key.

KeyDescriptionDefault
InterfaceNetwork interface for DHCP servereth0
StartAddrStarting IP address for DHCP pool10.0.0.2
EndAddrEnding IP address for DHCP pool10.0.0.99
DomainNameDomain name provided to DHCP clients
NameServersDNS servers provided to clients. If you have the DNS module enabled, you should include this device’s IP here
LeaseTTLDHCP lease time-to-live in seconds300
SubnetMaskSubnet mask for the network255.255.255.0
GatewayDefault gateway IP address10.0.0.1
ReservedAddressesMAC to IP address mappings for static reservations
LeaseFilePath to file storing DHCP lease information/var/lib/gatekeeper/leases

Web#

The Web module is a simple HTTP server that can be used to provide a web interface for GateKeeper.

Configuration#

The Web module is loaded if the config file contains the Web key.

KeyDescriptionDefault
AddressAddress and port for web server to listen on:8085
TLSTLS configuration for HTTPS
HTPasswdFilePath to htpasswd file for authentication. If this is not included, the module defaults to username:password admin:admin
PrometheusEnable Prometheus metrics endpoint. This is the same endpoint the DNS Statistics page uses, so disabling it here will disable that pagefalse