리눅스에서 IP 주소를 얻는 내부 흐름
리눅스 시스템에서 호스트 이름을 IP 주소로 변환하는 과정은 여러 구성 파일과 설정에 의해 관리된다.
- 호스트 이름 해석 요청: 애플리케이션이 호스트 이름(
www.example.com
)을 통해 네트워크 연결을 시도한다. - /etc/nsswitch.conf: 호스트 이름 해석 시 사용할 방법의 순서를 결정한다. 예를 들어,
order hosts, bind
라면 먼저/etc/hosts
파일을 참조하고, 그 다음에 DNS를 조회한다. - /etc/hosts 파일 조회: 지정된 순서에 따라
/etc/hosts
파일을 먼저 조회하여 호스트 이름과 매핑된 IP 주소를 찾는다. 만약 매핑 정보가 존재하면 해당 IP 주소를 반환하고, 과정이 종료된다. - DNS 서버 조회:
/etc/hosts
파일에서 매핑 정보를 찾지 못하면,/etc/resolv.conf
파일에 지정된 DNS 서버를 통해 호스트 이름을 해석한다. DNS 서버로부터 IP 주소를 받아 반환한다. - 호스트 이름 해석 완료: 애플리케이션은 얻은 IP 주소를 사용하여 네트워크 연결을 완료한다.
/etc/host.conf
호스트 이름 해석에 사용되는 다양한 옵션을 설정하는 파일이다. 최신 리눅스 시스템에서는 /etc/nsswitch.conf 파일을 중심으로 호스트 이름 해석을 설정하고 관리하는 것이 권장됩니다. /etc/host.conf는 호환성을 위해 남아있을 수 있으나, 실제로는 /etc/nsswitch.conf의 설정이 우선적으로 적용된다.
주요 설정 항목
- order: 호스트 이름 해석 시 사용할 순서를 지정
- multi on/off: 여러 개의 IP 주소를 반환할지 여부
- nospoof on/off: 스푸핑 공격을 방지하기 위해 설정하며, 무단으로 변경된 IP 주소를 무시
예시
# /etc/host.conf
# 호스트 이름 해석 순서 설정
order hosts, bind
# 여러 개의 IP 주소를 반환하지 않도록 설정
multi off
# 스푸핑 방지 설정
nospoof on
/etc/nsswitch.conf
네임 서비스 스위치(Name Service Switch) 설정 파일로, 시스템에서 다양한 네임 서비스(호스트, 패스워드, 그룹 등)를 조회할 때 사용할 소스와 순서를 정의한다. 이 파일은 호스트 이름 해석뿐만 아니라 다양한 서비스에 대한 조회 방식을 설정할 수 있어 더 유연하고 강력한 설정이 가능하다.
# /etc/nsswitch.conf
hosts: files dns
passwd: files
group: files
shadow: files
위 예시에서 hosts
항목은 먼저 files
(즉, /etc/hosts
파일)을 조회하고, 그 다음에 dns
를 조회하도록 설정한다. 이는 /etc/host.conf
와 유사한 역할을 하지만, 좀 더 세밀한 제어가 가능하다.
/etc/hosts
호스트 이름과 IP 주소 간의 매핑 정보를 저장하는 로컬 파일이다. 이 파일은 네트워크 연결이 필요한 호스트 이름을 빠르게 해석할 수 있도록 도와주며, 작은 네트워크나 테스트 환경에서 주로 사용된다.
파일 구조
/etc/hosts
파일의 각 라인은 다음과 같은 형식으로 구성된다
IP주소 호스트이름 별칭들
예시
# /etc/hosts
127.0.0.1 localhost localhost.localdomain
192.168.1.10 server1.example.com server1
192.168.1.11 server2.example.com server2
주요 항목 설명
- 127.0.0.1 localhost: 로컬 호스트를 나타내며, 자신의 시스템을 참조할 때 사용된다.
- 192.168.1.10 server1.example.com server1:
server1.example.com
과server1
이라는 호스트 이름이192.168.1.10
IP 주소를 가리키도록 설정한다. - 192.168.1.11 server2.example.com server2:
server2.example.com
과server2
가192.168.1.11
IP 주소를 가리키도록 설정한다.
/etc/resolv.conf
DNS(Domain Name System) 서버의 정보를 저장하는 파일로, 호스트 이름 해석 시 DNS 조회를 위한 설정을 담고 있다. 이 파일은 네임 서버의 주소, 검색 도메인 등을 지정할 수 있다.
파일 구조
/etc/resolv.conf
파일의 각 라인은 다음과 같은 형식으로 구성된다:
옵션 옵션값
nameserver DNS서버_IP주소
search 도메인1 도메인2 ...
예시
# /etc/resolv.conf
# DNS 검색 도메인 설정
search example.com sub.example.com
# DNS 서버 설정
nameserver 8.8.8.8
nameserver 8.8.4.4
주요 항목 설명
- search: 호스트 이름 해석 시 추가적으로 검색할 도메인을 지정한다. 예를 들어,
search example.com
이 설정되어 있으면server1
을 검색할 때server1.example.com
을 자동으로 시도한다. - nameserver: DNS 서버의 IP 주소를 지정한다. 여러 개의 DNS 서버를 지정할 수 있으며, 순서대로 시도된다.
- options: DNS 조회에 사용할 추가적인 옵션을 설정한다. 예를 들어,
timeout
,attempts
등을 설정할 수 있다.
'CS > Linux' 카테고리의 다른 글
[Linux] NAT를 설정하는 방법 (0) | 2024.10.05 |
---|---|
[Linux] Firewalld vs Iptables (0) | 2024.10.05 |
[Linux] Xrdp 서버 (1) | 2024.10.03 |
[Linux] GUI 방화벽 설정 (1) | 2024.10.03 |
[Linux] OpenSSH (1) | 2024.10.03 |