我正在构build由设备中的以太网连接的多个子设备组成的设备。 设备将连接到客户networking。 客户networking可以使用私有IP地址。 与内部networking的地址冲突将是一个问题(连接到两个networking的子设备将会被混淆)。 IPv6不是一个选项。
我应该购买IPv4地址吗? 或者,也许我可以逃脱使用TEST-NET-3(203.0.113.0/24)或类似的东西? 最佳做法是什么?
@yoonix发送了一个可能有解决scheme的链接。
链接本地,也被称为APIPA。
169.254.0.0/16 – 这是“本地链接”块。 如RFC3927中所述,它被分配给单个链路上主机之间的通信。 主机通过自动configuration获取这些地址,例如当找不到DHCP服务器时。
如果我是你的客户,我肯定会想要自己configuration和/或使用DHCP(这是我不知道的,也许是一个老的标准?),但是在没有那些,这正是APIPA应该使用的。
编辑 – 鉴于你现在声明IP地址必须是静态的,因为你的解决scheme中的单个主机将对应于你的网关设备中的防火墙规则,我想这将花费一点努力,让你的工作与链接本地IPv4寻址; 努力你说你不会消耗。 所以,你基本上必须做这个可configuration的。 你可以用一个默认的,一个不太可能被客户使用的,但是你必须有一个机制,在冲突的情况下,它可以被改变。 无论是由客户,还是由您作为实施/ UAT的一部分。
使其可configuration。
我应该购买IPv4地址吗?
是啊。 试试。 首先,你不买他们,你通过会员“租赁”他们。 其次,这需要一个AS和2个上行链路。 第三,这需要一个原因,“我们不想假设一个合适的networking基础结构”是导致笑声(和拒绝)的原因,不是你分配IP地址。
或者,也许我可以逃脱使用TEST-NET-3(203.0.113.0/24)
有可能。 直到有一天,人们因为忽视而要求欧玉修理东西的费用。
最佳做法是什么?
使其可configuration。 或者使用IPV6 – 在那里你可以得到一些保留。
来自维基百科: 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。
有一件事你似乎忽视了:你如何假设你能够与设备通信,或者设备能够与其他设备通信,反之亦然,如果你没有configuration设备的IP地址对于客户端networking? 如果您在客户端networking中未使用的networking(您:192.168.1.0/24 – Them:10.0.0.0/8)中分配一个IP地址,那么您如何设想networking通信正常? 这就是为什么您应该将设备configuration为开箱即用的DHCP,并允许客户端在之后进行静态configuration。
如果你不能使用DHCP,那么使用APIPA。
从理论上讲,任何私人IPnetworking都可以被任何专用networking所使用,所以我怀疑你会find一个最佳实践,或者如果你对这个地址进行硬编码,那么这个networking将会普遍适用。 最好的做法是使其可configuration,并允许客户端networking分配设备一个私人地址(例如通过DHCP)。
如果这不是一个选项,我发现几乎没有人使用172.16.0.0/12的上半部分,所以这就是我使用的。 (我想我正在172.25.0.0/16运行, 172.25.0.0/16 )。我还没有遇到地址冲突,并且我将VPNjoin了很多私人networking。
如果你必须使用IPv4私有地址,我认为这是你能做的最好的, 10.0.0.0/8块被广泛使用, 192.168.0.0/16块是几乎所有的默认块,只剩下一个是172.16.0.0/12 。 当然,这个块通常用于VPN,为了避免地址冲突,由于其他私有networking块的广泛使用,所以使用高地址,因为(根据我的经验),它是该块中使用最less的子网。
我们正在devise完全相同的东西,并决定使用随机的fc00:nnnn前缀来使用IPv6站点本地地址。
假设这些子设备都不需要设备外部的直接连接,则应使用此回路networking(127.0.0.0/8)。
RFC 5735 /第3节
环回在维基百科
你的“主控制器”能否运行一个DHCP服务器/在其“内部”接口上提供DHCP租约?
我过去为我们公司的一个可能有用的商业产品做了一些事情。 该设备有两个以太网端口,其中之一是为了从PC“直接”连接。 这个问题是相似的; 我们希望避免与客户的内部LAN(可能在私有IPnetworking上)以及与全世界的IP地址冲突。
此设备上的逻辑是基于其“公共”LAN端口(eth0)上自己的IPconfiguration,在“直接”LAN端口(eth1)上dynamicconfigurationDHCP服务器(通过命令行选项“udhcpc”)。 无论设备是通过DHCP还是通过静态设置获取自己的IP地址,应用该设置的模块也将更改DHCP服务器configuration以避免冲突。
例如,如果设备获得地址192.168.0.100/netmask 255.255.255.0(在eth0上),它将为下一个可用networking192.168.1.0/255.255.255.0configuration自己的DHCP服务器(在eth1上)。
它将从这些networking中select一个(按优先顺序):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
希望这可以帮助。