1. IP
IPv4는 패킷 교환 네트워크 상에서 데이터를 교환하기 위한 프로토콜이다. 데이터가 정확하게 전달될 것을 보장하지 않고, 중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있다. 데이터의 정확하고 순차적인 전달은 그보다 상위 프로토콜인 TCP에서(그리고 UDP에서도 일부) 보장한다.
IPv4의 주소체계는 총 12자리이며 네 부분으로 나뉜다. 각 부분은 0~255까지 3자리의 수로 표현된다. IPv4 주소는 32비트로 구성되어 있으며, 현재 인터넷 사용자의 증가로 인해 주소공간의 고갈에 대한 우려가 높아지고 있다. 이에 따라 대안으로 128비트 주소체계를 갖는 IPv6가 등장하였다.
IP주소에는 클래스라는 개념이 있고 이 클래스의 개념을 알아야 어디까지가 네트워크 영역이고 호스트IP 영역인지 알 수 있습니다.
2. IP 라우팅(routing) 동작 과정
라우터는 패킷의 전송경로를 결정하기 위해 랜테이블, 네트워크테이블, 라우팅테이블을 사용한다. 라우터는 위의 3가지 테이블을 관리함으로써 다른 네트워크에 연결된 장치들을 비롯하여 네트워크에 연결된 모든 장치들의 주소를 인식하고 이것을 바탕으로 패킷의 전송경로를 결정한다.
동일 네트워크 상에 있는 장치로 패킷을 보낼 때 라우터에서는 아래 순서를 매번 거친다.
- 랜테이블 검사를 한다. 이곳에서는 패킷의 목적지가 같은 네트워크에 있는지 아니면 다른 네트워크에 있는지를 확인한다.
- 네트워크테이블을 검사하여 패킷을 전달할 네트워크 주소를 찾아낸다.
- 라우팅테이블을 검색하여 가장 적합한 경로를 찾아내서 패킷을 보낸다.
- 랜테이블 : 랜테이블은 라우터에 연결되어 있는 랜 세그먼트 내 장치의 주소를 관리하고 있으며 필터링작업에 사용된다.
- 네트워크테이블 : 네트워크상의 모든 라우터의 주소를 보관하며 패킷의 수신지 라우터를 식별하는데 사용된다.
- 라우팅테이블 : 각각의 라우터에 구축되어 있으며 각 경로에 대한 정보를 유지하고 있어서 다른 세그먼트로 전송 되는 패킷의 가장 효율적인 경로를 결정하는데 사용된다.
- 라우터의 목적지 학습 방법
1) Connected (연결)
자신과 물리적으로 직접 연결되어있는 장비의 IP 주소를 자동으로 알아온다. 이때 IP는 네트워크 주소로 라우팅 테이블에 저장된다.
2) Static (정적)
관리자가 직접 라우팅 경로를 선택해서 보내는 설정.
- 장점 : 관리자가 테이터가 전송될 경로를 직접 설정하므로 경로관리에 가장 효율적이다.
- 단점 : 네트워크 변화에 대한 대처가 느리다.
3) Dynamic (동적)
각 라우터들이 갖고 있는 정보를 서로에게 공유하여 라우팅 테이블에 저장한다. 주시적으로 최적경로를 계산하여 라우팅 테이블의 정보를 유지하는 방식이다.
- 장점 : 네트워크 변화에 대한 대처가 빠르다.
- 단점 : 주기적으로 경로를 계산해야하므로 리소스 소비량(CPU사용량)이 많아진다.
3. SUBNET
서브넷 탄생배경
클래스 단위로 네트워크를 분류하다보니, 어떤 기업에서는 적은 양의 호스트 주소가 필요한데, B Class 네트워크를 할당받아서 IP주소에 여유가 생기게 되고, 어떤 기업에서는 많은 양의 호스트 주소가 필요한데, C Class 네트워크를 할당받아서 IP주소가 부족해지는 현상이 생기게 된다.
따라서 클래스로만 네트워크를 분류하는 것은 비효율적이라는 결론이 나오고, 좀 더 적절한 단위로 네트워크를 분할해야할 필요성이 생기게 된다. 이러한 이유로 인해서 서브넷의 개념이 탄생하게 된다.
서브넷(Subnet)
클래스 단위로 분류를 하게 되면 적절한 네트워크의 크기로 구분할 수 없다. 따라서 서브넷으로 분할하여 사용한다. 서브넷(Subnet)이라는 것은 하나의 네트워크가 분할되어 나눠진 작은 네트워크이다. 네트워크를 분할하는 것을 서브네팅(Subnettin)이라고 한다.
즉, 더 유동적으로 네트워크영역, 호스트영역이 구분할 수 있다.
서브네팅은 서브넷 마스크(Subnet Mask)를 통하여 수행될 수 있다. 예로 들어서 자세하게 설명해 보겠다. 설명의 편의를 위하여 2진수로 표현하였다.
11001101 00000000 00000001 xxxxxxxx
이 IP주소는 최상위 비트가 11이므로 C Class 네트워크라고 할 수 있다.
따라서 앞의 24비트는 네트워크의 주소이고 뒤의 8비트는 호스트 주소이다.
기본적으로 C Class 네트워크는 기본 서브넷 마스크로 /24 를 가지고 있다. 즉 서브넷 마스크 값은 네트워크 주소를 나타내는 비트 수를 명시한 값이다.
이를 2진수로 표현하자면 11111111 11111111 11111111 00000000 으로 표현될 수 있을 것이다.
기본 IP 주소: 192.168.0.0서브넷 마스크: 255.255.255.128 (/25)첫 번째 서브넷에는 호스트가 128개 이상이어야 합니다.
첫 번째 서브넷:
네트워크 주소: 192.168.0.0
서브넷 마스크: 255.255.255.128
첫 번째 호스트: 192.168.0.1
마지막 호스트: 192.168.0.126
브로드캐스트 주소: 192.168.0.127
두 번째 서브넷:
네트워크 주소: 192.168.0.128
서브넷 마스크: 255.255.255.128
첫 번째 호스트: 192.168.0.129
마지막 호스트: 192.168.0.254
브로드캐스트 주소: 192.168.0.255
4. DHCP ( Dynamic Host Configuration Protocol )
DHCP란 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜을 말합니다.
동적 IP 할당은 DHCP를 사용하여 네트워크 장치에 자동으로 IP 주소를 할당하는 방식입니다.
네트워크 안에 컴퓨터에 자동으로 네임 서버 주소, IP주소, 게이트웨이 주소를 할당해주는 것을 의미하고, 해당 클라이언트에게 일정 기간 임대를 하는 동적 주소 할당 프로토콜입니다.
- DHCP 장점
PC의 수가 많거나 PC 자체 변동사항이 많은 경우 IP 설정이 자동으로 되기 때문에 효율적으로 사용 가능하고, IP를 자동으로 할당해주기 때문에 IP 충돌을 막을 수 있습니다.
DHCP 서버에서 DNS 서버 정보를 가져오는 시점은 클라이언트(컴퓨터나 장치)가 네트워크에 연결될 때입니다. 이 과정은 DHCP 프로토콜의 메시지 교환을 통해 이루어지며, 아래의 단계에서 DNS 서버 정보가 제공됩니다:
DHCP 서버에서 DNS 서버 정보를 가져오는 과정
- DHCP Discover (클라이언트 → 브로드캐스트 요청)
- 클라이언트(컴퓨터)가 네트워크에 연결되면, DHCP 서버를 찾기 위해 네트워크에 브로드캐스트 요청(DHCP Discover 메시지)을 보냅니다.
- 클라이언트는 "내게 IP 주소와 네트워크 정보를 제공할 DHCP 서버를 찾습니다!"라는 요청을 보냅니다.
- DHCP Offer (서버 → 클라이언트 응답)
- 네트워크의 DHCP 서버가 요청을 수신하고, 사용 가능한 네트워크 설정 정보를 포함한 응답(DHCP Offer 메시지)을 클라이언트에 보냅니다.
- 이 메시지에는 다음 정보가 포함될 수 있습니다:
- IP 주소
- 서브넷 마스크
- 게이트웨이 주소
- DNS 서버 주소
- 임대 기간(얼마 동안 이 IP를 사용할 수 있는지)
- DHCP Request (클라이언트 → 서버 확인 요청)
- 클라이언트는 받은 정보를 확인하고, 특정 DHCP 서버의 제안을 수락하겠다는 의사를 담은 DHCP Request 메시지를 다시 보냅니다.
- DHCP Acknowledgment (서버 → 클라이언트 승인)
- DHCP 서버는 클라이언트의 요청을 승인하고, 네트워크 설정 정보를 최종적으로 할당합니다.
- 이 단계에서 DNS 서버 정보도 클라이언트에 전달되며, 클라이언트는 이를 네트워크 설정에 적용합니다.
DNS 정보 갱신 시점
- 네트워크 연결 시
- 네트워크에 처음 연결되거나 IP 주소를 새로 할당받을 때.
- 예: Wi-Fi 네트워크에 처음 접속하거나, 이더넷 케이블을 연결했을 때.
- DHCP 임대 갱신 시
- DHCP 서버가 할당한 IP 주소의 **임대 기간(Lease Time)**이 만료되기 전에 클라이언트는 DHCP 서버에 정보를 갱신 요청합니다.
이때 새로운 DNS 서버 정보가 변경되었을 경우 업데이트됩니다.
- DHCP 서버가 할당한 IP 주소의 **임대 기간(Lease Time)**이 만료되기 전에 클라이언트는 DHCP 서버에 정보를 갱신 요청합니다.
- 수동으로 DHCP 갱신 요청
- 사용자가 네트워크 설정을 갱신하면, 새로운 DNS 서버 정보를 받을 수 있습니다.
- Windows: ipconfig /renew
- Linux/macOS: dhclient -r && dhclient
- 사용자가 네트워크 설정을 갱신하면, 새로운 DNS 서버 정보를 받을 수 있습니다.
5. DNS
: DNS(Domain Name System)는 도메인 이름을 IP 주소로 변환하는 시스템입니다.
- DHCP 서버 탐색
- 컴퓨터가 네트워크에 연결되면, 네트워크에 있는 DHCP 서버와 통신합니다.
- DHCP 서버는 일반적으로 라우터나 네트워크 관리자에 의해 설정된 장치입니다.
- DHCP 요청 전송
- 컴퓨터는 "IP 주소, 서브넷 마스크, 게이트웨이, DNS 서버 주소를 요청합니다"라는 메시지를 DHCP 서버로 전송합니다.
- DHCP 응답 수신
- DHCP 서버는 컴퓨터에 필요한 네트워크 설정을 포함한 응답을 보냅니다. 이 응답에는 다음 정보가 포함될 수 있습니다:
- IP 주소: 컴퓨터가 사용할 고유 IP 주소
- 서브넷 마스크: 네트워크 크기 정보
- 기본 게이트웨이: 인터넷에 연결하기 위해 사용되는 라우터 주소
- DNS 서버 주소: 네트워크에서 사용할 기본 DNS 서버와 보조 DNS 서버 주소
- DHCP 서버는 컴퓨터에 필요한 네트워크 설정을 포함한 응답을 보냅니다. 이 응답에는 다음 정보가 포함될 수 있습니다:
- DNS 서버 주소 적용
- 컴퓨터는 DHCP 서버가 제공한 DNS 서버 주소를 네트워크 설정에 자동으로 적용합니다.
- 이후 컴퓨터는 이 DNS 서버를 사용하여 도메인 이름을 IP 주소로 변환합니다.
www.naver.com 요청 과정
1. DHCP를 통해 네트워크 설정 받기처음 네트워크에 연결되면, 컴퓨터는 DHCP 서버로부터 다음 정보를 받습니다
IP 주소서브넷 마스크게이트웨이 주소DNS 서버 주소 (예: 8.8.8.8)DHCP는 이 정보를 제공한 후 더 이상 역할을 하지 않습니다.
2. 도메인 이름을 IP 주소로 변환 (DNS 요청)브라우저에서 www.naver.com을 입력하면, 운영체제는 먼저 도메인 이름에 대한 IP 주소를 찾아야 합니다.
3. 캐시 확인컴퓨터의 로컬 DNS 캐시나 hosts 파일에 해당 도메인의 IP 주소가 있는지 확인합니다.
캐시에 없으면 다음 단계로 진행합니다.
4. DNS 서버에 요청컴퓨터는 DHCP 서버에서 받은 DNS 서버(예: 8.8.8.8)로 www.naver.com의 IP 주소를 요청합니다.
5. DNS 서버는 다음 단계를 통해 IP 주소를 찾습니다:루트 네임서버에 요청: .com을 관리하는 서버 정보 조회TLD 네임서버에 요청: naver.com의 네임서버 정보 조회도메인 네임서버에 요청: www.naver.com의 IP 주소 반환최종적으로 DNS 서버는 IP 주소(예: 223.130.195.95)를 반환합니다.
DHCP 서버가 제공하는 DNS 서버 주소
: DHCP 서버는 일반적으로 다음과 같은 방법으로 DNS 서버 주소를 결정합니다:
- ISP의 DNS 서버
- 인터넷 서비스 제공업체(ISP)에서 제공하는 기본 DNS 서버 주소를 DHCP 서버가 전달합니다.
- 사용자가 설정한 DNS 서버
- 네트워크 관리자나 라우터에서 DNS 서버를 수동으로 설정하면, 이 설정된 DNS 주소를 컴퓨터에 전달합니다. 예를 들어, Google Public DNS(8.8.8.8)나 Cloudflare DNS(1.1.1.1)로 설정 가능.
- 로컬 DNS 서버
- 기업 네트워크에서는 DHCP 서버가 로컬 DNS 서버의 주소를 전달할 수 있습니다.
DHCP에서 DNS 서버를 확인하는 방법
- 라우터 설정 페이지에서 DHCP 서버가 제공하는 DNS 주소를 확인하거나 변경할 수 있습니다. 라우터 설정 페이지는 보통 브라우저에서 라우터의 IP 주소(예: 192.168.1.1)로 접속합니다.
- 명령어로 현재 설정된 DNS 확인:
- Windows: ipconfig /all 명령어에서 "DNS 서버" 항목 확인
- Linux/macOS: cat /etc/resolv.conf 또는 nmcli dev show 명령어 사용
6. HOST
hosts 파일을 수정해야 하는 경우는 주로 네트워크와 도메인 이름 해석과 관련된 작업을 할 때입니다. 이 파일은 운영체제에서 도메인 이름(예: example.com)을 IP 주소(예: 192.168.1.1)로 매핑하는 데 사용됩니다. hosts 파일은 DNS보다 우선적으로 참조되기 때문에, 특정 도메인 이름에 대해 지정된 IP로 바로 연결하도록 설정할 수 있습니다.
hosts 파일의 기본 경로
운영체제에 따라 hosts 파일의 위치는 다음과 같습니다:
- Windows:
C:\Windows\System32\drivers\etc\hosts - macOS 및 Linux:/etc/hosts
hosts 파일 수정 시의 한계
- 대규모 네트워크 환경에서는 DNS 서버를 사용하는 것이 더 효율적입니다.
- IP 주소가 변경되면 hosts 파일을 수동으로 수정해야 하므로 관리가 번거로울 수 있습니다.
https://ko.wikipedia.org/wiki/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC_%ED%81%B4%EB%9E%98%EC%8A%A4#%ED%81%B4%EB%9E%98%EC%8A%A4
https://velog.io/@hidaehyunlee/IP-%EB%9D%BC%EC%9A%B0%ED%8C%85routing-%EB%8F%99%EC%9E%91-%EA%B3%BC%EC%A0%95
https://hyoje420.tistory.com/32
https://jwprogramming.tistory.com/35
[개발자를 꿈꾸는 프로그래머:티스토리]
'WEB개념 > NETWORK & PROTOCOL' 카테고리의 다른 글
공인IP, 사설IP, NAT, localhost, 0.0.0.0 (0) | 2024.12.30 |
---|---|
[NETWORK] EJB (0) | 2023.03.30 |
[NETWORK] OSI7계층, 허브 (L1), SWITCH (L2), ROUTER (L3, L4) (0) | 2021.11.15 |
[PROTOCOL] SOAP, FTP, SMTP, SSH (0) | 2021.06.28 |
[PROTOCOL] HTTP (0) | 2021.06.25 |