NSVI(1)

πŸ“¦
version 1.85 Β· 3 versions
, in fedora 43

πŸ’– NSVI β€” the zone-editing bestie you didn't know you needed πŸ’–

okay so this is nsvi, from the Perl user-contributed manual pages, section 1. sit down, grab a boba, we're doing DNS πŸ’…


✨ NAME ✨

nsvi β€” transfer a zone, edit it, then upload the edits πŸ¦‹


🌸 SYNOPSIS 🌸

nsvi [-01cCdDghvV] [-k keyfile] [-y [hmac:]name:key]
     [-S mode|num] [-s server] <zone>

πŸ’œ DESCRIPTION πŸ’œ

so here's the whole vibe, bestie: nsvi fires off an AXFR request for the zone, then it opens up your editor so you can change literally whatever you want, and then it runs nsdiff | nsupdate to yeet those changes over to the server. no cap, that's the entire pipeline πŸ”₯

and here's the part that's giving main character energy: all the automatically-maintained DNSSEC records get stripped out of the zone before it ever reaches your editor πŸ‘‘ so you're not sitting there hand-editing stuff nobody should be touching. also you do not need to manually adjust the SOA serial number β€” it handles that, periodt ✨


πŸ’… OPTIONS πŸ’…

most of the nsvi options get passed along to nsdiff, and a few of them go to nsupdate. it's giving delegation πŸŽ€

  • -h β€” show you this documentation. hey, that's what you're reading rn 😭
  • -V β€” show version info ⭐
  • -v β€” verbose mode. she talks more πŸ—£οΈ
  • -n β€” interactive confirmation 🫢

so when you quit out of your editor, you'll get shown the changes, and then you get asked what's up: press U or Y to actually make the update, press E or R to go edit again, or press literally any other key to quit πŸ™ˆ

  • -01cCdD
  • -S mode|num

these ones get handed straight to nsdiff. for the deets, go read the nsdiff manual, iykyk πŸ“–

  • -s server[#port] β€” transfer the zone from the server you name in this option, and send the update request to that same place πŸ“¬ you can give a server host name or an IP address, optionally followed by a # and the port number.
and if you don't use the -s option? the zone gets transferred from localhost, and nsvi will use nsupdate -l to update the zone. lowkey the default route πŸ’«
  • -g β€” passed to nsupdate so it uses GSS-TSIG for UPDATE πŸ”
  • -k keyfile β€” a TSIG key file, passed to dig, nsdiff, and nsupdate. everybody's getting one 🎁
  • -y [hmac:]name:key β€” a literal TSIG key, also passed to dig, nsdiff, and nsupdate πŸ—οΈ

🌈 ENVIRONMENT 🌈

  • TMPDIR β€” where the temporary files live 🏠
  • VISUAL, EDITOR β€” which editor to use. $VISUAL wins if it's set, otherwise $EDITOR, otherwise it's vi. a whole hierarchy, obsessed 😌

πŸ‘‘ VERSION πŸ‘‘

this is nsvi-1.85 β€” <https://dotat.at/prog/nsdiff/> ⭐

written by Tony Finch <fanf2@cam.ac.uk> <dot@dotat.at> at Cambridge University Information Services. and the license tea: you may do anything with this. it has no warranty. do whatever, but nobody's got you if it breaks, fr fr πŸ’€


🫢 ACKNOWLEDGMENTS 🫢

big love to Tristan Le Guern for the -n option and Mantas MikulΔ—nas for the -g option πŸŽ€ and shoutout to David McBride and Petr MenΕ‘Γ­k for the useful feedback, we appreciate y'all πŸ’–


πŸ”₯ SEE ALSO πŸ”₯

nsdiff(1), nsupdate(1), dig(1) 🌸


and that's the whole page, bestie πŸ’œ this was perl v5.42.0, dated 2025-07-24 β€” go forth and edit your zones responsibly, slay βœ¨πŸŽ€πŸ’…

πŸ“¦ where this page comes from