iptables와 함께 TUN 인터페이스를 사용할 때 NAT 및 라우팅의 올바른 방법

iptables와 함께 TUN 인터페이스를 사용할 때 NAT 및 라우팅의 올바른 방법

편집: 저는 네트워킹과 새로운 것을 발견하는 초보자입니다 :)

나는 프로그래밍 방식으로 TUN 인터페이스를 만들었고 상호 작용할 수 있었습니다.

설정하고 실행해봤는데 ifconfig myTun 10.10.1.1/24 up

내가 볼 수 있듯이 작동 중이고 ifconfig핑이 울리고 있습니다.10.10.1.1

그리고 내 TUN 인터페이스가 내가 작성한 문제로 실행되고 있는지 100% 확인하기 위해 다음을 수행했습니다.

핑을 보냈고 10.10.1.2내 프로그램에서 패킷이 수신되었습니다. tun에 다시 쓴 다음 루프에서 다시 수신했습니다.

이제 나는 모든 패킷을 확신합니다에서또는에게 10.10.1.x아무 문제 없이 TUN에 의해 ​​수신되고 기록됩니다.

내가 패킷을 쓸 때외부의 모든 대상 IPTUN 10.10.1.x에 성공적으로 기록되었지만 TUN에 응답이 수신되지 않았습니다.

많은 기사를 검색하고 읽은 후에 나는 그것이 커널에 의해 자동으로 삭제된다는 것을 알았습니다.

나는 serverfault.com에서 TUN 인터페이스에 대한 많은 Q/A를 읽었고 내 논리에서 심각한 부분을 놓쳤다는 것을 알게 되었습니다.라우팅.

내 최종 이해는 패킷이 정상이고 Linux의 네트워크 스택에 의해 수신되었지만 커널은 이상한 목적지 때문에 패킷을 어떻게 해야할지 모른다는 것입니다. 그런 다음 커널에 대한 일부 라우팅을 지정해야 한다는 것을 발견했습니다.iptables활성화했지만 net.ipv4.ip_forward방법을 모릅니다.

내 최종 목표는 다음과 같습니다

10.10.1.xTUN 외부의 목적지가 있는 패킷을 보낼 때 , 그것은 내 기본 인터페이스(인터넷에 액세스할 수 있고 wlps020f3)로 라우팅되어야 하며 해당 패킷의 모든 결과는 내 TUN 인터페이스로 다시 수신됩니다.

구성하는 방법NAT~에iptables해결 방법은 무엇입니까?

고급 감사합니다

답변1

IPv4 전달 활성화:

sudo sysctl -w net.ipv4.ip_forward=1

NAT 트래픽무선 주소 뒤에 있는 터널 인터페이스에서:

sudo iptables -t nat -A POSTROUTING -o wlps020f3 -j MASQUERADE

이러한 변경 사항 중 어느 것도 재부팅 후에도 유지되지 않습니다. 상단 링크와이 하나그 측면에 대한 더 많은 정보를 가지고 있습니다.

관련 정보