“设备区域网络”的专用地址的最佳选择


8

我正在构建一个设备,该设备由通过设备内部的以太网连接的几个子设备组成。设备将连接到客户网络。客户网络可以使用私有IP地址。与内部网络的地址冲突将是一个问题(连接到两个网络的子设备将被混淆)。不能选择IPv6。

我应该购买IPv4地址吗?或者,也许我可以摆脱使用TEST-NET-3(203.0.113.0/24)之类的麻烦?最佳做法是什么?


1
客户网络是否需要直接访问子设备,还是仅通过设备上的“管理”型LAN端口连接到设备?我之所以这样问,是因为EMC和其他公司在其SAN / SAN上通过与客户网络相连的专用管理NIC使用专用光纤IP通信。mgmt NIC从客户LAN获得DHCP地址,或者被静态分配为驻留在客户网络上。
TheCleaner 2014年

1
您是否必须使用TCP / IP堆栈在“子设备”之间进行通信?如果您停留在第二层,则不会有IP冲突的任何问题。
jlehtinen 2014年

客户网络只是连接到云服务的手段。因此,客户的默认网关不应与内部网络重叠,否则,外向型子设备将错误地路由数据包。子设备之一仅是IPv4,没有其他控制方式。
proski 2014年

3
“ IPv6不是一种选择。” 我们现在有2014年。它应该是一个选择。“我应该购买IPv4地址吗?” 好吧,如果可以的话-在亚洲,他们也精疲力尽,在欧洲,...
glglgl 2014年

1
如果设备支持IPv6,我甚至不会考虑购买它们,因为我将不得不在设备的预期寿命之前更换他们,用的东西,支持IPv6。(好吧,无论如何,对于客户而言。在我的网络中,该网络已经是双协议栈,不支持IPv6的设备被认为不适合使用。)
Michael Hampton

Answers:


10

@yoonix发送了可能有解决方案的链接。

本地链接,也称为APIPA。

169.254.0.0/16-这是“本地链接”块。如RFC3927中所述,它被分配用于单个链接上主机之间的通信。主机通过自动配置来获取这些地址,例如在找不到DHCP服务器时。

如果我是您的客户,我肯定会希望自己选择配置它和/或使用DHCP(我不知道,这也许是一个已经建立的标准了吗?),但是在没有这些正是APIPA应该用于的用途。

编辑-既然您现在声明解决方案中各个主机的IP地址必须是静态的,因为这些地址将与网关设备中的防火墙规则相对应,我想您需要花点精力才能使该IP地址与链接一起使用本地IPv4寻址;你说你不会花费的努力。因此,您基本上必须使它可配置。您可以附带一个默认值,即客户端不太可能使用的默认值,但是您必须具有一种在发生冲突时可以对其进行更改的机制。由客户,或由您作为实施/ UAT的一部分。


该设备使用的子设备的一个内部网络上的DHCP(这是非常难以配置无DHCP)。让DHCP服务器分发链接本地范围内的IP地址感到很不舒服,因为它被明确禁止:tools.ietf.org/html/rfc3927#section-1.6如果我们不必在内部使用DHCP,那将是我的第一选择。
proski 2014年

不,不,不,正如我明确引用的那样,如果找不到DHCP服务器,APIPA(本地链接)地址就是设备将分配给它们的地址。我不建议您使用DHCP分配APIPA地址。
mfinni 2014年

子设备具有特定的角色,路由器必须根据这些角色配置iptables。我不希望路由器发现地址并相应地更改iptables。另外,分配随机IP地址意味着会有地址冲突,而且我不确定硬件是否足够聪明来解决它们。
proski 2014年

阅读:tools.ietf.org/html/rfc3927-任何使用本地链接的东西都需要实现冲突检测。
mfinni 2014年

我知道。这不可能在产品中实现。子设备具有其角色,并且具有针对它们的特定iptables配置。
proski 2014年

5

使其可配置。

我应该购买IPv4地址吗?

