Я создаю устройство, состоящее из нескольких подустройств, подключенных через Ethernet внутри устройства. Устройство подключится к сети клиента. Сеть клиента может использовать частные IP-адреса. Конфликт адресов с внутренней сетью будет проблемой (подустройство, подключенное к обеим сетям, будет перепутано). IPv6 не вариант.
Стоит ли покупать адреса IPv4? Или, может быть, я могу сойти с рук с помощью TEST-NET-3 (203.0.113.0/24) или что-то в этом роде? Какова лучшая практика?
Ответы:
@yoonix отправил ссылку, которая может иметь решение.
Link-local, также известный как APIPA.
169.254.0.0/16 - Это блок "link local". Как описано в RFC3927, он выделен для связи между хостами по одному каналу. Хосты получают эти адреса с помощью автоматической настройки, например, когда не удается найти DHCP-сервер.
Если бы я был вашим клиентом, я бы, конечно, захотел бы иметь возможность настроить это сам и / или использовать DHCP (который, я не знаю, может быть, давно установленный стандарт?), Но в отсутствие это именно то, для чего предполагается использовать APIPA.
Изменить. Учитывая, что теперь вы заявляете, что IP-адреса должны быть статическими для отдельных хостов в вашем решении, поскольку они будут соответствовать правилам брандмауэра на вашем устройстве шлюза, я полагаю, что вам потребуется немало усилий, чтобы эта работа работала со связью. локальная адресация IPv4; усилия, которые вы говорите, вы не будете тратить. Итак, вы по сути должны сделать это настраиваемым. Вы можете отправить его по умолчанию, который менее вероятно будет использоваться клиентом, но у вас должен быть механизм, с помощью которого он может быть изменен в случае конфликта. Либо клиентом, либо вами как частью реализации / UAT.
источник
Сделайте это настраиваемым.
Да. ПОПРОБУЙ ЭТО. Во-первых, вы не покупаете их, вы «арендуете» их по членству. Во-вторых, для этого требуются AS и 2 канала связи. В-третьих, для этого требуется причина, а «мы не хотим предполагать, что сетевая инфраструктура правильная» - это причина, приводящая к смеху (и отказу), а не к выделению IP-адресов.
Возможно. До того дня, когда кто-то спросит у вас стоимость ремонта вещей из-за грубого пренебрежения.
Сделайте это настраиваемым. Или используйте 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.Кажется, вы упускаете из виду одну вещь: как вы думаете, что вы сможете общаться с устройством или что устройство будет иметь возможность общаться с другими устройствами, и наоборот, если вы не настроите IP-адрес устройства ДЛЯ клиентской сети? Если вы назначаете IP-адрес в сети, которая не используется в клиентской сети (вы: 192.168.1.0/24 - Them: 10.0.0.0/8), то как, по вашему мнению, будет работать сетевое соединение? Вот почему вы должны настроить устройство для использования DHCP «из коробки» и позволить клиенту статически настроить его позже.
Если вы не можете использовать DHCP, используйте APIPA.
источник
Теоретически, любой частный диапазон IP-адресов может использоваться любой частной сетью, поэтому я сомневаюсь, что вы найдете лучшую практику или что-нибудь, что будет универсально применимо, если вы жестко кодируете адрес. Рекомендуется сделать его настраиваемым и разрешить клиентской сети назначать устройству частный адрес (например, через DHCP).
Если это не вариант, я нахожу, что вряд ли кто-то использует верхнюю половину
172.16.0.0/12
, так что это то, что я использую. (Я думаю, что я продолжаю работать172.25.0.0/16
, если быть точным.) У меня еще не было конфликта адресов, и я перехожу во многие частные сети.Если вам нужно использовать частный адрес IPv4, я думаю, это лучшее, что вы сможете сделать, так как этот
10.0.0.0/8
блок широко используется, а192.168.0.0/16
блок используется по умолчанию практически для всего, остался бы только один172.16.0.0/12
. Конечно, этот блок часто используется для VPN, чтобы избежать конфликтов адресов из-за широкого использования других блоков частной сети, поэтому используйте верхние адреса, поскольку (по моему опыту) они являются наименее используемыми подсетями в этом блоке. ,источник
Мы проектируем точно такую же вещь и решили использовать локальные адреса сайтов IPv6 со случайным префиксом fc00: nnnn.
источник
Предполагая, что ни одному из этих подустройств не требуется прямое подключение за пределами устройства, для этого следует использовать сеть с обратной связью (127.0.0.0/8).
RFC 5735 / Раздел 3
Loopback в Википедии
источник
Может ли ваш «главный контроллер» запустить DHCP-сервер / предоставлять DHCP-аренду на своем «внутреннем» интерфейсе?
В прошлом я что-то делал для одного из коммерческих продуктов нашей компании, который мог бы пригодиться. Устройство имело два порта Ethernet, один из которых был предназначен для «прямого» подключения с ПК. Проблема была похожа; мы хотели избежать конфликта IP-адресов с внутренней локальной сетью клиента (возможно, в частной IP-сети), а также со всем миром.
Логика на этом устройстве состояла в том, чтобы динамически настроить DHCP-сервер («udhcpc», с помощью параметров командной строки) на «прямой» порт LAN (eth1) на основе его собственной конфигурации IP на его «общедоступном» порту LAN (eth0). Независимо от того, получил ли устройство свой собственный IP-адрес через DHCP или статическую настройку, модуль, который применил эту настройку, также изменил бы конфигурацию DHCP-сервера, чтобы избежать конфликта.
Например, если устройство получит адрес 192.168.0.100/netmask 255.255.255.0 (на eth0), оно настроит свой собственный DHCP-сервер (на eth1) для следующей доступной сети 192.168.1.0/255.255.255.0.
Он может выбрать одну из этих сетей (в порядке приоритета): 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 на том же сайте.