Призначення унікальних діапазонів IP для декількох гаджетів USB Ethernet на одному хості


0

Зараз я розробляю вбудований пристрій під управлінням Linux, який дозволяє підключатися до хоста Windows за допомогою USB. Щоб досягти цього, я успішно використовую драйвер гаджетів USB Ethernet на цьому пристрої, і мій хост Windows 7 розпізнає його як адаптер USB Ethernet, надсилає запит DHCP, на який відповідає Udhcpd на пристрої, і IP-з'єднання можуть бути встановлені .

Це добре працює, коли до хоста Windows підключено лише один вбудований пристрій. При підключенні декількох пристроїв кожен udhcpd на кожному пристрої надаватиме однаковий діапазон IP та адресу хосту Windows, що унеможливить маршрутизацію до цих різних пристроїв.

Чи є спосіб, щоб різні udhcpds на різних вбудованих пристроях роздавали різні діапазони, не виправляючи udhcpd.conf деяким часом запуску випадковості?

Відповіді:


0

Ви насправді пробували це? Це має працювати. Не потрібно використовувати спеціальний udhcpd.conf. RFC2131 адреса з самого початку становища декількох серверів DHCP, щоб уникнути подібного роду конфліктів. Це як відповідальність сервера, так і клієнта.

3.1 Взаємодія клієнт-сервер - виділення мережевої адреси

...

  1. Кожен сервер може відповісти DHCPOFFER [...] Виділяючи нову адресу, сервери ОБОВ'ЯЗКОВО перевіряють, що запропонована мережева адреса вже не використовується; наприклад, сервер може пробувати запропоновану адресу за допомогою ICMP Echo Request.

...

  1. Клієнт отримує повідомлення DHCPACK з параметрами конфігурації. Клієнт ДОЛЖЕН виконати остаточну перевірку параметрів (наприклад, ARP для виділеної мережевої адреси) та відзначає тривалість оренди, вказану в повідомленні DHCPACK. У цей момент клієнт налаштовується. Якщо клієнт виявить, що адреса вже використовується (наприклад, за допомогою використання ARP), клієнт ПОВИНЕН надіслати повідомлення DHCPDECLINE на сервер і перезапустити процес конфігурації.

https://www.ietf.org/rfc/rfc2131.txt

Дійсно, це робить udhcpd, використовуючи ARP (і "TODO" зазначає, що він повинен використовувати ICMP):

http://git.busybox.net/busybox/tree/networking/udhcp/dhcpd.c#n191

http://git.busybox.net/busybox/tree/networking/udhcp/leases.c#n136

... з боку клієнта udhcpc також може зробити цю перевірку:

http://git.busybox.net/busybox/tree/networking/udhcp/dhcpc.c#n1713

Я не знаю, чи це справа з клієнтом Windows DHCP, але, як вказує RFC, він ДОЛЖЕН.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.