8.8.8.8의 다른 쪽 끝은 무엇인가?
Source: Hacker News
8.8.8.8 테스트
8.8.8.8이 권한 있는 네임서버에 질의하는 방식을 확인하기 위해, 나는 내 와일드카드 DNS 서비스인 — nip.io와 sslip.io를 사용했다. 8.8.8.8에 고유하게 표시된 일련의 질의를 보내면, 리졸버가 이를 우리 네임서버로 전달한다.
for i in $(seq 0 255); do
dig +short 8-8-8-8.test-$i.sslip.io @8.8.8.8
done
네임서버에 접속해 로그를 확인한다:
ssh ns-ovh.sslip.io
로그
DNS 서버는 systemd 서비스로 실행되므로, 로그는 journalctl로 추출할 수 있다:
sudo journalctl -u sslip.io-dns -S yesterday > /tmp/sslip.io.log
작성한 조회를 필터링한다:
grep -i 8-8-8-8.test /tmp/sslip.io.log
샘플 출력 (잘림):
172.253.244.145.46402 TypeA 8-8-8-8.TesT-158.SsLIp.io. ? 8.8.8.8
172.253.244.144.45355 TypeA 8-8-8-8.test-158.sslip.io. ? 8.8.8.8
172.253.0.21.41598 TypeA 8-8-8-8.teSt-161.SSlIP.iO. ? 8.8.8.8
172.253.2.29.34349 TypeA 8-8-8-8.tEst-163.ssliP.iO. ? 8.8.8.8
172.253.244.145.48298 TypeA 8-8-8-8.test-163.sslip.io. ? 8.8.8.8
2607:f8b0:4004:1001::12b.39475 TypeA 8-8-8-8.TesT-164.Sslip.Io. ? 8.8.8.8
74.125.181.155.54746 TypeA 8-8-8-8.TEST-173.ssLip.iO. ? 8.8.8.8
172.253.2.23.49071 TypeA 8-8-8-8.TeSt-177.sSlIP.iO. ? 8.8.8.8
필드 의미
| 필드 | 설명 |
|---|---|
172.253.244.145 | DNS 질의의 출발 IP 주소 (IPv4). |
46402 | 출발 UDP/TCP 포트. |
TypeA | 질의 타입 (A 레코드). |
8-8-8-8.test-158.sslip.io. | 질의된 이름 (대소문자 무작위 변형에 주목). |
? | DNS 질의를 의미. |
8.8.8.8 | 우리가 반환한 주소. |
관찰 내용
- 256개의 질의 중 8개(≈ 3 %)만이 우리 바르샤바 서버에 도달했으며, 이 서버는 보통 트래픽의 ~66 %를 처리한다.
- 출발 주소는 절대
8.8.8.8이 아니며, 각 질의는 서로 다른 Google 소유 IP에서 온다. - 질의 이름의 무작위 대소문자 변형은 Google 리졸버가 DNS 캐시 중독 방지를 위해 도입한다.
출발 IP 소유권 확인
ARIN REST API와 jq를 사용한다:
curl -s -H "Accept: application/json" \
"https://whois.arin.net/rest/ip/172.253.244.145" |
jq '.net.orgRef."@name", .net.netBlocks.netBlock.cidrLength."$"'
출력:
"Google LLC"
"16"
/16 블록은 Google이 전체 172.253.0.0/16 범위를 소유하고 있음을 확인한다. 이는 관찰된 대부분의 IPv4 주소를 포함한다.
IPv6 주소에 대해서는:
curl -s -H "Accept: application/json" \
"https://whois.arin.net/rest/ip/2607:f8b0:4004:1001::12b" |
jq '.net.orgRef."@name", .net.netBlocks.netBlock.cidrLength."$"'
출력:
"Google LLC"
"32"
따라서 Google은 2607:f8b0::/32 IPv6 블록도 소유한다. (남은 IPv4 주소 74.125.181.155 역시 Google 소유 범위에 포함된다.)
결론
공용 리졸버 8.8.8.8이 상위 권한 서버에 질의를 전달할 때, 그 질의는 IP 주소 8.8.8.8에서 발생하지 않는다. 대신 IPv4와 IPv6 모두에서 Google 소유의 다양한 IP 풀에서, 다양한 출발 포트와 함께 전송된다. 또한 Google은 DNS 캐시 중독 방어 차원에서 질의 도메인 이름의 대소문자를 무작위로 변형한다.