Mikrotik 공유기의 DoH를 이용하고 있으나 간혹 에러가 로그에 기록된다. 사용에 문제가 있지는 않다. 추정 가능한 원인이은 동시에 여러 DNS 쿼리가 발생하는 것에 대하여 공유기가 제때에 처리를 못하기 때문이다. 그래서 가장 쉽게 DoH를 설정하는 방법으로 cloudflared 의 proxy-dns 기능을 이용하였다. 공유기가 아무리 특정 목적에 최적화되었다고 하지만 DoH 과정의 복잡한 과정까지 처리하기엔 모자란게 아닐까 생각했다.
늘 하던대로 Docker 환경에서 별도의 컨테이너를 만들어서 실행하기로 한다. DNS는 UDP 53를 이용하지만, 이 포트만을 이용하는게 아닌 것 같다. 생각해보면 HTTPS를 이용하니까 443 포트도 이용할 것이다. 그래서 -p 가 아닌 –net=host로 지정했다.
sudo docker run -id --restart always --net=host --name doh debian:latest
우선 github에서 최신 버전을 찾아서 다운 받는다. Debian이니까 편하게 deb 을 받아서 dpkg 로 설치한다. 이러면 chmod보 적당한 path에 이동시키는 것도 하지 않아도 된다.
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
dpkg -i cloudflared-linux-amd64.deb
다음으로 실행. 마지막에 &는 빼도 되지만, 도커에 접근해서 무엇인가 설정을 바꾸기 위해서는 &를 이용해서 백그라운드에서 실행하는게 좋다.
cloudflared proxy-dns --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query --address 0.0.0.0 &