Параметр сервера Linux DHCP 43 инкапсулированных опции поставщика, как форматировать/кодировать?

У меня была та же проблема и после некоторого исследования, мне сказал наш iSeries сетевой гуру, что проблема состоит в том вследствие того, что:

1) Microsoft обновила их протокол CIFS в Windows 2008 2), IBM не сделала необходимые обновления ИХ netserver протокола для учета обновлений CIFS.

Поэтому наш iSeries, V5R4, НЕ сможет видеть общие диски. Я буду поэтому перемещаться в сервер окон 2003.

5
задан 15 August 2012 в 01:33
3 ответа

Параметр DHCP 43 - немного странный зверь. Поставщики могут относиться к этому как угодно - некоторые ожидают, что номера опций будут соответствовать номерам опций DHCP, другие - нет.

Базовая структура - 1 байт для идентификатора опции, 1 байт для длины данных опции (n ), затем n байтов фактических данных опции - и, промойте и повторите.


Возьмем пример из dhcp-options. Они поместили символы новой строки в стратегические места, чтобы их было легче читать. На самом деле настройки, которые они настроили, таковы:

02:04:AC:11:41:01:03:12:73:75:6e:64:68:63:70:2d:73:65:72:76:65:72:31:37:2d:31:04:12:2f:65:78:70:6f:72:74:2f:72:6f:6f:74:2f:69:38:36:70:63;

Что довольно сложно прочитать, если вы не знаете, что ищете. Разберем части:

  • Байт 1, 0x02 . Это говорит о том, что этот блок настроен для опции № 2. Как это интерпретируется, зависит от поставщика.
  • Байт 2, 0x04 . Это означает, что данные для варианта 2 займут следующие 4 байта.
  • Байты 3–6, 0xAC114101 . Эти четыре байта - фактические данные. Как вы видели, когда пытались его декодировать, это нечитаемые данные.
  • Байт 7, начало следующего блока опций , 0x03 . Вся цепочка начинается заново, это говорит о том, что следующая конфигурация предназначена для опции 3.
  • и так далее, для 3 секций

Другой пример, со страницы snom wiki:

42:0c:68:74:74:70:3a:2f:2f:74:65:73:74:00:43:12:73:6e:6f:6d:2f:73:65:74:74:69:6e:67:73:2e:70:68:70:00;
  • Байт 1, 0x42 . 42 в шестнадцатеричном формате - это 66 для кода опции 66.
  • Байт 2, 0x0c . Длина 12 байт.
  • Байты 3–14, 0x687474703a2f2f7465737400 . Это http: // test с нулевым байтом ( 0x00 ) в конце. Не знаю, почему они там это есть.
  • Байт 15, 0x43 . Вариант 67.
  • Байт 16, 0x12 . Длина 18 байт.
  • Байты 17-34, 0x736e6f6d2f73657474696e67732e70687000 . snom / settings.php . Опять же, нулевой байт в конце.

Итак, допустим, вам нужно создать опцию 43 с http://phone.example.com в качестве опции 66 и phonesettings.txt в качестве опции 67.

  • Байт 1, код опции 66, 0x42
  • Байт 2, длина 24 байта на http://phone.example.com , поэтому 0x18
  • Байты 3–26, данные. 0x687474703a2f2f70686f6e652e6578616d706c652e636f6d
  • Байт 27, код опции 67, 0x43
  • Байт 28, длина 17 байт на phonesettings.txt] 1217810 phonesettings. 45, данные. 0x70686f6e6573657474696e67732e747874

Итак, полная строка конфигурации:

42:18:68:74:74:70:3a:2f:2f:70:68:6f:6e:65:2e:65:78:61:6d:70:6c:65:2e:63:6f:6d:43:11:70:68:6f:6e:65:73:65:74:74:69:6e:67:73:2e:74:78:74;

Если это не сработает, попробуйте добавить нулевые байты в конец строк данных (и соответственно увеличить поле длины), как в их примере - им могут потребоваться нулевые байты в конце каждой опции или даже количество байтов для длины каждой опции. Это обратная сторона варианта 43 - они могут делать все, что захотят!

10
ответ дан 3 December 2019 в 00:59

Это определенно самый дурацкий способ настройки опции 43. Вместо этого вам следует использовать синтаксис ISC «пространство опций поставщика», который позволяет вам получить представление о том, что вы настроили, и избежать ошибок:

option space db;
option db.db-server code 1 = ip-address;
option db.loginid code 2 = text;
option db.db-name code 3 = text;

Jean-Yves Bisiaux

3
ответ дан 3 December 2019 в 00:59

Не забудьте использовать локальную инкапсуляцию:

option space cisco;
option cisco.wlc code 241 = array of ip-address;
option local-encapsulation code 43 = encapsulate cisco;
option cisco.wlc 10.7.3.6, 10.7.3.2;
2
ответ дан 3 December 2019 в 00:59

Теги

Похожие вопросы