是的 试一试。首先,您不购买它们,而是通过成员资格“租赁”它们。其次,这需要一个AS和2个上行链路。第三,这有一个原因,“我们不想假设一个适当的网络基础设施”是导致笑声(和拒绝)的原因,而不是您分配IP地址的原因。

也许我可以摆脱使用TEST-NET-3(203.0.113.0/24)的困扰

可能吧 直到那天,由于严重的疏忽,有人要求oyu修理东西的费用。

最佳做法是什么?

使其可配置。或使用IPV6-在那里您可以进行一些保留。


获取IPv4地址以供内部使用(这样就不会将其路由到Internet)是一个非常有效的用例。不幸的是,在APNIC和RIPE地区,已经没有更多的IPv4地址了,因此转移到IPv6确实是唯一面向未来的解决方案……ULA地址听起来是一个不错的选择。
桑德·斯特凡2014年

3
这不是有效的用例。IPv4地址空间有限。这就是专用地址的用途。他们不会将其浪费在“无法或不愿意遵循既定的保护程序的公司”上。
TomTom 2014年

今天肯定不是有效的用例,我不知道是否曾经如此。您是否有任何文档来支持您的断言@SanderSteffann?
mfinni 2014年

3
@proski啊,不。请参阅-TEST-NET-3地址用于测试。使用它们进行测试的客户有一个有效的案例。SOmeone运送工具要么是无知的,要么是无视这些地址周围的政策,这是完全被忽视的。在两种情况下。
TomTom 2014年

1
@SanderSteffann我不了解APNIC,但是RIPE确实有IPv4地址-根据其网站上的最新状态更新,其中大约有1400万(IPv8的0.85)。
Jules 2014年

5
  1. 来自维基百科:Assigned as "TEST-NET-3" in RFC 5737 for use solely in documentation and example source code and should not be used publicly.-这告诉我,您不应该使用TEST-NET-3。

  2. 您似乎忽略了一件事:如何假设您可以与该设备通信,或者如果您未配置该设备的IP地址,则该设备将能够与其他设备通信,反之亦然对于客户端网络?如果您在客户端网络中未使用的网络中分配了IP地址(您:192.168.1.0/24-它们:10.0.0.0/8),那么您如何假设网络通信正常进行?这就是为什么您应该将设备配置为开箱即用使用DHCP,并允许客户端随后对其进行静态配置。

如果您不能使用DHCP,请使用API​​PA。


不会有任何公共用途。内部地址永远不会暴露给外部。通信使用NAT。但是当两个网络都使用重叠地址时,我无法进行NAT。
proski 2014年

1
好的,但是我的答案不是关于NAT。如果设备使用的IP地址与内部网络不在同一子网中,那么您的设备将如何与同一内部网络上的其他设备通信?
joeqwerty 2014年

显然,该设备包括一个在两个网络上都有地址的路由器。路由器执行NAT。客户仅通过云服务与设备对话。
proski 2014年

我不是想打招呼,但是那明显吗?我们只知道您在问题中告诉我们的内容,而您从未提及过这一事实。
joeqwerty 2014年

1
也许是我 我当然不是说有任何冒犯,也许这会很粗鲁,但是“连接到两个网络的子设备将被混淆”的说法如何暗示该设备具有内置路由器或具有路由功能?我的计算机有两个网络接口,每个接口都连接到不同的网络,但是我的计算机不是路由器。也许我只是愚蠢。在您的问题中,我没有读到任何让我相信您的设备具有内置路由器或路由功能的信息。无论如何,这种咆哮并不能帮助您,因此在此我将其删除。
joeqwerty 2014年

4

从理论上讲,任何私有IP范围都可以被任何私有网络使用,因此我怀疑您会找到最佳实践,或者如果您对地址进行硬编码,那将是通用的任何方法。最佳实践是使其可配置,并允许客户端网络为设备分配专用地址(例如,通过DHCP)。

如果这不是一个选择,我发现几乎没有人使用的上半部分172.16.0.0/12,所以这就是我所使用的。(172.25.0.0/16确切地说,我想我正在上运行。)我尚未在其上发生地址冲突,并且我将VPN接入许多专用网络。

