公司通常会让很多用户共享一个公共IP地址?
我希望答案是“不是很常见”,因为我正在开发取决于ip号码的软件非常独特。
自1995年以来,我只有一家公司工作过,也有不less公司为桌面客户端使用公共IP地址。 所以对我来说,答案是:确实很常见。
我强烈build议不要在部署v4的这个阶段部署软件,假定ipv4地址对最终用户是唯一的。
ipv6,这是一个不同的球类游戏。
我从来没有见过任何公司使用公共IP为他们的桌面或内部服务器,现在也很less有面向外部的服务器(例如networking服务器)有一个公共IP地址 – 通常这些NAT负载均衡器,或更多通常是dynamic服务器池中的虚拟服务器,所以甚至不存在。
NAT可能不会达到所有内部IP到外部的水平,通常是有范围的,但NAT以这种或那种forms使用是非常普遍的。
虽然一对一的IP到用户联盟对于互联网通信来说是非常罕见的,但是它们在Intranet通信中更常见。 networking内部的多个NAT网关并不常见,但也是闻所未闻的。 在遇到内部NAT的情况下,很可能是因为两个实体(可能由于合并)拥有自己的独立Internet访问权限,并且保持与另一个实体交谈的专用链接,并且该链接很可能被防火墙/ NAT。
即使一个公司有大量的公共IP地址,他们现在也更喜欢通过NAT来隐藏内部networking结构,这是出于安全原因。 大多数公司将使用提供NAT和防火墙function的组合盒。 因此,您可以安全地假设99.99%的时间在公司networking中的NAT。 如果您正在开发需要连接到公司内部计算机的应用程序,那么您肯定需要考虑各种“NAT穿越”技术之一。请参阅http://en.wikipedia.org/wiki/NAT_traversal (不是很容易与工作,但邪恶的必要性)。
这是非常普遍的。 如果它已经是你的应用程序的组成部分,那么也许你可以改变它来使用套接字(即NAT分配的IP地址和端口号)?
那么,如果你正在编写一个Web应用程序,那么你至less可以尝试获取代理(通常)为其内部客户端设置的X-Forwarded-For HTTP Header。 相同的组织使用NAT来使用HTTP代理进行外部访问并不罕见,因此您可以使用External IP:Internal IP对或散列。
但是,今天的话,不要指望IP地址的唯一性,NAT是非常普遍的,代理将继续在ipv6全面实施的时候。
在互联网的早期,它曾经比以前更常见,有大量的IP外部块。 我自己的公司刚完成了一个/ 16块的迁移。 我曾经在一个有2/8块的大学工作。
但是现在,公司不使用NAT是非常罕见的。 大的外部IP块并不是那么有用。 我目前的公司(刚刚从/ 16移除的那家公司)在10.0.0.0/8上build立了一个内部广域网,并且允许公司中的每台计算机具有“独特的”IP(尽pipe一个外部可访问的),成本要比我们原来的块要低得多。
有一些独特的东西 – IP地址和端口号的组合。 在NAT环境中,从外部看,多个内部客户端似乎具有相同的IP,但是每个客户端都有不同的端口号,与该IP地址配对。 (这一切都是关于IPv4的。)
但要小心,因为只要build立连接,配对(地址,端口)就是有效的。 如果连接closures并重新打开,则即使对于相同的客户端也可以配对新的端口。
有些系统使用它,如LogMeIn,要求客户端联系中央服务器,然后通过中央服务器路由所有通信,并通过该端口上的开放连接返回到客户端。
虽然NAT很常见,但另一种常见的情况是需要通过一组代理来代理所有HTTPstream量,以便所有HTTP / HTTPSstream量似乎来自一小组IP地址。
我曾在一家大型(50,000多名员工)公司工作的办公室为每个桌面分配了一个公共IP地址。 但是,所有入站stream量都被阻塞(除了已build立),并且端口80/443上的所有出站stream量也被阻塞。 所以,虽然我可以直接从我的桌面SSH连接到互联网上的任何IP地址,但是在常规端口上的所有网页浏览都必须通过代理进行。
我见过的另一家公司采取了不同的方法 – 每个内部客户端都分配了RFC1918地址,但是互联网的可路由性为零。 和以前一样,Web代理被用来获取到客户端的HTTPstream量,但是没有进行NAT路由。