답변:
재미있는 질문입니다. 기본적으로 동일한 LAN에 두 개의 DHCP 서버가있는 경우 주소를 제거하는 경쟁이있을 것이며 누가이기는지 확신 할 수 없습니다. 연결이 끊긴 단일 장치는 이전과 동일한 주소를 다시 얻지 못합니다. 또는 주소가 동일한 두 개의 장치가있을 수 있습니다.
따라서 둘 중 하나를 차단하는 것이 좋습니다. 가장 쉬운 것은 다음과 같습니다.
먼저 주소를 그리는 범위가 겹치지 않도록하십시오 . 하나는 192.168.1.11-74, 다른 하나는 192.168.1.139-202 일 수 있습니다. 적어도 이것은 충돌을 방지합니다.
이제 AP가 유선 클라이언트에 IP 주소를 제공하지 못하게합니다. AP가 eth1 의 라즈베리에 꽂혀 있다고 가정하면 다음 명령이 수행됩니다.
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
우리는 끝났습니다. 두 의견 :
DHCP는 프로토콜 UDP에서 포트 67과 68을 사용합니다. 이러한 통신을 차단하면 유선 클라이언트의 DHCP 요청이 AP의 DHCP 서버에 도달하지 못하게됩니다. 따라서 유선 고객은 라즈베리에서만 서비스를 제공합니다.
둘째, AP를 라즈베리에 직접 연결 해야합니다 (라즈베리에는 이미 사용되는 이더넷 포트가 하나만 있습니다. USB- 이더넷 어댑터를 구입할 수 있으며 라즈베리에는 두 번째 이더넷 카드가 있음). 그 이유는 AP를 스위치에 꽂으면 DHCP 요청 및 응답이 라즈베리를 거치지 않고 AP에서 도달 / 수신되므로 iptables 명령은 쓸모가 없기 때문입니다.
편집하다:
위의 iptables 규칙은 또한 dhcp 요청이 AP에서 라즈베리로 흐르는 것을 방지하므로 현재 192.168.1.0xx 범위의 DHCP 주소가 라즈베리에 의해 유선 클라이언트에 제공되는 상황입니다. 192.168.1.1xx 범위의 주소는 AP가 WiFi 클라이언트에 제공합니다. 적어도 이것은 질서 정연합니다.