menggunakan CentOS dengan IP statis, Apakah ada cara untuk menentukan apakah server DHCP berjalan di jaringan menggunakan bash?
linux
networking
centos
dhcp
Steve
sumber
sumber
Jika tersedia di repositori ada dhcpdump
dari halaman manual:
sumber
Jika
tcpdump
tersedia bagi Anda, menjalankan program sebagai root dengan parameter berikut mungkin membantu Anda dalam menemukan server:Sayangnya, karena tata letak jaringan saya, saya tidak bisa mendapatkan jabat tangan DHCP langsung. Namun, saya memang melihat Permintaan DHCP dari iPad saya:
Setelah membiarkan `tcpdump 'berjalan semalaman, saya akhirnya melihat ACK ini:
Jika ketika menjalankan
tcpdump
perintah itu, dan Anda melihat Tawaran BOOTP / DHCP atau Ack (Nack), itu akan berasal dari server DHCP, dan alamat MAC server akan tepat setelah stempel waktu di baris pertama.Jadi server DHCP (valid) di sini memiliki alamat MAC a8: 39: 44: 96: fa: b8`.
Menggunakan salah satu dari banyak alat pencarian alamat MAC di web saya melihat MAC ini milik
A8:39:44 Actiontec Electronics, Inc
router saya.Untuk menangkap paket-paket server DHCP yang tidak benar ketika terjadi, saya harus membiarkan
tcpdump
proses ini berjalan di jendela terminal:tcpdump -i en0 -nev udp src port 67 and not ether host a8:39:44:96:fa:b8
Ini hanya akan menunjukkan kepada saya respons server DHCP dari host selain server DHCP saya yang valid, selama prosesnya berjalan di jendela sendiri.
Perintah berikut ini akan berjalan di latar belakang sampai 100 paket diambil, menambahkan pesan server DHCP jahat ke file
/tmp/rogue
. Sekali lagi, alamat MAC dari server DHCP Anda yang valid harus digunakan di tempat yang sesuai, serta deskriptor antarmuka pada sistem Anda.tcpdump -U -i en0 -c 100 -nev udp src port 67 and not ether host a8:39:44:96:fa:b8 >> /tmp/rogue 2>&1 &
`
sumber
tcpdump
perintah ini berjalan, itu akan menampilkan paket server DHCP yang dikirim oleh alamat MAC yang berbeda dari server DHCP Anda. Tentu saja, Anda harus memberikan alamat di tempat yang ditunjukkan ... Saya akan menempatkannya di jawaban saya saat ini, untuk mendapatkan format yang lebih baik.Dengan waktu yang cukup, mungkin untuk melakukan pendeteksian secara pasif: Ingatlah bahwa klien yang menginisialisasi mengirimkan siaran DHCPDISCOVER. Jika dhcpserver tersedia, ia akan memilih tawaran dan kemudian mengirimkan (lagi sebagai siaran!) DHCPREQUEST. Jadi
Keberhasilan dua poin pertama deopends pada jumlah host lain yang baru saja terpasang / di-boot ke jaringan dan juga waktu sewa.
sumber
Anda dapat mencoba membuat perangkat alias dan menggunakan klien dhcp dalam mode pengujian, di mana ia mencetak respons apa pun, tanpa benar-benar mengkonfigurasi ulang antarmuka:
Saya hanya memiliki akses ke kotak debian, jadi jika Anda memiliki implementasi dhcp lain, opsi dry-run mungkin berbeda, seperti untuk dhcpcd:
Saya dulu menjalankan skrip cron dengan sesuatu seperti ini, yang akan memberi tahu admin (saya!) Tentang server dhcp jahat.
sumber
ifconfig eth0:1 up
outputSIOCSIFFLAGS: Cannot assign requested address