-DNS의 클라이언트
-도메인 주소를 요청하면 이를 질의 형태로 변환하고 응답을 반환하는 역할을 함
도메인 주소의 형식에 따라 동작 방식이 달라짐
항목 | 설명 | 예제 | 동작 |
---|---|---|---|
FQDN(Fully Qualified Domain Name) | dot(".") 으로 끝나는 주소 | google.com. | as-is(절대 주소)로 쿼리함 |
Non-FQDN | dot(".") 으로 끝나지 않는 주소 | google.com | dot(".")의 개수가 ndots 설정 미만인 경우: search list 항목을 suffix로 붙여서 쿼리함dot(".")의 개수가 ndots 설정 이상인 경우: as-is 주소로 쿼리함 * ndot 기본 설정은 "1" |
-아래 예제에서 "test"로 검색하면 Non-FQDN이고 dots의 개수가 ndots 설정인 "5" 미만이므로 search list 항목을 suffix로 붙여서 쿼리함
-"test."(FQDN)인 경우는 as-is 주소인 "test."로 질의를 함("test."는 없는 주소이기 때문에 에러)
$ ``cat` `/etc/resolv``.conf``nameserver xxx.xx.xxx.xx``search sample.svc.cluster.``local` `svc.cluster.``local` `cluster.``local` `sample.co.kr``options ndots:5` `sh-4.2$ ``nslookup` `test``Server: xxx.xx.xxx.xx``Address: xxx.xx.xxx.xx``#53` `Name: ``test``.sample.svc.cluster.``local``Address: xxx.xxx.xxx.xx` `sh-4.2$ ``nslookup` `test``.``Server: xxx.xx.xxx.xx``Address: xxx.xx.xxx.xx``#53` `Non-authoritative answer:``*** Can't ``find` `test``: No answer
x
DNS 설정 파일
$ ``cat` `/etc/resolv``.conf``domain …``search …``option …``nameserver …
-Non-FQDN 주소 쿼리 시 참조하는 기본 도메인. 아래 예제에서 "example.com"
-위 설정이 되어 있으면 "example.com" 주소를 suffix로 붙여서 쿼리함.
-아래 예제에서 "www"를 검색하면 "www.example.com"으로 검색됨
$ ``cat` `/etc/resolv``.conf``domain example.com``...` `$ ``nslookup` `www``Server: x.x.x.x``Address: x.x.x.x``#53` `Name: www.example.com``Address: y.y.y.y
-1번의 domain 설정과 마찬가지로 Non-FQDN 쿼리 시 suffix로 붙이는 도메인. 최대 6개 까지 설정할 수 있고 첫번째 도메인이 기본 도메인이 됨(domain과 search가 함께 정의되어 있으면 마지막에 선언된 게 적용됨)
-아래 예제에서 kube service명인 "test"를 검색
1)검색 주소가 Non-FQDN이고 ndot 설정 "5" 미만이므로 search list 탐색함
2)search list의 첫 번째 항목인 "sample.svc.cluster.local"를 suffix로 붙여서 쿼리함 => "test.sample.svc.cluster.local"에 대한 IP 주소 "172.130.153.93"이 리턴됨
## Kubernetes Pod의 DNS 설정 파일``$ ``cat` `/etc/resolv``.conf``nameserver xxx.xx.xxx.xx``search sample.svc.cluster.``local` `svc.cluster.``local` `cluster.``local` `sample.co.kr``options ndots:5` `sh-4.2$ ``nslookup` `test``Server: xxx.xx.xxx.xx``Address: xxx.xx.xxx.xx``#53` `Name: ``test``.sample.svc.cluster.``local``Address: xxx.xxx.xxx.xx
-다른 예제로 kube service명 + namespace 명인 "test.sample"로 검색
1)검색 주소가 Non-FQDN이고 ndot 설정 "5" 미만이므로 search list 탐색함
2)search list의 첫 번째 항목인 "sample.svc.cluster.local"를 suffix로 붙여서 쿼리함 => "test.sample.sample.svc.cluster.local"은 없는 주소이므로 실패
3)search list의 두 번째 항목인 "sample.svc.cluster.local"를 suffix로 붙여서 쿼리함 => "test.sample.svc.cluster.local"에 대한 IP 주소 "172.130.153.93"이 리턴됨
sh-4.2$ ``nslookup` `test``.sample``Server: 172.30.252.68``Address: 172.30.252.68``#53` `Name: ``test``.sample.svc.cluster.``local``Address: 172.130.153.93
-검색 주소가 Non-FQDN이고 dot(".")의 개수가 ndots 설정 미만인 경우 search list 순서대로 suffix 붙여서 쿼리함
-아래 예제에서 "cart"를 검색
1)검색 주소가 Non-FQDN이고 ndot 설정 "1" 미만이므로 search list 탐색함(ndot 설정을 하지 않으면 기본값이 1임)
2)search list의 첫 번째 항목인 "gmarket.co.kr"를 suffix로 붙여서 쿼리함 => "cart.gmarket.co.kr"에 대한 IP 주소 "183.111.150.200"이 리턴됨
$ ``cat` `/etc/resolv``.conf``search sample.co.kr``nameserver 172.30.212.253``nameserver 172.30.212.254` `$ ``nslookup` `cart``Server: 172.30.212.253``Address: 172.30.212.253``#53` `Non-authoritative answer:``Name: cart.gmarket.co.kr``Address: 183.111.150.200
-다른 예제로 "cart.gmarket"로 검색
1)dots(".")의 개수가 "ndots"의 설정 값인 "1"과 동일하므로 as-is 주소로 질의함.
2)그 결과 없는 주소라는 결과가 나옴
$ ``nslookup` `cart.gmarket``Server: 172.30.212.253``Address: 172.30.212.253``#53` `** server can't ``find` `cart.gmarket: NXDOMAIN
-도메인을 검색할 네임 서버의 주소를 지정
-최대 3개의 네임서버를 지정 할 수 있음. 첫 번째 네임서버가 응답하지 않으면 다음 서버에 질의를 함
$ ``cat` `/etc/resolv``.conf``...``nameserver 10.x.x.1``nameserver 10.x.x.2``nameserver 8.8.8.8` `$ ``nslookup` `example.com``Server: 10.x.x.1``Address: 10.x.x.1``#53``Name: example.com``Address: x.x.x.x
DNS를 거치지 않고 도메인에 대한 IP를 바로 가져올 수 있도록 지정하는 파일
$ ``cat` `/etc/hosts``172.30.212.32 mirror.centos.org mirrorlist.centos.org``...
API G/W 개념 및 조사 (0) | 2022.07.12 |
---|---|
FQDN(Fully Qualified Domain Name) (0) | 2021.11.30 |
Linux 네트워크 본딩 (0) | 2020.06.12 |
댓글 영역