Linux, Server, Web

Ubuntu 18.04 systemd-resolved SERVFAIL 문제

iolate 2018. 6. 26. 19:45

ubuntu 17 부터인지

ifupdown 대신 netplan 이 네트워크 설정을 담당하고,

기본 nameserver 로는 127.0.0.53, systemd-resolved 가 작동하면서 알아서 질의한다.


같은 시기에 설치한 ubuntu 18 서버 두대 중 한대가 dns 질의가 안되었는데,


$ nslookup google.com

Server: 127.0.0.53

Address: 127.0.0.53#53


** server can't find google.com: SERVFAIL


$ sudo journalctl -u systemd-resolved -f

Jun 26 18:53:46 hostname systemd-resolved[688]: Got packet on unexpected IP range, refusing.



대충 이런 상황...?


원인을 찾아보니 황당하게도 iptables 설정 문제.

포트 포워딩을 하면서 SNAT 을 위해 아래와 같이 설정해두었는데 이게 문제였다.

# iptables -t nat -A POSTROUTING -j MASQUERADE



로컬 인터페이스에 대해서도 SNAT 이 걸려서 뭔가 문제라고 판단을 하였고, 

# iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE

이렇게 네트워크 인터페이스를 지정해주고 문제 해결.


참고로 네트워크 인터페이스 지정을 안해주니 sudo 도 hostname 을 제대로 못찾아서 에러를 낸다.

127.0.1.1 주소를 /etc/hosts 파일에 hostname 과 연결해주면 해결되지만, (또 그렇게 연결해두라고 하지만)

SNAT 설정을 안해두면 애초에 이 문제가 발생하지 않음.


여튼 해결.