nftables 포트 전달로 인해 네트워크 요청이 실패함

nftables 포트 전달로 인해 네트워크 요청이 실패함

172.10.22.22공용 IP의 일부 포트를 원격 VPN IP로 전달하려고 합니다 10.22.22.22. 로컬 VPN IP는10.22.22.1

이더넷 인터페이스는 eth0입니다. wireguard VPN 인터페이스는 wg0입니다.

이러한 nftable 규칙은 다른 네트워크 요청이 이제 삭제된다는 점을 제외하면 제대로 작동합니다.

table ip nat {
        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                masquerade
        }

        chain prerouting {
                type nat hook prerouting priority dstnat; policy accept;
                ip daddr 172.10.22.22 tcp dport { 3396 } dnat to 10.22.22.22;
                ip daddr 172.10.22.22 udp dport 10000-10100 dnat to 10.22.22.22;
        }
}

그래서 ping www.google.com작동하지 않습니다. 이 규칙을 어떻게 수정할 수 있나요? 조언해주세요.

편집하다

대신 chain postrouting ...masquerade을 사용하면 ofiname "wg0" masquerade문제가 사라집니다. Masquerade라는 표현을 좀 더 구체적으로 만들 필요가 있을까요?

답변1

내 자신의 질문에 답하기 위해. 이 문제는 백 라우팅 체인의 위장 표현을 보다 구체적으로 만들어 해결됩니다.

table ip nat {
        chain postrouting {
                type nat hook postrouting priority srcnat; policy accept;
                # masquerade (as in question)
                ofiname "wg0" masquerade
        }

        chain prerouting {
                type nat hook prerouting priority dstnat; policy accept;
                ip daddr 172.10.22.22 tcp dport { 3396 } dnat to 10.22.22.22;
                ip daddr 172.10.22.22 udp dport 10000-10100 dnat to 10.22.22.22;
        }
}

관련 정보