IP (IPv4, IPv6, 공인IP, 사설IP, 유동IP, 고정IP), DHCP, NAT
5장. 네트워크 계층 : 목적지에 데이터 전달하기
LESSON 17. 네트워크 계층의 역할
응표세 - 전 - 네 - 데 - 물
데이터 링크 계층 - MAC주소를 이용해 같은 네트워크(LAN) 안에 있는 컴퓨터끼리 통신 (스위치 사용)
vs
네트워크 계층 - IP주소를 이용해 서로 다른 네트워크에 있는 컴퓨터끼리 통신 가능 (라우터 사용)
*IP주소 : 어떤 네트워크의 어떤 컴퓨터인지 구분하는 주소
*라우터(router) : 다른 네트워크에 있는 컴퓨터에 데이터를 전송할 수 있는 네트워크 장비
ㄴ 역할 - 라우팅(routing) : 목적지 IP주소까지 데이터를 보낼 경로를 결정해준다. (데이터 네비게이션이다)
ㄴ 라우팅 가능한 장비 : 라우터, L3(레이어3) 스위치
ㄴ 라우터를 지나가는 모든 데이터는 해당 데이터의 헤더에 기록된 송신 IP주소, 수신 IP주소 정보를 '라우팅 테이블'에 기록하고 관리한다.
*IP(Internet Protocol) : 네트워크 계층의 프로토콜 중 하나. 데이터를 다른 네트워크로 보낼 때의 규칙
ㄴ TCP/IP 할때 그 IP임
ㄴ IP패킷 = IP헤더 + 데이터
ㄴ 데이터 링크 계층에서 -> 네트워크 계층으로 캡슐화할 때(헤더를 붙일때) IP헤더를 붙인다.
*IP헤더 = 버전 + 헤더 길이 + 서비스 유형 + 전체 패킷 길이 + ID + 조각 상태(flags) + 조각 위치(fragmennt offset)
+ TTL(Time To Live) + 프로토콜 + 헤더 체크섬(header checksum) + 출발지 IP주소 + 목적지 IP주소
=> 다른 건 몰라도 IP헤더에 출발지와 목적지의 IP주소가 들어 있다는 사실만큼은 기억하자!
------------------------------------------------------------------------------------------------------------------------------------------
LESSON18. IP주소의 구조
IP주소는 ISP(인터넷 서비스 제공자 = 통신사 - ex: KT)에게 받을 수 있음
IP버전 : IPv4, IPv6
IPv4
ㄴ 현재 주로 사용(0.0.0.0 ~ 255.255.255.255)
ㄴ 32bit (4byte) (255는 2진수로 11111111 이므로 즉 00000000 ~ 11111111 이고 요 하나의 부분이 1byte(8bit)에 해당)
ㄴ 생성 가능한 IPv4 주소의 개수 = (256)^4 = 약 43억개
ㄴ (공인IP 주소를 모든 기기에 할당할 경우) IPv4 주소의 고갈 위험(43억개도 부족)
IPv6
ㄴ 주소의 각 자리는 16진수(0~F)로 표기
ㄴ 128bit (16byte) -> 거의 무한대의 개수
ㄴ 당분간은 IPv4와 공존해서 사용
- IP의 분류
* 할당 주체에 따라 분류
1. 공인(Global, Public) IP
ㄴ 할당 주체 : ISP
ㄴ 인터넷에 직접 연결되는 컴퓨터, 라우터에만 할당
ㄴ 인터넷 상에서 유일한 IP
ㄴ 공인 IP의 고정/유동 여부는 ISP에게 인터넷 가입을 어떻게 했는지에 따라 다르다.
(ISP에 직접 문의하는게 정확하다. 또는 지속적으로 공인 IP 주소가 변하는지 안변하는지 직접 확인해볼 수도 있으나 다소 부정확하다.)
ㄴ 일반적으로 공인 유동 IP는 가정집, 공인 고정IP는 회사 서버 에서 많이 사용한다.
ㄴ 주의 : 네트워크가 달라도 공인 IP는 같을 수도 있음 (하나의 공인 IP로 여러 개의 사설 네트워크를 만들 수 있음)
2. 사설(Private) IP
ㄴ 할당 주체 : 라우터(ex: 공유기) [회사의 네트워크 관리자나 사용자가 설정 가능]
ㄴ 라우터는 DHCP 프로토콜을 이용해 LAN에 연결된 모든 기기(컴퓨터, 스마트폰)에 사설IP주소를 자동으로 할당
ㄴ 하나의 네트워크 망 안에서만 유일한 IP (같은 네트워크에 연결된 서로 다른 기기를 구별하기 위함)
ㄴ 즉, 서로 다른 네트워크에는 동일한 사설 IP주소를 많이 사용한다.
ㄴ 사설 IP의 고정/유동 여부 => 네트워크 및 인터넷 - IP할당 : 자동(DHCP)이면 사설 유동IP, 수동이면 사설 고정IP 이다.
ㄴ 일반적으로 별도의 설정을 하지 않았다면, 사설 유동 IP가 default이고 사설 고정 IP는 직접 여러 과정을 거쳐 설정해주어야 한다.
(자세한 설정 방법 : https://m.blog.naver.com/onestopbiz/223002988290)
* 할당하는 방식에 따른 분류
1. 고정 IP (정적 할당) : 항상 같은 IP를 할당받는 것
ㄴ 네트워크 관리자가 수동으로 각 기기의 IP를 수동으로 설정
ㄴ 용도1 : 네트워크에 연결된 기기가 적은 경우, 관리자는 IP주소 관리 대장을 통해 어떤 기기에 어떤 IP주소가 할당되었는지 파악, 관리하기가 쉬움
ㄴ 용도2 : IP주소가 자주 변동되면 통신에 영향을 미치기 때문에, 서버 컴퓨터에 주로 사용
ㄴ 용도3 : 특정 IP주소를 가진 기기에 통신
2. 유동 IP (동적 할당) : 기기가 인터넷에 연결될 때마다 다른 IP를 할당 받는 것
ㄴ DHCP 프로토콜을 이용해 각 기기의 IP를 자동으로 설정
ㄴ IP종류마다 방법이 다름 (IPv4는 DHCPv4, IPv6는 SLLAC, DHCPv6)
ㄴ 용도1 : 네트워크에 연결된 기기가 많은 경우, 관리자가 수동으로 현재 사용하지 않는 IP주소를 확인하여 할당하고, 관리하는게 어렵기 때문에 사용
- IPv4의 주소 고갈 문제 해결 방안
ㄴ CIDR ( = 서브넷 마스크의 프리픽스 표기법 )
ㄴ DHCP
ㄴ NAT (공인IP, 사설IP로 나눠 공인 IP주소 절약하는 것과 연관)
ㄴ IPv6
* DHCP : 기기가 인터넷에 접속할 때마다 DHCP서버가 기기에게 자동으로 유동 IP를 할당해주는 프로토콜
ㄴ 인터넷 접속이 끊겨 사용하지 않는 기기에 까지 고정IP를 부여한다면, IP가 낭비(고갈) 되는 문제가 생겨 등장함
ㄴ DHCP 서버는 주로 ISP가 운영함
ㄴ DHCP 데이터베이스에 할당된 IP와 기기가 기록되어있다. (정적할당 방식의 IP주소 관리 대장 같은거)
* NAT(Network Address Translation) : IP주소를 변환하는 기술 (사설 <-> 공인)
ㄴ NAPT => 하나의 공인 IP를 가지고 여러 기기에 사설 IP를 할당하여, 공인 IP주소를 절약할 수 있다.
NAPT를 이용하면, 공인IP 만을 알고 있는 외부 공격자가 공격 대상을 특정하기 위해 사설 IP까지 알아야 하기 때문에 보안에도 도움이 됨
ㄴ 관련 세부 개념들 - 정적/동적 NAT, CGNAT, 풀 콘 NAT, 헤어핀 NAT, NAT traversal 등등
ㄴ 관련 참고 자료
https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-IP-%EA%B8%B0%EC%B4%88-%EC%82%AC%EC%84%A4IP-%EA%B3%B5%EC%9D%B8IP-NAT-%EA%B0%9C%EB%85%90-%EC%A0%95%EB%A7%90-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC
https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-NAT-%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
https://better-together.tistory.com/124
MAC 주소 : 48bit(16진수)
vs
IP 주소 : 32bit(10진수)
ㄴ 컴퓨터가 실제로 읽는 IP주소는 원래 모두 32bit의 2진수
ㄴ 편의상 사람이 읽기 쉽도록 2진수 대신 10진수로 표기하고, 4개의 옥텟으로 구분
ㄴ 1옥텟(octet) = 8bit
ㄴ IP 주소의 1옥텟의 10진수의 범위 : 0~255 까지임
IP주소 = 네트워크 ID + 호스트 ID
ㄴ 네트워크 ID : 어떤 네트워크인지에 대한 정보. 즉 네트워크 ID가 다르면 서로 다른 네트워크임
ㄴ 호스트 ID : 해당 네트워크의 어느 컴퓨터인지에 대한 정보
즉, 같은 네트워크(망)에 속해있는 기기(host)는 호스트ID로 구분한다.
------------------------------------------------------------------------------------------------------------------------------------------