-
Notifications
You must be signed in to change notification settings - Fork 0
ARPA DNS Population
IXP Manager can generate your ARPA DNS entries for your peering IP space as per the hostnames configured on each VLAN interface.
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.
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 (invlan-cli/arpa/) from which to load the
index.cfg` template file.
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.