/octodns-netbox

Primary LanguagePythonMIT LicenseMIT

octoDNS meets NetBox

A NetBox source for octoDNS.

Based on IP address information managed by NetBox, automatically creating A/AAAA records and their corresponding PTR records.

At this time, NetBox does not have a field 'hostname' in IPAddress, so we use the 'description' field as a comma-separated list of hostnames (FQDNs).

Example config

The following config will combine the records in ./config/example.com.yaml and the dynamically looked up addresses at NetBox.

You must configure url and token to work with the NetBox API.

providers:

  config:
    class: octodns.provider.yaml.YamlProvider
    directory: ./config

  netbox:
    class: octodns_netbox.NetboxSource
    url: https://ipam.example.com/api
    token: env/NETBOX_TOKEN

  route53:
    class: octodns.provider.route53.Route53Provider
    access_key_id: env/AWS_ACCESS_KEY_ID
    secret_access_key: env/AWS_SECRET_ACCESS_KEY

zones:

  example.com.:
    sources:
      - config
      - netbox  # will add A/AAAA records
    targets:
      - route53

  192/26.216.202.103.in-addr.arpa.:
    sources:
      - netbox  # will add PTR records (corresponding to A records)
    targets:
      - route53

  2.0.0.c.0.8.d.b.3.0.4.2.ip6.arpa.
    sources:
      - netbox  # will add PTR records (corresponding to AAAA records)
    targets:
      - route53