GNUNET-ZONEIMPORT(1)

GNUNET-ZONEIMPORT πŸ’…βœ¨

okay bestie, welcome to the General Commands Manual for gnunet-zoneimport, page 1. yes it's a real one. yes it's a banger. let's go 🫢


🌸 NAME 🌸

gnunet-zoneimport β€” the girl who takes a whole DNS zone and drops it into your GNS zone, no cap πŸ’–


✨ SYNOPSIS ✨

gnunet-zoneimport [-c FILENAME | --config=FILENAME] [-h | --help]
                  [-m RELATIVETIME | --minimum-expiration=RELATIVETIME]
                  [-s MAPSIZE | --size=MAPSIZE] ⟨IP⟩

πŸ’œ DESCRIPTION πŸ’œ

okay so here's the tea πŸ“: gnunet-zoneimport reads a list of domain names (FQDN) from stdin, and for every single one of them it fires off DNS queries. literally every one. she's thorough like that.

then she checks if a local ego with a name matching the domain exists. and the way she does it is so specific, pay attention:

  • if the domain name is "example.fr", she checks whether an ego "fr" exists
  • but for a domain "example.com.fr", she looks for an ego called "com.fr" πŸ‘‘

if that ego is there, she converts the DNS records into GNS records β€” and yes, specifically converting NS records and glue records into GNS2DNS records β€” and adds them to the namestore under the label ("example" in the examples above). iconic behaviour honestly.

the arguments you hand to gnunet-zoneimport are a list of IP addresses of DNS servers to query. that's it. that's the input.

now, the vibe shift: gnunet-zoneimport will usually never terminate. she's the main character who refuses to leave the party. instead she checks when DNS records expire, and re-issues requests once the old DNS records have expired, so that GNS always has the latest data. forever. periodt.

she'll also issue many DNS queries in parallel (queen of multitasking πŸ’…), but she's rate-limited in various ways, so most DNS servers should easily handle the load. she'll also do a limited number of retries if queries fail β€” she's persistent but not unhinged.

gnunet-zoneimport operates incrementally. she'll check if the namestore already has (non-expired) records stored for a given name in the respective zone, and she will not issue those requests again. so it is totally fine to restart gnunet-zoneimport whenever your list of domain names changes. restart her, she doesn't mind πŸ¦‹

finally β€” and this one matters β€” gnunet-zoneimport keeps information for each domain name in memory. that's about 200 bytes per domain name, which is 1 GB for 5 million labels. she remembers everything. she's a Scorpio moon.


πŸŽ€ OPTIONS πŸŽ€

  • -c FILENAME | --config=FILENAME β€” use the configuration file FILENAME. that's the one, bestie πŸ“
  • -h | --help β€” print short help on options. when in doubt, ask her directly πŸ’–
  • -m RELATIVETIME | --minimum-expiration=RELATIVETIME β€” makes sure that imported DNS records never have an expiration time that is less than RELATIVETIME into the future. RELATIVETIME is a time given like "1 week" or "1 h". if DNS returns records with a shorter lifetime, gnunet-zoneimport will simply bump the lifetime to the specified value (relative to the time of the import). default is zero. yes, zero. the baseline. ⏰
  • -s MAPSIZE | --size=MAPSIZE β€” specifies the size (in number of entries) to use for the main hash map. the value you provide should be at least twice the number of domain names that will be given to the tool. this option is required for very large zones where the number of records encountered is too large for the automatic growth mechanism to work (that one is limited to at most 16 MB allocations for security reasons). do not worry about this unless you are importing millions of domain names from a zone. fr fr, don't stress it 🧚
  • ⟨IP⟩ β€” IP is the list of IPs given. 🫢

🌈 EXAMPLES 🌈

a typical invocation would be, and I quote:

$ gnunet-zoneimport 1.2.3.4 < names.txt

look at her go. slay. πŸŽ€


πŸ‘‘ SEE ALSO πŸ‘‘

gnunet-gns(1), gnunet-namestore(1)

the full documentation for gnunet is maintained as a Texinfo manual. if the info(1) and gnunet programs are properly installed at your site, the command

info gnunet

should give you access to the complete handbook,

info gnunet-c-tutorial

will give you access to a tutorial for developers. iykyk πŸ“š

depending on your installation, this information is also available in gnunet(7) and gnunet-c-tutorial(7).


πŸ’€ BUGS πŸ’€

report bugs by using https://bugs.gnunet.org or by sending electronic mail to ⟨gnunet-developers@gnu.org⟩. she wants to hear from you, genuinely 😭


and that's the whole page bestie β€” this one's from the Debian folks, dated April 23, 2018, living under the GNUNET-ZONEIMPORT(1) banner. go import a zone. you got this. πŸ’–βœ¨πŸ¦‹