<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 18/04/2023 1:40 am, Jiaming Zhang
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:DB9PR08MB7606FAAF0C3708FC7A187E30979C9@DB9PR08MB7606.eurprd08.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>
          <div>
            <div dir="ltr"><span id="ms-outlook-ios-cursor"></span></div>
            However, I got a question on the syntax of <code>also-notify</code>​, what
            I can see from bind9's user manual, the target of
            <code>also-notify</code>​ can be <code><remote-servers>
              | <ipv4_address> [ port <integer> ] |
              <ipv6_address> [ port <integer> ]</code>​,
            does this means that I can use domain names of the server
            instead of IP? Both name server has IPv4 (single or
            multiple) and IPv6 glued with the domain name, and I was
            wondering if by setting domain name instead of IP, bind will
            intelligently find if it would need to communicate with
            which IP (like it currently do with
            <code>notify yes</code>​). I asked because if by any chance
            for whatever reason sending notify was failed to a certain
            IP, it may look up any other available IP that is defined
            with the related domain name (at least from my observation).
          </div>
        </div>
      </div>
    </blockquote>
    <p>As Greg said, it needs to be IP addresses, not host names. The
      documentation defines "<remote-servers>" as follows:<br>
    </p>
    <pre>    A named list of one or more ip_addresses with optional tls_id, server_key, and/or port. A remote-servers list may include other remote-servers lists. See primaries block.</pre>
    <blockquote type="cite"
cite="mid:DB9PR08MB7606FAAF0C3708FC7A187E30979C9@DB9PR08MB7606.eurprd08.prod.outlook.com">
      <div dir="ltr">
        <div>
          <div dir="ltr">I was also confused what you exactly referred
            to with '"primaries" (or "masters" in old terminology)
            statement that includes the correct key name', I assume you
            mean I need to point which is the master and the keys to
            communicate with this specific master on the slave server.
            For the reference, I attached the related config on slave
            below.</div>
          <div dir="ltr"><br>
          </div>
          <div dir="ltr">```</div>
          <span dir="ltr"
            style="font-family:-webkit-standard;text-decoration:none">zone
            "example.com" IN {</span>
          <div dir="ltr"
            style="font-family:-webkit-standard;text-decoration:none">
            <div>type slave;</div>
            <div>masters { <ip of master>; };</div>
            <div>file "/path/to/file";</div>
            <div>allow-query { any; };</div>
            <div>notify yes; # will become "explicit"</div>
          </div>
          <span dir="ltr"
            style="font-family:-webkit-standard;text-decoration:none">};</span>
          <div dir="ltr">```</div>
        </div>
      </div>
    </blockquote>
    <p>What I was trying to say was the primaries/masters block above
      needs to include the key name. Also you may not even need your
      secondaries (slaves) to send notifies - unless you have a
      hierarchical structure where your secondaries need to notify
      downstream secondaries? e.g. In the simplest case you might have
      your secondaries using:<br>
    </p>
    <blockquote>
      <p>zone "example.com" IN {<br>
        type slave;<br>
        masters { 192.0.2.2 key "internal.example.com"; };<br>
        file "/path/to/file";<br>
        allow-query { any; };<br>
        notify no;<br>
        };<br>
      </p>
    </blockquote>
    <p>NB: In all my examples "192.0.2.2" is the primary (master) and "192.0.2.1"
      is the secondary (slave).<br>
    </p>
    <p>Nick.</p>
  </body>
</html>