<div dir="ltr"><div dir="ltr">On Wed, Oct 9, 2019 at 5:28 PM Owen DeLong <<a href="mailto:owen@delong.com">owen@delong.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
> URLs are an obvious candidate to consider because they're in use, seem<br>
> to basically work to identify routing endpoints, and are far from a<br>
> random, out of thin air, choice.<br>
<br>
In reality, you’re not really talking about URLs here, even. You’re talking<br>
about DNS host names. (The part before the // isn’t really part of what<br>
you want to consider in your network routing scenario, neither is anything<br>
that comes after the first /).<br>
<br>
It’s not that we couldn’t use some form of hierarchically structured human-<br>
readable name for this purpose… It’s that using DNS host names _REALLY_<br>
wouldn’t work well.<br></blockquote><div><br></div><div>Except what if we used basic textual representations for addresses that kind of looked like DNS names, but didn't actually try to use DNS names? Let's even assume we keep DNS largely unchanged, but introduced "B records" to handle the new addressing scheme, similar to how we introduced AAAA records to handle translating between names and IPv6 addresses. Perhaps we also add a special-case "TLD-alike" called .address to indicate when we want to connect to the specified address and not do a DNS lookup of the name we've requested? </div><div><br></div><div>For example, let's say my internet domain is <a href="http://nanog.org">nanog.org</a>. I might have DNS setup for <a href="http://nanog.org">nanog.org</a>, but I may also claim addressing space under <a href="http://nanog.org">nanog.org</a>. Since my ASN is 64500, I will use it to advertise "<a href="http://nanog.org">nanog.org</a>" to my peers: so when you check a looking glass for <a href="http://nanog.org">nanog.org</a>, you'll see that it's routing to AS 64500 just like any IPv4 or IPv6 announcement. </div><div><br></div><div>Now if you want to visit a website called <a href="http://www.nanog.org">www.nanog.org</a>, and you punch that into your web browser, it's going to do a DNS lookup. Assuming this addressing scheme is preferred over IPv4 or IPv6, the first thing your browser will do is a DNS lookup for a B record for "<a href="http://www.nanog.org">www.nanog.org</a>" - and in my <a href="http://nanog.org">nanog.org</a> zone, I'll have one or more B records pointing to the address hosting the site, for example:</div><div><a href="http://www.nanog.org">www.nanog.org</a>. IN B <a href="http://webserver1.nanog.org">webserver1.nanog.org</a></div><div>Upon receiving this, your browser will then initiate a port 443 TCP connection (or UDP for QUIC or whatever its protocol of choice is, in this, the year 3305) to <a href="http://webserver1.nanog.org">webserver1.nanog.org</a>, which is what will be in the packet headers. Its upstream router will see this and route it until it reaches a member of the DFZ at which point that DFZ router will then determine that "<a href="http://webserver1.nanog.org">webserver1.nanog.org</a>" is part of "<a href="http://nanog.org">nanog.org</a>" and that "<a href="http://nanog.org">nanog.org</a>" is announced by AS64500 which is available from two transit providers, prefer one of them based on whatever traffic engineering rules are the norm in 3305, and send the packet on to the next hop for that route. </div><div>On the other hand, if you wish to simply load whatever comes up when you make an HTTPS request to port 443 on <a href="http://webserver1.nanog.org">webserver1.nanog.org</a>, you might enter "<a href="https://webserver1.nanog.org.address/">https://webserver1.nanog.org.address/</a>" which will then skip the DNS check and simply try connecting to <a href="http://webserver1.nanog.org">webserver1.nanog.org</a>. <br></div><div><br></div><div>When I think about it, this actually seems shockingly reasonable, potentially massive RAM requirements for routers aside (we're getting there anyway!). Am I missing something? </div><div><br></div></div></div>