Menjalankan dua Server DHCP di jaringan yang sama

9

Saya telah menghubungkan pi raspberry saya dengan titik akses nirkabel dan ingin menjalankan DHCP Server pada RPi untuk menetapkan IP dan gateway dengan benar. Ini karena RPi berfungsi sebagai gateway ke VPN. Sayangnya, jalur akses juga menjalankan DHCP Server yang tidak dapat saya nonaktifkan karena beberapa alasan. Apa cara terbaik untuk mendapatkan pengaturan yang benar secara otomatis dari spread RPi ke semua pengguna wifi?

sumber keuntungan
sumber

Jawaban:

13

Pertanyaan menyenangkan. Pada dasarnya, jika Anda memiliki dua server DHCP pada LAN yang sama, akan ada perlombaan untuk mengeluarkan alamat, dan Anda tidak bisa memastikan siapa yang menang: Anda mungkin berakhir dengan beberapa alamat yang dilayani oleh raspberry, beberapa oleh AP, dan satu perangkat, setelah terputus, tidak mendapatkan kembali alamat yang sama seperti sebelumnya. Atau, lebih buruknya, Anda mungkin memiliki dua perangkat dengan alamat yang sama.

Jadi, sebaiknya memblokir salah satu dari keduanya. Yang paling mudah adalah sebagai berikut:

  1. Pertama, pastikan rentang dari mana mereka menggambar alamat tidak tumpang tindih : Anda mungkin memiliki 192.168.1.11-74 untuk satu, 192.168.1.139-202 untuk yang lain. Setidaknya, ini mencegah konflik.

  2. Kami sekarang mencegah AP dari melayani alamat IP ke klien kabel. Misalkan AP dicolokkan ke raspberry di eth1 , maka perintah berikut akan dilakukan:

    sudo iptables  -A INPUT -i eth1 -p udp --dport 67:68 --sport 67:68 -j DROP
    sudo iptables  -A OUTPUT -i eth1 -p udp --dport 67:68 --sport 67:68 -j DROP  
    

Kita sudah selesai. Dua komentar:

DHCP menggunakan port 67 dan 68, pada protokol UDP; dengan memblokir komunikasi pada ini, Anda mencegah permintaan DHCP dari klien berkabel dari mencapai server DHCP pada AP; dengan demikian klien kabel hanya akan dilayani oleh raspberry.

Kedua, Anda harus mencolokkan AP langsung ke raspberry (saya tahu raspberry hanya memiliki satu port ethernet, yang sudah digunakan: Anda dapat membeli adaptor USB-to-Ethernet, dan raspberry Anda akan memiliki kartu ethernet kedua). Alasannya adalah bahwa jika Anda mencolokkan AP ke sakelar, maka permintaan dan balasan DHCP akan mencapai / berasal dari AP, tanpa melewati raspberry, sehingga perintah iptables tidak akan berguna.

EDIT:

Saya lupa mengatakan bahwa aturan iptables di atas juga mencegah permintaan dhcp mengalir dari AP ke raspberry, sehingga situasi yang Anda miliki sekarang adalah bahwa alamat DHCP dalam kisaran 192.168.1.0xx diberikan oleh raspberry ke klien berkabel, sementara alamat dalam kisaran 192.168.1.1xx diberikan oleh AP untuk klien wifi. Setidaknya, ini teratur.

MariusMatutiae
sumber
Terima kasih! Tapi ini berarti saya tidak bisa melakukan apa pun mengenai klien yang terhubung melalui wifi ke AP, kan?
bonanza
2
@bonanza Takut begitu: semua lalu lintas dari klien nirkabel ke Ap tidak pernah melewati raspberry, baik permintaan maupun balasan. Jadi tidak ada cara untuk memblokirnya: semuanya terjadi di dalam AP.
MariusMatutiae