/etc/hosts 와 dns

송전영·2023년 4월 20일
0

도전과제

목록 보기
3/4

실습과제로 /etc/hosts를 통해서 도메인을 지정하여 직접 사용해보는
과제를 주셨다.

잘못 알고 있었던거

하지만 제대로 dns에 대해서 잘 몰라서 어떤 방식으로 host가 지정되는지 조차 몰랐다.

직접 해보는 동안에 어떻게 했냐면
/etc/hosts

192.168.203.201:8080 tomcat.com tomcat

이런 식으로 적었다.


삽질

이를 해결하기 위해서 삽질을 좀 했는데

이것저것 도메인 관련 설정 파일들을 열어보았다.

설정이 되지 않을 거라고 생각해서

hostname도 열고 이것저것 건드려 보았는데 안돼서

질문을 드렸다.

질문

그래서 1번 DNS에 대한 이해자체를 못하고 있다고 짚어주셨다.

계층별로는 이렇게 다룬다고 전에 한번 넌지시 알려주신적이 있다.

L7 app
...
L4 IP+Port Mapping (Switch)
L3 IP (Router)
L2 MAC address

여기서 /etc/hosts는 IP를 다루는 L3(Router)작업에 속한다고 하셨다.
아주 잘못알고 있었던 것이다.
L4스위치에서 해야하는 일을 라우터에서 해결하려고 한 그런느낌이다.

이게 무슨 잘못인가 하면 DNS는 도메인 주소와 IP를 1:N로 매핑해주는것인데 여기에 Port가 들어가게 되면 IP내의 다른 장비나 서비스를 매핑해주는 식이 되어 버린다.

대상 장비를 찾지도 못했는데 장비 그 서비스 어딘가에 연결을 시도하려는 이런 상황인 것이다.

장비-장비 장비간 IP 매핑 이게 DNS 인데

장비 a --X-- (하던동작) 장비b
ㄴ----------- (하려한거-장비 안의 서비스)

이런 격이나 마찬가지이다.

여기서 /etc/hosts 는 장비만 찾는 것이지 그 안의 다른 port를 검색할수는 없도록 설계되어있는 것이다.

DNS 동작방식

도메인을 IP주소로 변환할때 DNS서버에 도메인을 쿼리하는 과정을 거쳐야한다.

하지만 로컬 도메인을 설정해서 DNS서버에 쿼리하기 전에 그 안을 먼저 조회하게 되는데 거기에 해당되는 부분이 /etc/hosts 이다.

OS는 DNS 캐시(Cache)를 먼저 조회하는데, 이 캐시 정보내에는 기존에 조회 했던 DNS 정보를 통해 남아있던 동적 캐시
/etc/hosts부터 있던 정적 캐시
이 둘 을 합한 DNS캐시 먼저 조회하여 더 빠르게 도메인을 조회 할 수 있다.

이 이후에도 내용이 있는데

다음에 DNS에 대해서 정리를 더 해야겠다.

진행

/etc/hosts

이런식으로 서비스에 하나의 ip로 매핑하게 되었다.

/etc/nginx/conf.d/default

전에 설정해 둔 nginx에 proxy패스로 등록한 bakend Block에

#server 192.168.203.201:8080;
# 
server tomcat01.com:8080;

이렇게 도메인:8080 이런 형식으로
지정해주었다.

성공적으로 잘 실행되는 모습을 보았다.

profile
클라우드(9개월근무)퇴사, 정보컴퓨터교사 지망, 코딩트리에듀센터 학원 근무중.AI프롬프트공부중.

0개의 댓글