[NETWORK] IP, SUBNET / DHCP
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 장점
PC의 수가 많거나 PC 자체 변동사항이 많은 경우 IP 설정이 자동으로 되기 때문에 효율적으로 사용 가능하고, IP를 자동으로 할당해주기 때문에 IP 충돌을 막을 수 있습니다.
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
[개발자를 꿈꾸는 프로그래머:티스토리]