GNU/Linux >> Belajar Linux >  >> Linux

Opsi server DHCP Linux 43 opsi-enkapsulasi-vendor, bagaimana cara memformat/menyandikan?

Opsi DHCP 43 sedikit aneh. Vendor dapat memperlakukannya sesuai keinginan mereka - beberapa mengharapkan nomor opsi cocok dengan nomor opsi DHCP, yang lainnya tidak.

Struktur dasarnya adalah 1 byte untuk ID opsi, 1 byte untuk panjang data opsi (n), lalu n byte dari data opsi aktual - dan, bilas dan ulangi.

Mari kita ambil contoh dari dhcp-options. Mereka telah menempelkan baris baru di tempat strategis agar lebih mudah dibaca. Pada kenyataannya, setelan yang mereka konfigurasikan hanya seperti ini:

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;

Yang cukup sulit dibaca kecuali Anda tahu apa yang Anda cari. Mari uraikan bagian-bagiannya:

  • Byte 1, 0x02 . Dikatakan bahwa blok ini adalah konfigurasi untuk opsi nomor 2. Cara menafsirkannya bergantung pada vendor.
  • Byte 2, 0x04 . Artinya, data untuk opsi 2 akan menempati 4 byte berikutnya.
  • Byte 3-6, 0xAC114101 . Empat byte ini adalah data aktual. Seperti yang Anda lihat saat mencoba mendekodekannya, itu bukan data yang dapat dibaca.
  • Byte 7, awal dari blok opsi berikutnya , 0x03 . Seluruh rantai dimulai lagi, ini mengatakan bahwa konfigurasi berikut adalah untuk opsi 3.
  • dan seterusnya, untuk 3 bagian

Contoh lain, dari halaman wiki 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;
  • Byte 1, 0x42 . 42 dalam hex adalah 66, untuk kode opsi 66.
  • Byte 2, 0x0c . Panjang 12 byte.
  • Byte 3-14, 0x687474703a2f2f7465737400 . Ini adalah http://test dengan byte null (0x00 ) pada akhirnya. Tidak yakin mengapa mereka memilikinya di sana.
  • Byte 15, 0x43 . Opsi 67.
  • Byte 16, 0x12 . Panjang 18 byte.
  • Byte 17-34, 0x736e6f6d2f73657474696e67732e70687000 . snom/settings.php . Sekali lagi, byte nol di bagian akhir.

Jadi, misalkan Anda perlu membuat opsi 43 dengan http://phone.example.com sebagai opsi 66 dan phonesettings.txt sebagai opsi 67.

  • Byte 1, kode opsi 66, 0x42
  • Byte 2, panjang 24 byte pada http://phone.example.com , jadi 0x18
  • Byte 3-26, data. 0x687474703a2f2f70686f6e652e6578616d706c652e636f6d
  • Byte 27, kode opsi 67, 0x43
  • Byte 28, panjang 17 byte pada phonesettings.txt , jadi 0x11
  • Byte 29-45, data. 0x70686f6e6573657474696e67732e747874

Jadi, string konfigurasi lengkap :

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;

Jika itu tidak berhasil, coba tambahkan byte nol ke akhir string data (dan tambah bidang panjang yang sesuai) seperti pada contohnya - mereka mungkin menginginkan byte nol di akhir setiap opsi atau jumlah byte genap untuk setiap panjang pilihan. Itulah kelemahan dari opsi 43 - mereka dapat melakukan apa pun yang mereka inginkan!


Itu pasti cara yang paling jelek untuk mengonfigurasi opsi 43. Anda sebaiknya menggunakan sintaks "ruang opsi vendor" ISC yang memungkinkan Anda membaca manusia tentang apa yang Anda konfigurasikan dan menghindari kesalahan:

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


Ingatlah untuk menggunakan enkapsulasi lokal:

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. Cara SSH di Linux dari Android

  2. Cara Mengatur SSH Tanpa Kata Sandi di Linux

  3. Beginilah Cara Server Linux Beroperasi

  1. Cara mempartisi dan memformat drive di Linux

  2. Cara Memformat Drive USB di Linux

  3. Cara Menginstal Virtualisasi Server Linux

  1. Cara menginstal server Minecraft di RHEL 8 Linux

  2. Cara Membuat CS:GO Server Di VPS Linux

  3. Cara menginstal dan mengkonfigurasi server DHCP di Linux