하나의 IP 주소에서 다른 인터페이스를 통해 트래픽 라우팅

하나의 IP 주소에서 다른 인터페이스를 통해 트래픽 라우팅

로컬 네트워크와 원격 네트워크가 있습니다. 내 로컬 네트워크에는 라우터, 우분투 박스 및 TV가 있습니다. 원격 네트워크에는 라우터와 Raspberry Pi가 있습니다. 로컬 우분투 박스와 원격 라즈베리 파이는 와이어 가드 터널을 통해 연결됩니다.

목표는 원격 Raspberry Pi를 통해 TV를 인터넷에 연결하여 TV의 인터넷 요청이 원격 네트워크의 공용 IP에서 오는 것처럼 보이도록 하는 것입니다. 이를 위해 우분투 상자를 TV용 게이트웨이로 설정한 다음 TV의 로컬 IP에서 트래픽을 와이어가드 인터페이스(wg0)로만 전달하여 결국 원격 라즈베리 파이에 도달하도록 해야 합니다. 그러나 이것은 작동하지 않습니다. 트래픽이 wg0에 도달하지 않는 것 같습니다.

우분투 박스와 라즈베리 파이 모두에서 IP 전달이 활성화되어 있습니다. 다음과 같이 정책 기반 라우팅을 추가했습니다.

ip rule add from <TV local IP> table wg0
ip route add default via <rpi wireguard IP> dev wg0 table wg

또한 다음과 같이 wg0 인터페이스에서 iptables를 구성합니다.

iptables -A FORWARD -i enp1s0 -o wg0 -j ACCEPT
iptables -A FORWARD -i wg0 -o enp1s0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE

내가 무엇을 놓치고 있나요?

답변1

처음부터 처음부터 Raspberry Pi의 와이어가드 인터페이스에서 이더넷 인터페이스로 트래픽을 전달하기 위한 관련 iptables 규칙이 누락되었음을 발견했습니다.

iptables -A FORWARD -i wg0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o wg0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

이제 Linux 박스를 TV용 게이트웨이로 설정하면 모든 트래픽이 필요에 따라 Wireguard를 통해 Raspberry Pi로 라우팅됩니다.

관련 정보