3.6 KiB
3.6 KiB
DNS to IPv6 subnet resolver
ℹ️ Info: This script can not be used on its own but requires the base installation. See main README for details.
Table of Contents
Description
This script resolved IPv6 addresses from a domain and calculates the Subnet from the configured subnet length.
Requirements and installation
Just install the script:
$ScriptInstallUpdate dns-to-ipv6-subnet-resolver "base-url=https://git.s1q.dev/phg/routeros-scripts-custom/raw/branch/main/";
/system/script/set [find name="dns-to-ipv6-subnet-resolver"] policy=read,write,test,policy
Configuration
Edit global-config-overlay and add the following variables.
| Variable name | Required | Data type | Example | Description |
|---|---|---|---|---|
PhgIpv6AddressList |
true | String | resolved_ipv6_subnets |
IPv6 address list (address list which will contain the resolved subnets) |
PhgDomainToIpv6Subnet |
true | tuple | {"example.com";64;"example.com"}; |
Object containing a domain, a prefix length and a comment for the List entry |
PhgIpv6AddressListCommentPrefix |
false | String | Resolved subnet for |
If set, prefixes the comment for the address list |
PhgIpv6AddressList
Example:
:global PhgIpv6AddressList "resolved_ipv6_subnets";
PhgDomainToIpv6Subnet
Example:
:global PhgDomainToIpv6Subnet {
{"example.com";64;"example.com"};
{"example.net";56;"example.net - Home IP of John Doe"};
};
PhgDomainToIpv6Subnet tuple variables:
| Object variable | Data type | Example | Description |
|---|---|---|---|
| Domain | String | "example.com" |
The domain which the IPv6 address should be resolved |
| Prefix length | Integer | 64 |
The prefix length for the resolved IPv6 address. Used to calculate the subnet address |
| Comment | String | "example.com" |
Comment for the list entry |
PhgIpv6AddressListCommentPrefix
Example:
:global PhgIpv6AddressListCommentPrefix "Resolved subnet for";
Usage and invocation
How to run the script manually:
/system/script/run dns-to-ipv6-subnet-resolver;
Setup a Scheduler to run the script regularly:
/system/scheduler/add name="dns-to-ipv6-subnet-resolver" interval="00:05:00" policy="read,write,test,policy" on-event="/system/script/run dns-to-ipv6-subnet-resolver;";