기본적으로 Linux 상자(Ubuntu Focal)가 게이트웨이로 구성되어 있습니다.
sysctl net.ipv4.ip_forward = 1 #Enable ipv4 forwarding
iptables -t nat -A POSTROUTING -o ens160 -s 192.168.1.0/24 -j MASQUERADE #NAT 192.168.1.x to internet behind interface ens160
클로킹 규칙의 클릭 수가 증가한 것을 확인했습니다(이 경우 1에서 2로).
이 규칙은 스크린샷을 찍을 때 모든 것을 시도했기 때문에 이전 그림에서 반복되지만 이 예에서는 그다지 중요하지 않다고 생각합니다.
따라서 8.8.8.8에는 문제 없이 ping을 보낼 수 있지만 DNS 조회와 같은 다른 작업을 시도하면
dig @8.8.8.8 www.google.com
작업이 실패하고 규칙의 적중 횟수가 증가하지 않습니다.
또한 텔넷을 사용하여 IP 주소(이름 대신)로 HTTP(HTTPS 대신) 웹 사이트를 열려고 시도했지만 클릭 수가 증가하지 않고 실패했습니다.
이 프로세스는 일반적으로 작동하고 규칙 자체는 ICMP뿐만 아니라 모든 프로토콜에 대해 작동한다고 말하지만 DNS 조회(UDP) 및 TCP를 제외한 모든 프로토콜 주소를 IP를 통해 핑할 수 있는 것처럼 보이기 때문에 문제의 원인이 무엇인지 잘 모르겠습니다. 게이트웨이가 연결을 보내지 않았기 때문에 연결이 실패했습니다.
또한 tcpdump를 수행했는데 192.168.1.x로 들어오는 패킷을 볼 수 있고 ICMP의 경우 NAT 패킷이 나가는 것을 볼 수 있지만 UDP/TCP의 경우 나가는 것은 아무것도 볼 수 없습니다.
여기서 무엇이 잘못되었을 수 있습니까?
편집: 의견의 일부 피드백을 기반으로 더 많은 정보 추가
filter
그리고 그 테이블 raw
에는 아무것도 없는 것 같았습니다. 이를 확인하기 위해 올바른 명령을 사용하고 있는지 확실하지 않지만 다음과 같습니다.
iptables-save -c
또한 내가 예상한 것 외에는 아무것도 표시되지 않습니다. (시행착오로 인해 규칙의 일부 중복을 추가했지만 이것이 아무런 영향을 미치지 않는다고 생각합니다):
sudo iptables-save -c
# Generated by iptables-save v1.8.4 on Tue May 2 18:59:25 2023
*raw
:PREROUTING ACCEPT [290378:642993821]
:OUTPUT ACCEPT [26621:1727859]
COMMIT
# Completed on Tue May 2 18:59:25 2023
# Generated by iptables-save v1.8.4 on Tue May 2 18:59:25 2023
*filter
:INPUT ACCEPT [290051:642964315]
:FORWARD ACCEPT [140:11615]
:OUTPUT ACCEPT [26631:1728900]
COMMIT
# Completed on Tue May 2 18:59:25 2023
# Generated by iptables-save v1.8.4 on Tue May 2 18:59:25 2023
*nat
:PREROUTING ACCEPT [72935:11925313]
:INPUT ACCEPT [72704:11903229]
:OUTPUT ACCEPT [1643:146886]
:POSTROUTING ACCEPT [1643:146886]
[11:924] -A POSTROUTING -s 192.168.1.0/24 -o ens160 -j MASQUERADE
[0:0] -A POSTROUTING -s 192.168.1.0/24 -o ens160 -j MASQUERADE
[0:0] -A POSTROUTING -s 192.168.1.0/32 -o ens160 -j MASQUERADE
COMMIT
# Completed on Tue May 2 18:59:25 2023
이 결과에서 직접 추가 통찰력을 얻을 수 없습니다. 제안 사항이 있습니까?
편집 2: 댓글을 기반으로 더 많은 정보 추가
NFtables가 설치된 적이 없다고 생각하지만 nft list chains
정보가 제공되지 않으며 icmp와 udp의 경로가 동일한 것으로 보입니다.
게이트웨이 VM 자체(시스템 DNS가 8.8.8.8로 설정되지 않음) 내에서 발생하는 DNS 요청이 SNAT에 의해 처리되고 문제 없이 나가고 심지어 응답을 받는 것처럼 보이기 때문에 이것은 정말 이상합니다. 그러나 어떤 이유로든 인바운드 DNS는 사설 LAN에서 나가는 요청은 도착 시 중단됩니다.