这是一个非常老的问题,但是在弄清互联网的工作原理时,我遇到了许多相同的问题。像其他答案一样,网络书籍对BGP和DNS进行了概述,但仍然让我感到困惑。例如,a.root-servers.net到m.root-servers.net被指定为根服务器,但是,如果DNS服务本身不能使用DNS,DNS服务如何知道在哪里可以找到这些服务器。
假定该答案已知IP,子网划分,DNS等基础知识。我正在解决我以及可能是提问者关于互联网如何工作的“空白”。我绝对不是专家,但这是我对差距的理解。
IP地址
首先要注意的是,当Internet以ARPANET开头时,每个人都知道每个人,并且IP地址的路由表都是手工编码的。我假设IP的分配过程是通过电话完成的。随着Internet变得越来越大,多个网络(AS)使用BGP来通告它们具有公共IP或可以通过其AS到达另一个AS的公共IP。那里有一个信任,那就是AS不会广告他们没有的IP。
如今,人们的信任度下降了。取而代之的是,ISP可以从IANA和区域机构下载并验证对每个AS的IP分配。现在,这些下载已通过公钥加密进行了身份验证。因此,当IANA“分配IP地址”时,他们正在更改其记录(或者实际上是地区机构在更改其记录)。所有其他AS都可以下载并验证其记录。
这些记录很重要,因为ISP无法使用其他具有IP地址的ISP的字眼。ISP可以将BGP通告与经过身份验证的IP记录进行比较。如果除IANA和RIR的身份验证记录中的内容外,任何BGP公告都将最后一个AS显示为AS,则BGP公告不会更改其自己的路由。
更常见的是,流氓ISP或AS可以通过他们没有的AS通告他们有一条路由。AS1已注册IP,AS5当前使用AS5-> AS4-> AS3-> AS1-> IP。AS2向AS5通告AS5-> AS2-> AS1-> IP的路由。除了AS2实际上与AS1没有连接。它可能会丢掉数据包,也许会挫败AS1的托管客户。或者,AS2可以是一个小型公司网络,与AS5和AS1进行多宿主配置。他们的路由器配置错误,并通过小型公司网络发布了一条路径。几乎所有ISP都放弃了其BGP客户的此类广告,而仅传递终止的BGP广告。
您更有可能遇到巴基斯坦的情况,即巴基斯坦试图通过此类IP劫持来关闭巴基斯坦的YouTube,并试图关闭巴基斯坦以外的YouTube,因为巴基斯坦以外的AS认为他们的BGP广告是正确的。
最后,对于这种IP劫持并没有完美的防御。在像美国这样的大多数国家/地区,此类BGP滥用可能会因违反合同而受到惩罚,而其他ISP则必须与该AS断开对等连接。ISP 也可以忽略整个IANA和RIR设备,并将IP地址重定向到其自己的服务器。但是,假设ISP没有任何CA的私钥,那么这对任何https站点都将无效。从经济上几乎没有收益。这仅在威权主义政府中发生,例如埃及最近关闭了从国外到其ISP的所有BGP广告。
DNS服务器
一旦IP表正确,DNS就会更简单。根服务器都是DNS服务器代码中的硬核IP地址。a.root-servers.net是198.41.0.4,并且IP地址在一个AS中是任播的。对于a.root-servers.net,AS是Verisign,并且有五个不同的站点。在美国,这两个站点是纽约和洛杉矶。如果您的地址是Main Street 123,并且您说:“您在哪个城镇都没关系,请转到123 Main Street,您会发现我的其中一家商家。” 纽约州和洛杉矶的123 Main Street都会对所有顶级域名给出相同的答案。AS(在这种情况下为Verisign)内部通过OSPF,内部BGP和其他路由协议找出哪个服务器的跳数最少。因此,丹佛的路由器可能去洛杉矶,而芝加哥的路由器可能去纽约。
根服务器之一为com顶级域提供哪个IP地址。然后,该域将为yoursite.com提供域。注册商实际上与经营顶级域名的任何人都有合同。因此,如果顶级域当前没有yoursite.com的记录,则它有权使用其Who-is服务器添加记录。然后,通过注册商授予您对yoursite.com的DNS记录的访问权限,您可以将其DNS服务器中的记录更改为您的IP地址。
由于DNS都取决于将多个IP地址传送到正确的位置,因此与AS一起对IP注册表进行身份验证,然后对BGP进行身份验证时,您将遇到与以前相同的问题。这是http网站的关键。Https具有证书的附加保护。因此,ISP无法将对自己的根服务器和顶级域服务器的请求重新路由以为citibank.com提供自己的IP。如果他们这样做,则给用户的IP地址将是一个不同的IP地址,但是他们的服务器将没有花旗银行的私钥。