k8s 네트워크 디버깅
DNS Debugging
- https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/
- 파드를 하나 띄운 다음에, 파드 내에서 DNS 디버깅을 할 수 있음
사용 도구
nslookup
- 뒤에 조회하려는 도메인을 입력하면 된다
- 서버와 어드레스는 어떤 DNS 를 조회하였는지 알려주는 도구
- 아래
Name, Address를 확인하여 어떤 DNS 를 참고하였는지 확인할 수 있다
Server: 168.126.63.1
Address: 168.126.63.1#53
Non-authoritative answer:
Name: google.com
Address: 142.250.206.238Non-authoritative answer
- 검색시 위와 같은 문구가 나오는 경우가 있다
- 이는
DNS recursive resolver를 사용하였다는 의미로, 권한 있는 이름서버를 사용하지 않았다는 의미임 - 그냥 넘어가면 됨
dig(domain information groper)
- DNS 검색을 수행하고 조회된 네임 서버로부터 리턴되는 명령어를 사용
; <<>> DiG 9.10.6 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27398
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 215 IN A 172.217.161.238
;; Query time: 18 msec
;; SERVER: 168.126.63.1#53(168.126.63.1)
;; WHEN: Sun Aug 21 13:04:48 KST 2022
;; MSG SIZE rcvd: 55QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1부분을 보면 어떤 곳을 조회하였는지 확인할 수 있음ANSWER SECTION을 보면, DNS 조회로 어떤 IP를 획득하였는지 확인 가능;; SERVER를 보면, 어떤 DNS 서버를 사용하였는지 확인할 수 있다
Telnet
- 실제로 해당 서버에 포트로 접근할 수 있는지 Telnet 을 활용하여 확인 가능
telnet google.com 443다음과 같은 명령어로 접근 가능
Traceroute
- 목적지까지 도달하는데 어떤 경로를 거처가는지 확인할 수 있음
traceroute www.coursera.org
traceroute: Warning: www.coursera.org has multiple addresses; using 54.230.167.54
traceroute to www-cloudfront-alias.coursera.org (54.230.167.54), 64 hops max, 52 byte packets
1 172.30.1.254 (172.30.1.254) 6.489 ms 6.141 ms 6.119 ms
2 183.97.19.254 (183.97.19.254) 16.942 ms 73.310 ms *