서로 다른 두 인터페이스에서 서로 다른 서브넷 IP에 액세스

서로 다른 두 인터페이스에서 서로 다른 서브넷 IP에 액세스

eth0 또는 wlan1에 연결된 장치에 액세스할 수 있도록 Raspberry Pi를 구성하려고 합니다.

원하는 기능은 다음과 같습니다.

  • 사용자는 wlan1을 통해 RPi AP에 연결하고 IP(192.168.4.x)를 부여받습니다.
  • eth0을 통해 RPi에 연결되고 IP(192.168.5.x)가 부여되는 별도의 장치
  • 사용자는 로컬 IP 주소를 통해 eth0 연결된 장치의 구성 인터페이스에 액세스할 수 있습니다.

나는 dnsmasq를 사용하여 각 인터페이스에 DHCP 서버를 설정했는데 그들은 아주 행복하게 IP를 제공하고 있습니다.

# dnsmasq.conf
interface=wlan1
dhcp-range=wlan1,192.168.4.2,192.168.4.99,24h

interface=eth0
dhcp-range=eth0,192.168.5.1,192.168.5.99,24h

listen-address=::1,127.0.0.1,192.168.5.1,192.168.4.1

또한 인터페이스 간에 트래픽을 전달하기 위해 iptables를 업데이트했습니다.

sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i wlan1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan1 -j ACCEPT

그러나 실제로 다른 IP에 액세스하는 것에 관해서는 여전히 약간의 혼란이 있습니다. 몇 가지 경로를 설정해야 한다고 생각하지만 이를 정확히 구현하는 방법을 찾는 데 어려움을 겪고 있습니다.

wlan0 연결을 통해 192.168.4.x 및 192.168.5.x IP를 핑합니다. 여기에 이미지 설명을 입력하세요

그리고 eth0 연결의 ...4.x 및 ...5.x에서: 여기에 이미지 설명을 입력하세요

iptables 및 netstat 출력:

pi@rak-gateway:~ $ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
pi@rak-gateway:~ $ netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0
192.168.4.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan1
192.168.5.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0

답변1

그러나 실제로 다른 IP에 액세스하는 것에 관해서는 여전히 약간의 혼란이 있습니다. 몇 가지 경로를 설정해야 한다고 생각하지만 이를 정확히 구현하는 방법을 찾는 데 어려움을 겪고 있습니다.

라우팅에 관해 기억해야 할 점은경로에 있는 모든 컴퓨터특정 패킷을 어디로 보낼지 알아야 합니다.

따라서 A가 RaspPi에 192.168.4.x로 연결되고 B가 192.168.5.y로 연결되면

  • 192.168.5.*/24로 향하는 패킷은 192.168.4.?로 이동한다는 것을 알아야 합니다. RaspPi의 주소입니다.
  • B는 응답할 때 192.168.4.*/24로 가는 패킷이 192.168.5.?로 가는 것을 알아야 합니다. RaspPi의 주소입니다.

A와 B가 RaspPi에만 연결되어 있고 RasPi IP 주소가 기본 게이트웨이로 설정된 경우 무료로 제공됩니다. 그렇지 않은 경우(예: A와 B도 다른 항목에 연결되어 있거나 기본 게이트웨이를 알리도록 구성하지 않았기 때문에) dnsmasq경로를 설정해야 합니다.A에 대해. 비.

A 또는 B에서 직접 정적으로 이 작업을 수행하거나 DHCP를 사용하여 경로를 배포할 수 있습니다(방법은 첫 번째 Google 링크 참조).여기, 자세한 내용은 Google을 참조하세요).

어떤 경우든 디버깅에는 다음이 포함되어야 합니다.경로를보고A와 B 모두에서(Linux에서는 을 사용할 수 있습니다. ip route get 1.2.3.4여기서 1.2.3.4는 대상 주소입니다).

답변2

업데이트해 주셔서 감사합니다.

제가 제안하고 싶은 첫 번째 사항은 eth0DHCP 범위를 시작하도록 수정하는 것입니다 192.168.5.2. 현재는 에서 시작하는 것 같습니다 192.168.5.1.

다음 포스팅은 을 통해 연결된 기기의 라우팅 테이블 eth0과 를 통해 연결된 기기의 라우팅 테이블입니다 wlan1.

라우팅 테이블을 가져오기 전에 두 장치 모두 DHCP를 성공적으로 수행했고 예상한 서브넷에 주소가 있는지 확인하세요.

관련 정보