如果您必须使用IPv4专用地址,那么我认为这是您能够做到的最好的选择,因为该10.0.0.0/8块被广泛使用,而该192.168.0.0/16块几乎是所有内容的默认值,剩下的只有一个172.16.0.0/12。当然,由于其他私有网络模块的广泛使用,此模块通常用于VPN,以避免地址冲突,因此请使用较高的地址,因为(以我的经验)它们是该模块中利用率最低的子网。


1
如果您在10.0.0.0/8范围内选择一个随机的/ 24,并假设现有设备合理地使用了地址(即,最多只有少数几个/ 24子网正在使用-我倾向于将我的网络设置视为由于它具有4个这样的子网[3个不同的位置,以及在它们之间路由的vpn],因此非常复杂,发生冲突的可能性<0.01%。我通常愿意在大多数情况下冒这个险。
Jules 2014年

1
@Jules,但由于其默认值而使用整个/ 8子网的那些(不幸的是常见的)网络除外。
格兰特(Grant)

到较小网络的路由具有优先权,应该起作用。我实际上可以在内部使用/ 29来进一步降低风险。但是,即使消除这种风险,无论多么小,也将是不利的。客户支持人员需要了解它并检查客户的网络配置。
proski 2014年

2

我们正在设计完全相同的东西,因此决定使用带有随机fc00:nnnn前缀的IPv6站点本地地址。


1
坏。获取一个ULA块。
TomTom 2014年

1

假设这些子设备均不需要设备外部的直接连接,则应为此使用环回网络(127.0.0.0/8)。

RFC 5735 /第3节

维基百科上的环回


3
这可能如何工作?他的“子设备”是单个主机。环回是用于主机与其自身进行通信。
mfinni 2014年

1
好点,我发誓我以前看过它的用法..但我不记得在哪里。我将很快删除我的答案。
yoonix 2014年

但是,该文档还有另一个我喜欢的建议!
mfinni 2014年

实际上,我正在考虑对内部网络使用127.0.1.0/255。不确定是否最好使用TEST-NET-3。
proski 2014年

1
赢得“T工作,可能会回送主机通信的环回地址只会自说自话的环回地址恰好是整个子网的大小,它仍然是host-only的地方。。
mfinni

1

您的“主控制器”可以在其“内部”接口上运行DHCP服务器/提供DHCP租约吗?

过去,我为公司的一种可能有用的商业产品做过一些事情。该设备具有两个以太网端口,其中一个用于从PC进行“直接”连接。这个问题很相似。我们希望避免IP地址与客户的内部LAN(可能在专用IP网络上)以及整个世界发生冲突。

该设备上的逻辑是根据其“公共” LAN端口(eth0)上自己的IP配置,在“直接” LAN端口(eth1)上动态配置DHCP服务器(通过命令行选项“ udhcpc”)。无论设备是通过DHCP还是通过静态设置获取自己的IP地址,应用该设置的模块也将更改DHCP服务器配置以避免冲突。

例如,如果设备获得地址192.168.0.100/netmask 255.255.255.0(在eth0上),它将为下一个可用网络192.168.1.0/255.255.255.0配置自己的DHCP服务器(在eth1上)。

它将从以下网络之一(按优先级顺序)中进行选择:192.168.0.0/24 ... 192.168.254.0/24 172.16.0.0/16 ... 172.31.0.0/16 10.0.0.0/8

希望这可以帮助。


如果我将其192.168.0.0/16用作站点前缀,但仅使用来连接到VLAN 192.168.0.0/24怎么办?192.168.1.0/24即使我在同一站点的另一个VLAN上使用它,您也被劫持了。
fukawi2 2014年

从理论上讲,这是一个好主意。实际上,一个子设备使用静态IP地址,另一个使用DHCP客户端。在出厂的产品中都不可配置。因此,应该预先配置地址,但是本地链接地址不起作用。
proski 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.