在我公司的局域网中,我有一个Ubuntu 14.04服务器 ,在networking接口桥接的Windows 7(主机)上运行VirtualBox(作为guest虚拟机)(所以Ubuntu服务器属于局域网,其ip: 192.168.1.85 )。 我在这个服务器上有一个网站: mywebsite.com
LAN到Internet的网关是192.168.1.1 (Cisco 1841) – > 188.188.188.254作为公共IP。
有一台Windows 2008服务器作为局域网上的DNS服务器和DHCP服务器。 我添加了一个转发区“mywebsite.com”与Alogging – > 192.168.1.85 。
在局域网之外, mywebsite.com拥有Cisco 1841公有IP(188.188.188.254)的公开Dnslogging,
现在当我从 网上 ping mywebsite.com ,我很快得到了192.168.1.85 。
但是当我通过客户端上的浏览器进行连接时, 并不总是很快 。 所以我想知道:
我的请求是真正/ 直接parsing并转发到192.168.1.85 ,或者是他们发送出局域网 ,然后转发回到CISCO公众188.188.188.254:80和NAT到Ubuntu服务器之前被服务?
为了回答这个问题,我寻找了在局域网上跟踪我的linux客户端的DNS请求:
v@v-ss9:~$ dig mywebsite.com ; <<>> DiG 9.9.5-3-Ubuntu <<>> mywebsite.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24850 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;mywebsite.com. IN A ;; ANSWER SECTION: mywebsite.com. 3600 IN A 192.168.1.85 ;; Query time: 1 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Fri Aug 22 09:50:16 CST 2014 ;; MSG SIZE rcvd: 66
这个答案看起来正确: 192.168.1.85 。 但是看看这个:
v@v-ss9:~$ dig +trace mywebsite.com ; <<>> DiG 9.9.5-3-Ubuntu <<>> +trace mywebsite.com ;; global options: +cmd . 12955 IN NS h.gtld-servers.net. . 12955 IN NS g.gtld-servers.net. . 12955 IN NS m.gtld-servers.net. . 12955 IN NS i.gtld-servers.net. . 12955 IN NS l.gtld-servers.net. . 12955 IN NS k.gtld-servers.net. . 12955 IN NS j.gtld-servers.net. . 12955 IN NS d.gtld-servers.net. . 12955 IN NS b.gtld-servers.net. . 12955 IN NS c.gtld-servers.net. . 12955 IN NS a.gtld-servers.net. . 12955 IN NS e.gtld-servers.net. . 12955 IN NS f.gtld-servers.net. ;; Received 516 bytes from 127.0.1.1#53(127.0.1.1) in 18 ms mywebsite.com. 172800 IN NS ns3.rmi.fr. mywebsite.com. 172800 IN NS ns4.rmi.fr. CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0QFMDQRCSRU0651QLVA1JQB21IF7UR NS SOA RRSIG DNSKEY NSEC3PARAM CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2 86400 20140825045016 20140818034016 6122 com. Imq8K9xlvFXlB4IjUkdxOc5YHoTEhqSQUlRSJ9QCIhd9wzGpWJ54AfVf WJ0SUKThalpzqS0cXdLGtNmuYgqLfwUMjpUlT4c+zJyx7I4QMPLImQZh Ov0xy3mUr7dLlymAJYGs9dLI2IaheLvpKTBwaV1gAvo8QEkU8VRiJ7gW 9dk= U0PIA23FHMVPTKSDHC9PJ1BEA9SIB65R.com. 86400 IN NSEC3 1 1 0 - U0PL33R61V6TCCPBS1171PROP57ASRD9 NS DS RRSIG U0PIA23FHMVPTKSDHC9PJ1BEA9SIB65R.com. 86400 IN RRSIG NSEC3 8 2 86400 20140825043502 20140818032502 6122 com. qsC5sJbwklao+OedCHpcYo56aQaY0N+7peKmPu8szvjAQoJFRWyuDfAh Nw/gvHXEMzG7tYLriQGVfsiK8GZdPXyG4Ghe1MNN4jOZnSahkT5LjlqL 5QyGC0QiClRMPDAYjUOFGQDkjOJcJYvTNkEyXC2BEpfLI5SwCbYqwqg3 RkE= ;; Received 585 bytes from 192.41.162.30#53(l.gtld-servers.net) in 297 ms mywebsite.com. 86400 IN A 188.188.188.254 mywebsite.com. 86400 IN NS ns3.rmi.fr. mywebsite.com. 86400 IN NS ns4.rmi.fr. ;; Received 204 bytes from 212.51.161.18#53(ns3.rmi.fr) in 310 ms
在这里,我得到了我的思科公开IP 188.188.188.254 !
感谢您的帮助。
这是正常的吗? 是!
dig + tracerecursion地parsing域。 它首先查询根服务器,等等。 任何parsing器默认情况下都是这样 ,
由于该站点位于您的局域网内,因此您可以跳过recursion并直接从您局域网的DNS服务器提供服务 – 您正在执行此操作。 此外,你可以指定一个本地的IP地址(这不会在公共互联网上工作) – 你正在做的。 当你查询域只是dig你的局域网的DNS服务器被直接查询 – 因此在回复中的本地IP地址。
另一方面, dig +trace忽略你的默认parsing器。 挖掘作为自己的parsing器,而模拟互联网上的parsing器会做什么。 由于本地IP地址无法从外部访问,因此您需要返回公有IP作为答案。 这正是你所看到的…
局域网上的浏览器是否使用本地IP访问网站? 大概! dig返回本地IP。 这表明您的DNS服务器实际上是将本地IP返回给LAN客户端,并且您的计算机实际上已configuration为使用LAN DNS服务器。 所以,除了发生奇怪的事情,是的。
你怎么确定? 服务器的日志是你的朋友。
如果Web服务器日志中的源IP与您的路由器的外部公用IP相匹配,则不会使用本地IP。
另一方面,如果源IP匹配您的浏览器的本地IP地址,那么使用本地IP IS。
你怎么能真的确定?
Wireshark的。 在浏览时进行数据包捕获。 看看有什么stream量去哪里。