Skip to content

ARPA DNS Population

Barry O'Donovan edited this page Sep 2, 2013 · 1 revision

IXP Manager can generate your ARPA DNS entries for your peering IP space as per the hostnames configured on each VLAN interface.

Writing / Altering Configuration Templates

Remember - use skinning to make changes to this or add your own. For example, if you set target above to bind and had you skin configured as myixpskin, then the configuration would be generated from application/views/_skins/myixpskin/vlan-cli/arpa/bind/index.cfg.

Contribute back - if you write a useful generator, please open a pull request and contribute it back to the project.

The follow variables are available for each member's IPv4 / IPv6 VLAN interface in the $addresses array:

[enabled]  => 1/0
[hostname] => ixp.rtr.example.com
[address]  => 192.0.2.0 / 2001:db8:67::56f
[arpa]     => 0.2.0.192.in-addr.arpa / f.6....0.2.ip6.arpa

As mentioned above, there is a complete example provided in application/views/clan-cli/arpa/bind which should give you all the details you need.

Generating the Configuration

All you need is the database ID of the VLAN you wish to generate the configuration for. You'll get this by hovering over any of the actions in the VLAN section of IXP Manager and examining the URL.

Then, by executing the following, all active VLAN interfaces will have a BGP configuration generated for them via:

${APPLICATION_PATH}/bin/ixptool.php -a vlan-cli.gen-arpa-entries -p vlanid=X,proto=6,target=bind

The available additional options are:

  • proto=[4|6] - (required) the protocol to generate the ARPA for.
  • target=qwerty - the target directory (in vlan-cli/arpa/) from which to load the index.cfg` template file.

Syncing the Configuration with the DNS Server

The provided Bind example comes with header.cfg and footer.cfg files which you can copy and skin and use to include any static configuration you may need.

If you DNS server is on the local machine, you can just redirect the output to an appropriate file and reload Bind. Otherwise you can script the generation to also scp the file to an appropriate server.

If you're using PowerDNS with MySQL (for example), you could write a generator that creates the appropriate REPLACE statements for example, and then pipe these into MySQL.