GNU/Linux >> Znalost Linux >  >> Linux

Linux DHCP server option 43 vendor-encapsulated-options, jak formátovat/kódovat?

DHCP Option 43 je trochu zvláštní zvíře. Prodejci s tím mohou zacházet, jak chtějí – někteří očekávají, že se čísla možností budou shodovat s čísly možností DHCP, jiní ne.

Základní struktura je 1 bajt pro ID volby, 1 bajt pro délku dat opce (n), potom n bajtů skutečných dat opce - a, opláchněte a opakujte.

Vezměme si příklad z dhcp-options. Nové řádky umístili na strategická místa, aby se daly lépe číst. Ve skutečnosti je nastavení, které nakonfigurovali, právě toto:

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;

Což se dost těžko čte, pokud nevíte, co hledáte. Pojďme si jednotlivé části rozebrat:

  • Bajt 1, 0x02 . To říká, že tento blok je konfigurován pro volbu číslo 2. Jak to bude interpretováno, záleží na dodavateli.
  • Bajt 2, 0x04 . To říká, že data pro možnost 2 budou zabírat další 4 bajty.
  • Bajty 3–6, 0xAC114101 . Tyto čtyři bajty jsou skutečná data. Jak jste viděli, když jste se je pokusili dekódovat, nejsou to čitelná data.
  • Bajt 7, začátek dalšího bloku možností , 0x03 . Celý řetězec začíná znovu, to říká, že následující konfigurace je pro možnost 3.
  • a tak dále, pro 3 sekce

Další příklad z wiki stránky snom:

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;
  • Bajt 1, 0x42 . 42 v hex je 66, pro kód možnosti 66.
  • Bajt 2, 0x0c . Délka 12 bajtů.
  • Bajty 3–14, 0x687474703a2f2f7465737400 . Toto je http://test s prázdným bajtem (0x00 ) na konci. Nejsem si jistý, proč to tam mají.
  • Bajt 15, 0x43 . Možnost 67.
  • Bajt 16, 0x12 . délka 18 bajtů.
  • Bajty 17–34, 0x736e6f6d2f73657474696e67732e70687000 . snom/settings.php . Opět null byte na konci.

Řekněme tedy, že potřebujete vytvořit volbu 43 s http://phone.example.com jako možnost 66 a phonesettings.txt jako možnost 67.

  • Bajt 1, kód možnosti 66, 0x42
  • Bajt 2, délka 24 bajtů na http://phone.example.com , takže 0x18
  • Bajty 3–26, data. 0x687474703a2f2f70686f6e652e6578616d706c652e636f6d
  • Bajt 27, kód možnosti 67, 0x43
  • Bajt 28, délka 17 bajtů na phonesettings.txt , takže 0x11
  • Bajty 29–45, data. 0x70686f6e6573657474696e67732e747874

Takže úplný konfigurační řetězec :

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;

Pokud to nefunguje, zkuste přidat nulové bajty na konec datových řetězců (a podle toho zvětšete pole délky) jako v jejich příkladu – mohou si přát buď nulové bajty na konci každé možnosti, nebo sudý počet bajtů pro délku každé možnosti. To je nevýhoda možnosti 43 – mohou si dělat, co chtějí!


To je rozhodně ten nejhnusnější způsob, jak nakonfigurovat volbu 43. Místo toho byste měli použít syntaxi ISC "vendor option space", která vám umožní získat lidské čtení toho, co jste nakonfigurovali, a vyhnout se chybám:

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


Nezapomeňte použít místní zapouzdření:

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;

Linux
  1. Jak na SSH na Linuxu z Androidu

  2. Jak nastavit SSH bez hesla v systému Linux

  3. Takto funguje linuxový server

  1. Jak rozdělit a naformátovat disk v systému Linux

  2. Jak formátovat USB disky v Linuxu

  3. Jak nainstalovat virtualizační Linux Server

  1. Jak nainstalovat Minecraft server na RHEL 8 Linux

  2. Jak vytvořit server CS:GO na Linux VPS

  3. Jak nainstalovat a nakonfigurovat DHCP server v Linuxu