Skip to content

blocky

Introduction

Blocky is configured to serve as network wide DNS server and ad blocker. To achieve some kind of high availability, multiple instances are deployed as pods using the replicas value of the Helm chart. As upstream DNS server cloudflared is configured.

For clients to resolve domains using Blocky. Their DNS server setting needs to be set to the IP of one of the cluster nodes. This can be done via DHCP or manually. Alternatively the routers upstream DNS servers can be set to one nodes IP address.

Example DNS queries
# regular dns using dig
$ dig @<node-ip> pascaliske.dev

# dns-over-https using dog cli (1)
$ dog @https://blocky.<domain>/dns-query pascaliske.dev
  1. Check ouf the dog cli tool here.

Created Resources

Kind Name
Namespace blocky
HelmRelease blocky
Certificate blocky.${DOMAIN_INTERNAL}
IngressRoute api
ConfigMap blocky-config, grafana-dashboard-dns

CLI

Blocky provides a CLI tool to interact with the instance. The following command can be used to access it inside the cluster:

$ kubectl exec -it --namespace blocky deploy/blocky -- ./blocky <command>

For more information on the blocky command itself visit their docs.