UNPKG

amazon-route-53-dns-zone-file

Version:

Makes DNS Zone File easy. Parses and validates BIND zone files and can be extended for custom features. Functionality is modular. Features are made open for extension and closed for runtime mutation. Written in TypeScript.

163 lines (146 loc) 4.74 kB
/** * Error parsing zone file: One resource cannot have multiple distinct TTL values */ export const duplicateDistanceRecord = ` $ORIGIN igloo.com. ;@ 100 SOA ns.igloo.com. username.igloo.com 1 2 3 4 5 www 300 IN A 1.1.1.1 www 600 IN A 2.2.2.2 `; /** * === too long === */ export const labelTooLong = ` $ORIGIN igloo.com. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.igloo.com. 60 IN A 1.2.3.4 `; export const nameTooLong = ` $ORIGIN igloo.com. 1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.1234567890.igloo.com. 60 IN A 1.2.3.4 `; /** * InvalidInput: 1 validation error detected: Value '-500' at 'changeBatch.changes.1.member.resourceRecordSet.tTL' failed to satisfy export constraint: Member must have value greater than or equal to 0 */ export const negativeTtl = ` $ORIGIN igloo.com. $TTL -100 igloo.com. 100 NS ns.igloo.com. ns.igloo.com. 100 A 2.3.4.5 www.igloo.com. 160 IN A 1.2.3.4 `; /** * escaped VALUES */ export const escapedCharacters = ` $ORIGIN igloo.com. \\097.igloo.com. 60 IN A 1.2.3.4\n\\304.igloo.com. 60 IN A 1.2.3.4 `; /** * InvalidChangeBatch: [RRSet of type CNAME with DNS name c.igloo.com. is not permitted as it creates a CNAME or alias loop in the zone.] */ export const cnameLoop1 = ` $ORIGIN igloo.com. c.igloo.com. 60 IN CNAME c.igloo.com. `; export const cnameLoop2 = ` $ORIGIN igloo.com. c.igloo.com. 60 IN CNAME b.igloo.com. b.igloo.com. 60 IN CNAME c.igloo.com. `; export const cnameLoop3 = ` $ORIGIN igloo.com. c.igloo.com. 60 IN CNAME b.igloo.com. *.igloo.com. 60 IN CNAME c.igloo.com. `; export const cnameForExistingRecord = ` $ORIGIN igloo.com. bar.igloo.com. 60 IN CNAME baz.igloo.com. bar.igloo.com. 60 IN A 1.2.3.4 `; /** * invalid - missing numbers? */ export const mxExample1 = ` $ORIGIN igloo.com. $TTL 86400 NS ns1.p68.dns.igloo.com. NS ns2.p68.dns.igloo.com. NS ns3.p68.dns.igloo.com. NS ns4.p68.dns.igloo.com. MX 10 mail.igloo.com MX 20 vpn.igloo.com MX 30 mail.igloo.com A 204.13.248.106 TXT "v=spf1 includespf.igloo.com ~all" mail A 204.13.248.106 vpn A 216.146.45.240 webapp A 216.146.46.10 webapp A 216.146.46.11 `; /** * InvalidChangeBatch: [Invalid Resource Record: FATAL problem: AAAARRDATAIllegalIPv6Address (Value is not a valid IPv6 address) encountered with 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffffffffff'] */ export const invalidIpForAAAA = ` $ORIGIN igloo.com. $TTL 1W @ AAAA ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffffffffff `; /** * valid ip, but ipv6 is for AAAA */ export const invalidIpv6ForA = ` $ORIGIN igloo.com. $TTL 1W @ A 2001:db8:a0b:12f0::1 `; /** * valid ip, but ipv4 is for A */ export const invalidIpv4ForAAAA = ` $ORIGIN igloo.com. $TTL 1W @ AAAA 20.0.0.0 `; export const invalidIpForA = ` $ORIGIN igloo.com. $TTL 1W @ A 01.0.0.0 `; /** * === txt === */ export const txtExampleInvalidSubdomain = ` $ORIGIN igloo.com. treefrog.ca. 3W IN TXT "v=spf1 a mx a:mail.treefrog.ca a:webmail.treefrog.ca ip4:76.75.250.33 ?all" treemonkey.ca. 3W IN TXT "v=DKIM1\; k=rsa\; p=MIGf..." treemonkey1.ca. 3W IN TXT "v=DKIM1\; k=rsa\; p=MIGf..." `; /** * === caa === */ /** * Invalid CAA value for record igloo.com.- One or more parameters in the Value field are invalid. * ^ regex for email of iodef */ export const caaExampleBadParams = ` $ORIGIN igloo.com. @ 3W CAA 0 issue "ca.igloo.com" @ 3W CAA 0 iodef "mailto:security@igloo.com" @ 3W CAA 0 iodef "http://iodef.igloo.com/" `; /** * must be an e-mail */ export const caaExampleNotEmailForIoDef = ` @ 3W CAA 0 iodef "http://iodef.igloo.com/" `; /** * === naptr === */ /** * InvalidChangeBatch: [Invalid Resource Record: FATAL problem: NAPTRRRDATANotValid (Invalid NAPTR record) encountered with 'rfc3403-1 86400 IN NAPTR -100 10 "u" "sip+E2U" "!^.*$!sip:information@foo.se!i" .'] */ export const naptrExampleInvalid = ` $ORIGIN igloo.com. rfc3403-1 86400 IN NAPTR -100 10 "u" "sip+E2U" "!^.*$!sip:information@foo.se!i" . `;