
나는 2개의 무선 인터페이스가 있는 Pi를 가지고 있습니다. 그 중 하나는 네트워크 게이트웨이에 연결되어 있고 다른 하나는 액세스 포인트 역할을 합니다.호스트.
AP는 DHCP나 NAT 소프트웨어를 실행하지 않으며, 단순히 여러 장치가 AP에 연결할 수 있도록 Hostapt를 실행합니다.
내 노트북을 이 액세스 포인트에 연결하려고 합니다.
고정 IP 주소를 사용하고 게이트웨이 주소, DNS 등을 수동으로 입력하면 완벽하게 작동합니다.
그러나 DHCP를 사용하여 연결을 시도하면 작동하지 않습니다. Wireshark에서 연결 시도 시 초기 DHCP 검색 패킷이 액세스 포인트로 전송되는 것을 볼 수 있습니다. 그러나 Pi에서 실행되는 Python으로 작성한 일부 브리징 소프트웨어가 있음에도 불구하고 이 패킷은 게이트웨이에 연결된 인터페이스 밖으로 전달되지 않습니다.
소프트웨어는 단순히 패킷을 수신한 반대 인터페이스로 패킷을 보냅니다(기능을 지나치게 단순화했지만 이것이 이 시나리오의 일반적인 요점이며 네트워크 브리지입니다). 따라서 AP 인터페이스는 DHCP 패킷을 수신하고 이를 게이트웨이로 전달해야 하며, 게이트웨이는 DHCP 제안 등으로 응답해야 합니다.
소프트웨어는 브리징 소프트웨어를 통과한 랩톱의 다른 DHCP 알림 메시지뿐만 아니라 브리징 소프트웨어가 현재 랩탑으로 전송하는 다른 DHCP 검색/제안/요청/응답을 볼 수 있는 방식으로 작동합니다. 방송.
이러한 DHCP Discover 패킷이 게이트웨이로 전달되지 않는 이유가 Hostapd 액세스 포인트의 일부 설정이나 기능 때문인지 궁금합니다.
나는 문제가 DNS 등에서 완벽하게 작동하기 때문에 내가 작성한 코드에 있지 않다고 확신합니다.
더 나아가 DHCP 검색 패킷을 수동으로 제작하면 문제 없이 게이트웨이에 연결된 인터페이스에 의해 전달 및 출력됩니다. DHCP 패킷은 IP 주소를 얻으려는 랩톱에서 자동으로 전송될 때만 전달되지 않습니다. 연결을 시도하는 액세스 포인트에서.
액세스 포인트는 IP 주소를 직접 제공할 필요가 없지만 네트워크의 실제 DHCP 서버에 연결하여 IP 주소를 올바르게 할당할 수 있다고 가정합니다.
패킷이 다른 인터페이스로 전달되기 전에 액세스 포인트에 의해 흡수되는 것처럼 보이는 이유를 아는 사람이 있으면 알려주십시오!
답변1
"업링크" 측에서 WPA2를 사용하고 있다고 가정합니다. 암호화 시 WPA2가 MAC 주소에 연결되므로 이는 작동하지 않습니다. 따라서 패킷 중계가 작동하지 않습니다.
프록시 arp 또는 IP 전달을 사용하여 무언가를 구성해야 합니다.
Python으로 새로운 것을 만들려고 한다면 걱정하지 마십시오. 모든 것이 Linux 커널에 있습니다. 하지만 기억하세요: DHCP Discover는 브로드캐스트이며 응답은 송신 MAC에 대한 레이어 2 유니캐스트입니다. 따라서 여기에서 번역하면 패킷 내부를 다시 작성해야 합니다. Raspi는 정확히 이를 수행하는 스위치이므로 DHCP 릴레이 설정을 실험하는 것이 더 쉬울 수 있습니다.
첫 번째 권장 사항은 중간 상자에서 NAT 및 DHCP 서버와 함께 작동하는 설정을 얻은 다음 두 번째 단계로 보다 투명한 중간 상자를 향해 작업하는 것입니다.