반응형

이번 주에 단자함에 공유기 하나를 넣음으로써, 드디어 홈 네트워크가 완성되었다.

이제 우리 집의 IPTV를 제외한 모든 장비는 공유기 하나에서 DHCP로 내려주는 Private IP로 유/무선 모두 접근이 가능해졌는데, DNS의 경우 무료 DNS인 duckdns.org를 가져다 쓰고 있었고, 결국 NAT IP타고 내부 네트워크로 들어오기 때문에, 현재 상황은 도메인으로 접근 시 내부 -> 외부 -> 내부와 같이 비효율적인 통신 환경이 만들어진다.

 

DNS 쿼리 시에도 private ip를 가져올 수 있도록 하려면, 공유기에 자체 구축한 DNS 서버를 연결하면 해결이 된다. 물론 장비가 많지 않은 경우면 그냥 개별 장비에 hosts에 박아서 쓰면 되지만, 완벽한 방법은 아니라고 생각한다.

 

결론으로 DNS 서버 구축을 위해 여러 솔루션들을 찾아봤는데, Technitium 이라는 DNS 서버가 간단하게 docker image 올리고, config 정도만 volume으로 연결해두면, Admin 페이지를 통해 각종 세팅을 할 수 있도록 제공을 하고 있었다.

docker hub에서도 100개가 넘는 STAR를 받았고, 업데이트도 자주 해주어서, 이걸로 해보는 것으로 결정!

 

https://hub.docker.com/r/technitium/dns-server 에 작성된 README를 읽다보면, docker 설치 방법에 친절하게 docker-compose.yml까지 제공을 해준다.

 

https://github.com/TechnitiumSoftware/DnsServer/blob/master/docker-compose.yml

 

GitHub - TechnitiumSoftware/DnsServer: Technitium DNS Server

Technitium DNS Server. Contribute to TechnitiumSoftware/DnsServer development by creating an account on GitHub.

github.com

그대로 복붙하면, 컨테이너가 뜨고, 5380 포트로 admin 페이지에서 이것저것 세팅을 조정할 수 있다.

 

본인 같은 경우는, duckdns.org 관련 도메인을 입력하면 사설 IP가 반환되기를 원했기 때문에, 아래와 같이 ZONE을 먼저 추가를 해주었고, A 레코드만 사설 IP로 입력하여 사용하고 있다.

 

이제 공유기의 WAN 설정 쪽으로 가서 DHCP에 지금 세팅한 DNS 서버의 IP를 넣어주면, 유 / 무선 기기에 DNS 쿼리 시 지금 세팅한 DNS 서버를 바라보게 된다.

(DNS 서버 구축 한 장비가 원격에 있는 경우 53번 포트 TCP / UDP를 열어야 한다.)

 

router.asus.com도 가끔 오락가락 하길래, 192.168.0.1로 아예 박아넣었더니 이후에 못찾는 일이 없어졌다.

실무 환경에서도 써먹으면 좋을만한 Technitium 추천!

 

혹시 DNS 쿼리가 잘 안되는 분들을 위해.. 일반적인 DNS 같은 경우 3600초를 Default로 TTL (캐싱으로 이해하면 쉬움)이 지정되어 있어서, 즉시 이용이 필요한 경우 아래와 같은 방법으로 DNS를 Flush 해주어야 한다.

Windows

cmd창을 열고 ipconfig /flushdns를 입력한다.

 

MAC

터미널을 열고, sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder 입력한다.

 

모바일 기기

wifi off후 on하고 다시 연결

반응형
,