(혼자 공부하는 네트워크) 03. 네트워크 계층
03. 네트워크 계층 (126p~)
03-1. LAN 을 넘어서는 네트워크 계층 (128p~)
1계층(물리 계층), 2계층(데이터 링크 계층) 만으로 모든 전송을 하지 못하는 이유
- 다른 네트워크까지의 도달 경로를 알 수 없다. -> 라우터(router)
- 모든 네트워크에 속한 호스트의 위치를 알 수 없다. -> IP + MAC 함께 사용
라우팅(routing) : 패킷이 이동할 최적의 경로를 결정하는 것. 라우터가 수행
IP 주소 : 논리 주소. ‘호스트’ 에 할당
- DHCP(Dynamic Host Configuration Protocol) 로 자동 할당하거나, 직접 할당 가능.
- 한 호스트가 복수의 주소를 갖는 것도 가능
IP(Internet Protocol)
- IP 주소 지정(IP addressing) : IP 주소를 바탕으로 송수신 대상을 지정하는 것
- IP 단편화(IP fragmentation) : 패킷이 MTU 보다 크기가 클 경우 복수의 패킷으로 나누는 것
- MTU(Maximum Transmission Unit) : 한 번에 전송 가능한 IP 패킷의 헤더 포함한 최대 크기. 일반적으로 1500바이트
- 경로 MTU(Path MTU) : 단편화 없이 전송할 수 있는 최대 크기
- IPv4 : RFC-791
- 주소 형태 : 옥텟(octet. 0~2^8 사이의 10진수) 4개. ex) 255.255.255.255
- 4바이트(32비트). 옥텟 하나당 8비트(1바이트)
- IPv4 패킷 : 프레임의 페이로드 (데이터 필드). 아래는 IPv4 의 헤더들
- 식별자(identifier) : 패킷에 할당된 변호. 패킷이 단편화된 경우의 일련번호
- 플래그(flag) : 3비트
- 예약 비트. 항상 0으로 현재 사용하지 않음
- DF(Don’t Fragment) : 1이면 단편화 off, 0이면 단편화 on. 1인데 크기 초과한 경우 폐기
- MF(More Fragment) : 0이면 마지막 패킷, 1이면 다른 단편화 패킷 더 있음
- 단편화 오프셋(fragment offset) : 패킷 초기 데이터로부터 떨어진 위치 (순서 보장되지 않으므로)
- TTL(Time To Live) : 한 홉마다(hop) 1씩 감소하여 0이 되면 패킷 폐기하고 호스트에게 Time Exceed 메시지 전송(ICMP)
- 홉 : 패킷이 호스트 또는 라우터에 1번 전달되는 것
- 프로토콜 : 상위 계층 프로토콜 정보. TCP 6번, UDP 17번
- 송신지 IP 주소(source IP address)
- 수신지 IP 주소(destination IP address)
- 주소 형태 : 옥텟(octet. 0~2^8 사이의 10진수) 4개. ex) 255.255.255.255
- IPv6 : IPv4 의 고갈을 막기 위해 등장한 IP 주소
- IPv6 패킷 : IPv4 에 비해 간소화되어있음(기본 헤더).
- 다음 헤더(next header) : 간소화된 기본 헤더 이외의 확장 헤더
- 기본 헤더와 페이로드 사이에 위치
- 홉 간 옵션, 수신지 옵션, 라우팅, 단편화 등
- 단편화 확장 헤더 : IPv6 의 단편화를 담당하는 확장 헤더
- 예약됨(reserved), 예약(res) : 0으로 현재 사용하지 않음
- 단편화 오프셋, M flag(IPv4의 MF), 식별자
- 홉 제한(hot limit) : TTL
- 송신지 IP 주소
- 수신지 IP 주소
- 다음 헤더(next header) : 간소화된 기본 헤더 이외의 확장 헤더
- IPv6 패킷 : IPv4 에 비해 간소화되어있음(기본 헤더).
ARP(Address Resolution Protocol) : IP 주소를 통해 MAC 주소를 알아내는 프로토콜
- ARP 요청(ARP request) : 네트워크 내 모든 호스트에게 ARP 패킷 브로드캐스트 메시지
- 프레임 페이로드(데이터) 내 포함
- 오퍼레이션 코드(Opcode) : 1이면 ARP 요청, 2이면 ARP 응답
- 송신지, 수신지 하드웨어 주소(Sender, Target Hardware Address) : MAC 주소. ff:~:ff, 00:~:00
- 송신지, 수신지 프로토콜 주소(Sender, Target Protocol Address) : IP 주소
- 프레임 페이로드(데이터) 내 포함
- ARP 응답(ARP reply) : 해당하는 MAC 주소의 호스트가 송신자에게 응답 패킷 전송
- ARP 테이블(ARP table) 갱신 : IP 주소와 MAC 주소 대응 표
03-2. IP 주소 (148p~)
IP 주소(IP address) : 네트워크 주소(network identifier) + 호스트 주소(host identifier)
- 클래스풀 주소 체계(classful addressing)
- A 클래스 : 8/24
- 초기 비트 0 (10진수 0)
- 할당 범위 0.0.0.0 ~ 127.255.255.255
- B 클래스 : 16/16
- 초기 비트 10 (10진수 128)
- 할당 범위 128.0.0.0 ~ 191.255.255.255
- C 클래스 : 24/8
- 초기 비트 110 (10진수 192)
- 할당 범위 192.0.0.0 ~ 223.255.255.255
- 호스트 주소 전부 0 : 해당 네트워크 자체
- 호스트 주소 전수 1 : 브로드캐스트 전용
- A 클래스 : 8/24
- 클래스리스 주소 체계(classless addressing) : 서브네팅(subnetting)
- 서브넷 마스크(subnet mask) : 네트워크 주소는 1, 호스트 주소는 0으로 표기한 비트열
- IP 주소와 서브넷 마스크를 비트 AND 연산(bitwise AND operation) 하면 네트워크 주소를 알 수 있다.
- ex) 172.29.208.1, 255.255.240.0 -> 172.29.208.0
- CIDR 표기법(Classless Inter-Domain Routing notation) : IP 주소 / 서브넷 마스크상 1의 갯수
- ex) 172.29.208.1/20
- 서브넷 마스크(subnet mask) : 네트워크 주소는 1, 호스트 주소는 0으로 표기한 비트열
- 공인 IP 주소와 사설 IP 주소
- 공인 IP 주소(public IP address) : 고유 IP. ISP 나 할당기관을 통해 할당 가능
- 사설 IP 주소(private IP address) : 사설 네트워크 IP. 라우터가 할당
- 10.0.0.0/8(10.0.0.0 ~ 10.255.255.255.255)
- 172.16.0.0/12(172.16.0.0 ~ 172.31.255.255)
- 192.168.0.0/16(192.168.0.0 ~ 192.168.255.255)
- NAT(Network Address Translation) : 공인 IP 와 사설 IP 변환 기술. 라우터 또는 공유기
- 정적 IP 주소와 동적 IP 주소
- 정적 IP 주소(static IP address) : 호스트에 수동으로 IP 주소 할당
- 기본 게이트웨이(default gateway) : 호스트가 속한 네크워크 외부로 나가기 위한 첫 경로(첫 번째 홉). 공유기 주소
- 동적 IP 주소(dynamic IP address) : 호스트에 자동으로 IP 주소 할당
- DHCP(Dynamic Host Configuration Protocol) : IP 동적 할당 프로토콜. 호스트와 DHCP 서버간 통신
- DHCP Discover(Client -> DHCP) : 송신지 주소 0.0.0.0 으로 DHCP 서버 검색(브로드캐스트)
- DHCP Offer(DHCP -> Client) : 할당해 줄 IP 주소 제안
- DHCP Request(Client -> DHCP) : 브로드캐스트로 IP 주소 사용 요청
- DHCP ACK(Acknowledge)(DHCP -> Client) : 클라이언트에게 IP 주소 할당(임대)
- 임대 기간이 끝나면 재할당하거나 임대 갱신(lease renewal)
- DHCP(Dynamic Host Configuration Protocol) : IP 동적 할당 프로토콜. 호스트와 DHCP 서버간 통신
- 정적 IP 주소(static IP address) : 호스트에 수동으로 IP 주소 할당
예약 주소
- 루프백(loopback address) : 127.0.0.0/8(127.0.0.0 ~ 127.255.255.255)
- 로컬호스트(localhost)
- 자기 자신을 호스트인 양 사용하여 패킷 전송 가능
- 이 네트워크의 이 호스트 : 0.0.0.0/8(0.0.0.0 ~ 0.255.255.255.255)
- 모든 임의의 IP 주소 : 0.0.0.0/0. 디폴트 라우트(default route) 결정
03-3. 라우팅 (170p~)
라우팅 : 라우터의 핵심 기능. 패킷이 이동할 경로를 설정하고 이동시키는 것
라우터 : 3계층의 핵심 장비
- 공유기 : 홈 라우터(home router). 라우터 + NAT + DHCP + 방화벽
- 홉(hop) : 라우터와 라우터 간 이동하는 하나의 과정
- 라우팅 테이블(routing table) : 수신지까지 도달 정보를 명시한 표
- 수신지 IP 주소, 서브넷 마스크 : 최종 패킷 전달 대상
- 다읍 홉(next hop) : 게이트웨에. 다음으로 거쳐야 할 호스트의 IP 주소 또는 인터페이스
- 네트워크 인터페이스 : 패킷을 내보낼 통로. NIC 또는 인터페이스에 대응하는 IP
- 메트릭(metric) : 해당 경로로 이동하는 데 드는 비용
- 디폴트 라우트(default route) : 기본 게이트웨이로 패킷을 내보낼 경로. 0.0.0.0/0
- 라우팅 테이블(routing table) : 수신지까지 도달 정보를 명시한 표
정적 라우팅과 동적 라우팅 : 라우팅 테이블을 만드는 방법
- 정적 라우팅(static routing) : 수동으로 채운 라우팅 테이블을 기반으로 라우팅하는 방식
- 동적 라우팅(dynamic routing) : 자동으로 라우팅 테이블을 만들고 이를 이용하여 라우팅하는 방식
- AS(Autonomous System) : 한 회사나 집단에서 관리하는 라우터 집단 네크워크
- AS 밖과 통신할 때는 AS 경계 라우터(ASBR; Autonomous System Boundary Router) 사용
- AS(Autonomous System) : 한 회사나 집단에서 관리하는 라우터 집단 네크워크
라우팅 프로토콜(routing protocol) : 패킷 이동 최적 경로 찾는 프로토콜
- IGP(Interior Gateway Protocol) : AS 내부 수행 라우팅 프로토콜
- RIP(Routing Information Protocol) : 거리 벡터(distance vector) 사용
- 경로 정보를 주기적으로 교환하여 라우팅 테이블 갱신
- 홉 수가 가장 적은 경로를 최적 경로로 판단
- OSPF(Open Shortest Path First) : 링크 상태(link state) 사용
- 네트워크의 그래프를 링크 상태 데이터베이스에 저장(LSDB; Link State DataBase)
- LSDB 를 기반으로 최적 경로 선택
- 네트워크 구성이 변경되었을 때 갱신
- 에어리어(area)로 구획화하고 내부에서만 링크 상태 공유. 경계 라우터 ABR(Area Border Router)
- RIP(Routing Information Protocol) : 거리 벡터(distance vector) 사용
- EGP(Exterior Gateway Protocol) : AS 외부 수행 라우팅 프로토콜
- BGP(Border Gateway Protocol) : AS 간 통신 프로토콜(eBGP; external) (AS 내부 통신도 가능. iBGP; internal)
- 피어(peer) : BGP 메시지를 주고받을 수 있도록 연결된 ASBR
- 속성(attribute) : 경로 결정에 대한 부가 정보
- AS-PATH : 수신지에 이르는 과정에서 통과하는 AS 들의 목록
- 라우팅 시 라우터 수가 아님 ‘AS 수’ 가 최단경로 기준이므로, AS-PATH 가 짧아도 통과해야 하는 라우터 수가 많을 수 있음
- ‘거리’가 아닌 ‘경로’ 를 고려(경로 벡터. path vector). 자신의 AS 가 PATH 상에 포함되면 순환으로 간주해 폐기
- NEXT-HOP : 다음으로 거칠 라우터의 주소
- LOCAL-PREF(preference) : 정책으로 설정한 선호도값. AS-PATH 나 NEXT-HOP 보다 우선 적용
- AS-PATH : 수신지에 이르는 과정에서 통과하는 AS 들의 목록
- 정책(policy) : 경로 결정을 의도를 가지고 수동으로 제어
- BGP(Border Gateway Protocol) : AS 간 통신 프로토콜(eBGP; external) (AS 내부 통신도 가능. iBGP; internal)
This post is licensed under CC BY 4.0 by the author.