domain name system
internet hosts, routers는 IP address를 사용합니다. 32-bits
이러한 것을 사람이 외우기 어려우므로 name을 사용합니다(인간이 사용)
ex) www.yahoo.com
IP address와 name을 어떻게 mapping을 할것인가?
DNS를 사용합니다.
모든 복잡한 것은 network's edge에 구현합니다.
hostname을 IP address로 변환해줍니다.
hosts가 name, ip adress을 변경하려면 name server와 통신해서 요청해야합니다.
web server의 요청이 들어오면 dns로 분산시킵니다. 사용량이 적은 ip address을 선택해서 보내주어 부하를 분산시킵니다.
왜 중앙처리하지 않는가?
많은 쿼리가 발생하면 중앙 집중형으로는 처리할수 없다.
Root 👉🏻 .com, .org, .edu 👉🏻 yahoo.com, amazon.com, pbs.org ...
계층적 구조를 가집니다.
각각의 server가 db를 가지고 있습니다.
name에 대한 mapping을 하지 못한 local name server가 접촉을 합니다.
ex) .com, .org, .net, edu...
진짜 정보를 가지고 있는 server
hostname에게 진짜 정보를 가진 IP를 mapping해줍니다.
각각의 ISP에서 하나씩 가지고 있습니다.
일반 host는 local dns를 거쳐서 여러 정보를 가져옵니다.
cach를 사용하여 가지고 있는 정보면 바로 알려줍니다.
proxy와 비슷합니다.
2가지 방식
dfs와 유사
보안 관점에서 안좋아서 요즘 잘 사용하지 않음
DNS resource record(RR)을 저장합니다.
ttl이 지나면 사라집니다.
2가지 type
두개의 type은 문법과 message format은 같습니다.
id가 있어야 합니다.
reply가 어떤 query에 대한 reply인지가 적혀있습니다.
새로운 record를 DNS에 추가하는 방법
회사를 만들고
👇🏻
.com을 담당하는 tls name server에 요청
👇🏻
authoritative name server에 저장
👇🏻
TLD server에 저장
회사를 차리면 dns를 실행할 머신을 설정하고 ip address 부여 name을 짓고 RR을 tld서버에 저장
root server에 traffic 폭격
성공한 예시는 없음
TLD server을 공격
root server보다 취약한점을 이용
man-in-middle
쿼리를 intercept해서 틀린 정보를 local dns server에 보낼수있음
DNS poisoning
해킹당해서 잘못된 정보를 repie할수 있음