Linux: 동일한 IP 범위를 사용하여 두 개의 서로 다른 네트워크에 연결

Linux: 동일한 IP 범위를 사용하여 두 개의 서로 다른 네트워크에 연결

GoPro 카메라의 WiFi 기능을 켜면 GoPro 카메라가 WiFi 핫스팟을 생성합니다. 서로 다른 IP 범위를 사용하도록 할 방법이 없으며 여러 무선 인터페이스를 사용하여 동시에 여러 GoPro에 연결해야 합니다.

GoPro는 두 네트워크 모두에서 IP 10.5.5.9로 제공됩니다.

wlan1의 IP 주소를 다른 범위로 변환하는 방법은 무엇입니까? 예를 들어, wlan1의 보완 주소 10.5.5.*를 10.1.1.*로 사용할 수 있나요?

이렇게 하면 10.1.1.9에서 하나의 GoPro에 액세스하고 10.5.5.9에서 다른 GoPro에 액세스할 수 있습니다.

답변1

우선, 이것을 실제로 테스트할 방법이 없으므로 몇 가지 세부 사항이 잘못되었다고 확신합니다. 그러나 기본적으로 주소가 10.5.5.9인 일부 패킷이 wlan1로 나가고 다른 일부 패킷이 나가도록 특수 라우팅이 필요합니다. 패킷이 wlan0으로 나가면(가정), 10.5.5.9와 10.1.1.9 사이를 변환하려면 DNAT 및 SNAT 규칙이 필요합니다.

후자는 다음과 같은 규칙이 됩니다.

# iptables -t nat -A OUTPUT -d 10.1.1.9 -j DNAT --to-destination 10.5.5.9
# iptables -t nat -A INPUT -i wlan1 -j SNAT --to-source 10.1.1.9

라우팅을 위해 10.5.5.9 패킷이 wlan0에서 먼저 나가는 것으로 가정합니다. 따라서 패킷을 10.1.1.9(또한 DNATed)로 보내려면 부팅할 대체 라우팅 테이블이 필요합니다. 테이블은 다음과 같이 설정할 수 있습니다.

# ip route add table 26 dev wlan1
# ip route add table 26 10.5.5.9 dev wlan1
# ip rule add priority 10000 fwmark 26 table 26

마지막 규칙은 26으로 표시된 패킷에 테이블 26을 사용하도록 하며, 여기에는 다른 규칙이 필요합니다.

# iptables -t mangle -A OUTPUT -d 10.1.1.9 -j MARK --set-mark 26

wlan1과 wlan0이 부팅된 후 설정이 완료되고 해당 주소는 모두 10.5.5.0/24에 있다고 가정합니다. 이전 설정에서는 10.5.5.9 패킷을 wlan0을 통해 직접 라우팅해야 합니다(따라서 wlan1 연결은 사용되지 않은 상태로 유지됩니다).

이 솔루션에서 네트워크 경로는 다음과 같습니다. 10.1.1.9로 전송된 패킷은 먼저 표시된 다음 10.5.5.9로 DNAT됩니다. 이 태그는 10.5.5.9 패킷을 wlan1로 전달하는 라우팅 테이블 26을 활성화합니다. 반환 패킷은 모두 SNAT 처리되고 10.1.1.9에서 나옵니다.

이론적으로는 유효합니다 :-)

관련 정보