2025-11-11
오늘 배운 것
03-1 LAN을 넘어서는 네트워크 계층
- 네트워크 계층
- IP 주소를 이용해 송수신지 대상을 지정
- 다른 네트워크에 이르는 경로는 결정하는 라우팅을 통해 다른 네트워크와 통신
데이터 링크 계층의 한계
- 물리 계층과 데이터 링크 계층만으로는 다른 네트워크까지의 도달 경로를 파악하기 어려움
- 물리 계층과 데이터 링크 계층은 기본적으로 LAN을 다루는 계층
- 하지만 LAN에 속한 호스트끼리만 통신하는 것은 아님 → 라우팅이 필요
- 라우팅
- 패킷이 이동할 최적의 경로 결정 → 네트워크 계층의 라우터가 담당
- MAC 주소만으로는 모든 네트워크에 속한 호스트의 위치를 특정하기 어려움
- 모든 호스트가 모든 네트워크에 속한 모든 호스트의 MAC 주소를 서로 알고 있기 어려움 → IP 주소 필요
- IP 주소
- 네트워크 계층의 논리주소
- MAC주소는 NIC 마다 할당되는 고정된 주소
- IP 주소는 DHCP라는 특정 프로토콜을 통해 자동 할당 OR 수동 할당가능
- 한 호스트가 복수의 IP 주소를 가질 수 있음
인터넷 프로토콜
- 네트워크 계층의 가장 핵심적인 프로토콜 : IPv4, IPv6
IP 주소 형태(IPv4)
- 4바이트
- 숫자당 8비트로 표현 → 0 ~ 255 범위 안에 있는 4개의 10진수로 표기
- 옥텟 : 점으로 구분된 8비트
IP의 기능
- IP 주소 지정 : IP 주소를 바탕으로 송수신 대상 지정
- IP 단편화 : 전송 패킷의 크기가 MTU라는 최대 전송 단위보다 클 경우, 이를 MTU 크기 이항의 복수의 패킷으로 나누는 것을 의미
- MTU(Minimum Transmission Unit)
- 한 번에 전송 가능한 IP 패킷의 최대 크기
- IP 패킷의 헤더도 MTU 크기에 포함
- 일반적으로 1500 바이트
- 나누어진 패킷은 수신지에서 다시 재조합
- MTU(Minimum Transmission Unit)
IPv4
- 프레임의 페이로드로 데이터 필드에 명시됨

- 식별자
- 패킷에 할당된 번호
- 어떤 메시지에서부터 쪼개졌는지 인식하기 위해서 식별자 사용
- 플래그
- 총 3개의 비트
- 첫번째 비트 : 항상 0으로 예약된 비트 (현재는 사용 x)
- DF(Don’t Fragement) : IP 단편화 수행 x
- 1 : IP 단편화 불가
- 1로 설정되어도 패킷의 크기가 너무 크면 폐기됨
- 0 : IP 단편화 가능
- 1 : IP 단편화 불가
- MF(More Fragment) : 단편화된 패킷이 더 있는지 여부
- 1 : 아직 쪼개진 패킷이 남음
- 0 : 이 패킷이 마지막 패킷
- 단편화 오프셋
- 단편화되기 전에 패킷의 초기 데이터에서 몇 번째로 떨어진 패킷인지
- 순서대로 도착하지 않은 단편화된 패킷들 재조합 용도로 활용
- TTL(Time To Live)
- 패킷의 수명
- 홉 마다 1씩 감소
- 홉 : 패킷이 호스트 또는 라우터에 한 번 전달 되는 것
- 무의미한 패킷이 네트워크상에 지속적으로 남아 있는 것 방지
- 0이 되면 해당 패킷 폐기 후 송신 호스트에게 시간 초과(Time Exceeded) 메시지 전송
- ICMP 프로토콜의 역할
- 프로토콜
- 상위 계층의 프로토콜이 무엇인지 나타냄
- TCP : 6
- UDP : 17
- 송신지 IP 주소 & 수신지 IP 주소
- 송수신지의 IPv4 주소
- IP 단편화 & 재조합 → 식별자, 플래그, 단편화 오프셋
- 상위 계층 프로토콜 → 프로토콜 필드
- 남은 수명 → TTL
- IP 주소 지정 - 송수신지 IP 주소
- 송수신지의 IPv4 주소
IPv6
- IPv4 주소는 총 2^32개로 약 43억개 ⇒ 부족
- 이를 해결하기 위해 등장한 주소 체계
- 16바이트
-
콜론으로 구분된 8개 그룹의 16진수로 표기

- 다음 헤더(next header)
- 상위 계층의 프로토콜을 가리키거나 확장 헤더를 가리킴
- IPv6는 기본 헤더 외에도 추가적인 헤더 정보가 필요한 경우 확장 헤더를 추가로 가질 수 있음
- 확장 헤더
- 기본 헤더와 페이로드 데이터 사이에 위치
- 예
- 홉 간 옵션 : 송신지에서 수신지에 이르는 모든 경로의 네트워크 장비가 패킷을 검사
- 수신지 옵션 : 수신지에서만 패킷을 검사
- 라우팅 : 라우팅 관련 정보 운반
- 단편 : 단편화
- IPv6에서는 단편화 관련 필드가 없고 이 확장헤더를 통해 단편화가 이루어짐
- 구성 : 다음 헤더 + 예약 필드 + 단편화 오프셋 + 예약 필드 + M + 식별자
- M : 1일 때 단편화된 패킷 남음 / 0일 때 마지막 패킷
- 식별자 : 동일 메시지에서 단편화된 패킷
- ESP(Encapsulation Security Protocol), AH(Authentication Header) : 암호화와 인증
- 확장 헤더
- 홉 제한
- 패킷의 수명
- 송신지 IP 주소 & 수신지 IP 주소
- 송수신지 IPv6 주소
- IPv4 헤더 길이는 가변적 ↔ IPv6 기본 헤더는 40 바이트로 고정
- 송수신지 IPv6 주소
ARP
- 상대의 호스트의 IP 주소는 알지만, MAC 주소는 알지 못하는 상황에서 사용하는 프로토콜
- 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소 알아냄
1. ARP 요청
- 네트워크 내의 모든 호스트에게 ARP 요청이라는 ARP 패킷을 브로드캐스트
2. ARP 응답
- 응답을 받은 해당 호스트는 자신의 MAC 주소를 담은 ARP 응답이라는 ARP 패킷을 유니캐스트함
- 나머지 응답을 받은 호스트는 자신에게 해당하는 메시지가 아님으로 폐기
3. ARP 테이블 갱신
- ARP 를 활용할 수 있는 모든 호스트는 ARP 테이블 정보 유지
- 1, 2단계를 통해 알게된 IP주소와 MAC 주소의 연관 관계를 ARP 테이블에 갱신
- ARP 테이블은 일정 시간이 지나면 삭제 또는 임의 삭제도 가능
- 이후 브로크 캐스트로 ARP 요청없이 바로 통신 가능
- ARP 테이블은 ARP 캐시(테이블)이라고도 불림
ARP 패킷

- 프레임의 페이로드에 포함되어 전송
- 오퍼레이션 코드 : ARP 패킷의 유형
- 1 : ARP 요청
- 2 : ARP 응답
- 송신지 하드웨어 주소 / 수신지 하드웨어 주소 : MAC 주소
- ARP 요청시, 이더넷 프레임의 수신지 MAC 주소에는 브로드 캐스트 메시지임을 나타내는 ff:ff:ff:ff:ff:ff:ff:ff, 수신지 하드웨어 주소에는 00:00:00:00:00:00:00:00 명시
- 송신지 프로토콜 주소 / 수신지 프로토콜 주소 : IP 주소
외부 네트워크 호스트에게 통신할 때는? A → B
- 호스트 A는 라우터 A와 ARP
- 라우터 A는 라우터 B와 ARP
- 라우터 B는 호스트 B와 ARP
- 이건 간략화된 예시이고 실제 라우터간 통신에서는 ARP만 사용하지는 않음
03-2 IP 주소
- IP 주소 : 네트워크 주소 + 호스트 주소
- 네트워크 주소 : 호스트가 속한 특정 네트워크 식별
- 호스트 주소 : 네트워크 내에서 특정 호스트 식별
네트워크 주소와 호스트 주소
- 네트워크주소 = 네트워크 ID = 네트워크 식별자
- 호스트 주소 = 호스트 ID = 호스트 식별자
- 네트워크 주소와 호스트 주소를 구분하는 범위는 유동적
- 네트워크 주소 많이 할당 ⇒ 호스트 주소 부족
- 호스트 주소 많이 할당 ⇒ IP 주소 낭비
- 해결책 ⇒ 클래스
클래스풀 주소 체계
- 클래스 : 네트워크 크기에 따라 IP 주소를 분류하는 기준
- 총 5개 : A, B, C, D, E
- D는 멀티캐스트, E는 특수 목적을 위한 예약 클래스로 제외되고 A, B, C만 실질적으로 사용
- 총 5개 : A, B, C, D, E
- 클래스풀 주소 체계 : 클래스를 기반으로 IP 주소를 관리
- A
- 네트워크 주소
- 0으로 시작
- 1옥텟
- 호스트 주소
- 3옥텟
- 0.0.0.0 ~ 127.255.255.255
- 네트워크 주소
- B
- 네트워크 주소
- 10으로 시작
- 2옥텟
- 호스트 주소
- 2옥텟
- 128.0.0.0 ~ 191.255.255.255
- 네트워크 주소
- C
- 네트워크 주소
- 110으로 시작
- 3옥텟
- 호스트 주소
- 1옥텟
- 192.0.0.0 ~ 223.255.255.255
- 네트워크 주소
- 단, A, B, C 모두 호스트 주소가 전부 0(해당 네트워크 자체를 의미)이거나 전부 1(브로드캐스트)인 주소는 사용 불가
- A
클래스리스 주소 체계
- 클래스풀 주소 체계의 한계
- 클래스별 네트워크의 크기가 고정되어 있기에 여전히 다수의 IP 주소 낭비
- 예
- 단일 조직이 300명 정도일 때 C 클래스는 IP주소가 최대 254개이기 때문에 B클래스를 사용해야되는데 이렇게 되면 낭비가 심해짐
- 예
- 클래스별 네트워크의 크기가 고정되어 있기에 여전히 다수의 IP 주소 낭비
- 클래스리스 주소 체계
- 클래스에 구애받지 않고 네트워크의 영역을 나누어서 호스트에게 IP 주소 공간을 할당하는 방식
서브넷 마스크
- 클래스리스 주소 체계에서 네트워크와 호스트를 구분 짓는 수단
- 네트워크 주소는 1, 호스트 주소는 0으로 표기한 비트열
- 서브네팅 : 클래스를 원하는 크기로 더 잘게 쪼개어 사용하는 것
서브네팅: 비트 AND 연산
- 서브넷 마스크를 이용해 네트워크 주소와 호스트 주소를 구분 짓는 방법 ⇒ IP 주소와 서브넷 마스크를 비트 AND 연산
서브넷 마스크 표기: CIDR
- IP 주소/서브넷 마스크상의 1의 개수로 표기하는 형식
- 예 : 192.168.219.103/24
공인 IP 주소와 사설 IP 주소
- 전세계에는 고유한 IP 주소와 고유하지 않은 IP 주소가 있음
공인 IP 주소
- 전세계에서 고유한 IP 주소
- 네트워크 간의 통신시 사용하는 주소
- ISP나 공인 IP 주소 할당 기관에서 할당
사설 IP 주소와 NAT
- 사설 네트워크에서 사용하기 위한 IP 주소
- 사설 네트워크 : 인터넷이나 외부 네트워크에 공개되지 않은 네트워크
- 모든 네트워크 기기의 IP 주소를 별도로 신청하지 않아도 되는 이유 → 사설 IP 주소를 사용하기 때문
- 사설 IP 주소 용도로 예약된 주소 공간
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
- 라우터 : 사설 IP 주소의 할당 주체
- 할당 받은 사설 IP 주소는 해당 호스트가 속한 사설 네트워크상에서만 유효
- 외부 사설 IP 주소와 중복 가능
- NAT
- 사설 IP주소와 외부에서 사용되는 공인 IP 주소를 변환하는 기술
- 대부분의 라우터와 공유기는 해당 기능을 내장
정적 IP 주소와 동적 IP 주소
정적 할당
- 직접 수작업으로 IP 주소를 부여
- 정적할당으로 부여된 주소 = 정적 IP 주소
동적 할당과 DHCP
- 동적 할당 : 수작업 없이 호스트에 IP 주소가 동적으로 할당되는 방식
- 동적할당으로 부여된 주소 = 동적 IP 주소
- 장점
- 호스트 수가 많아져도 관리 용이
- 잘못되거나 중복되는 IP 주소 입력의 위험성 제거
- DHCP(Dynamic Host Configuration Protocol)
- 응용계층의 IP 동적할당에 사용되는 프로토콜
- IPv4 → DHCPv4, IPv6 → DHVPv6
- IP 주소를 할당받고자 하는 호스트와 해당 호스트에게 IP 주소를 제공하는 DHCP 서버간에 메시지를 주고받는 과정으로 할당이 이루어짐
- 일반적으로 라우터가 DHCP 서버의 역할을 수행하고, 특정 호스트에 DHCP 서버 기능을 추가할 수도 있음
- DHCP 서버는 클라이언트에게 할당 가능한 IP 주소 목록을 관리하다가 클라이언트가 요청할 때 IP 주소를 할당
- DHCP로 할당받은 IP 주소는 사용할 기간이 정해져 있고 임대 기간이 끝나면 다시 DHCP 서버로 반납
- 일반적으로 수시간 에서 수일
- 할당 과정
- DHCP Discover(클라이언트 → DHCP 서버)
- 클라이언트는 DHCP Discover 메시지를 브로드 캐스트하여 DHCP 서버를 전송
- 이때 클라이언트는 아직 IP 할당이 안되어 송신지 IP 주소는 0.0.0.0
- DHCP Offer(DHCP 서버 → 클라이언트)
- DHCP Discover 메시지를 응답받은 DHCP 서버는 IP 주소, 서브넷 마스크, 임대 기간 등의 정보가 포함된 DHCP Offer 메시지를 보냄
- DHCP Request(클라이언트 → DHCP 서버)
- DHCP Offer 메시지를 응답 받은 클라이언트는 브로드 캐스트로 DHCP Request를 전송
- DHCP ACK(DHCP서버 → 클라이언트)
- DHCP 서버는 DHCP ACK 메시지를 클라이언트에게 보내고 이 응답을 받은 클라이언트는 할당 받은 IP 주소를 사용
- DHCP Discover(클라이언트 → DHCP 서버)
- IP 주소 사용 기간이 끝나면 반납 뒤에 할당과정을 다시 해야하지만 임대 갱신을 통해 연장할 수 있음
- 임대 갱신 : 임대 기간이 끝나기 전에 임대 기간 연장
- 기본적으로 두 차례 자동 수행
- 모두 실패 시 IP 주소 DHCP 서버로 반납
- 임대 갱신 : 임대 기간이 끝나기 전에 임대 기간 연장
03-3 라우팅
- 라우팅 : 패킷이 이동할 최적의 경로를 설정한 뒤 해당 경로로 패킷을 이동시키는 것
라우터
- 네트워크 계층의 장비
- L3 스위치라는 네트워크 계층의 장비 이지만 오늘날 라우터와 L3 스위치는 기능상 상당 부분 유사하여 엄밀히 구분하지 않음
라우팅 테이블
- 특정 수신지까지 도달하기 위한 정보를 명시한 일종의 표와 같은 정보
- 라우팅 테이블에 포함되는 정보는 라우팅 방식이나 호스팅 환경에 따라 달라질 수 있음
- 공통적으로 가지고 있는 핵심 정보
- 수신지 IP 주소 & 서브넷 마스크 : 최종적으로 패킷을 전달할 대상
- 다음 홉(=게이트웨이) : 최종 수신지까지 가기 위해 다음으로 거쳐야 할 호스트의 IP 주소나 인터페이스
- 네트워크 인터페이스 : 패킷을 내보낼 통로
- 인터페이스(NIC) 이름이나 대응하는 IP 주소 명시
- 메트릭 : 해당 경로로 이동하는 데에 드는 비용
- 메트릭이 낮은 경로를 선호
- 디폴트 라우트는 기본적으로 패킷을 내보낼 경로
- 기본 게이트는 호스트가 속한 네트워크 외부로 나아가기 위한 첫번 째 경로
- 일반적으로 기본 게이트 웨이가 디폴트 라우트
정적 라우팅과 동적 라우팅
정적 라우팅
- 사용자가 수동으로 직접 채워 넣은 라우팅 테이블의 항목을 토대로 라우팅 되는 방식
동적 라우팅
- 자동으로 라우팅 테이블 항목을 만들고 이를 이용하여 라우팅 하는 방식
- 수시로 라우팅 테이블 항목이 바뀔 수 있음
- 동적 라우팅 프로토콜
- 특정 수신지까지 도달하기 위한 최적의 경로를 찾아 라우팅 테이블에 추가하기 위해 라우터 끼리 서로 자신의 정보를 교환하는 과정에서 사용되는 프로토콜
- 장점
- 규모가 큰 네트워크 관리 용이
- 입력 실수 방지
- 경로상에 문제가 발생한 라우터 우회 가능
라우팅 프로토콜
- 라우터끼리 자신들의 정보를 교환하며 패킷을 이동할 최적의 경로를 찾기 위한 프로토콜
- AS 내부 → IGP(Interior Gateway Protocol), EGP(Exterior Gateway Protocol)
IGP: RIP와 OSPF
- RIP(Routing Information Protocol)
- 거리 벡터 기반의 라우팅 프로토콜
- 거리는 패킷이 경유한 라우터의 수(홉수)
- 인접한 라우터끼리 경로 정보를 주기적으로 교환하며 라우팅 테이블 갱신
- 홉 수가 가장 적은 경로를 최적의 경로로 판단
- 홉수가 작을 수록 메트릭도 작음
- OSPF(Open Shortest Path First)
- 링크 상태 라우팅 프로토콜
- 링크 정보를 비롯한 현재 네트워크 상태를 그래프 형태로 링크 상태 데이터 베이스에 저장
- 라우터들의 연결 관계, 연결 비용 등 저장됨
- 링크 상태 데이터베이스를 기반으로 네트워크 구성을 마치 지도처럼 그린 뒤 최적의 경로 선택
- 대역폭이 높을 수록 메트릭이 낮은 경로로 인식
- 네트워크 구성이 변경되었을 때 라우팅 테이블 갱신
- 네트워크 규모가 크면 갱신 시 모든 정보를 저장하기 어려움으로 에어리어 단위로 나눔
- 에어리어
- AS를 에어리어라는 단위로 나누고 구분된 에어리어 내에서만 링크 상태를 공유
- ABR(Area Border Router) : 에어리어 경계에 있는 라우터로 에어리어 간의 연결을 담당
- 에어리어
EGP: BGP
- BGP(Border Gateway Protocol)
- AS 간의 통신에서 사용되는 대표적인 프로토콜
- AS 간의 통신 → eBGP(External BGP)
- AS 내의 통신 → iBGP(internal BGP)
- AS 간에 정보를 주고받기 위해서는 AS 내에서 eBGP를 사용하는 라우터가 하나 이상 있어야 하고 또 다른 AS의 eBGP 라우터와 연결되어야 함
- 피어 : BGP 메시지를 주고받을 수 있도록 연결된 라우터
- 피어링 : 다른 AS와의 BGP 연결을 유지하기 위해서 eBGP 라우터끼리 연결되는 과정
- RIP나 OSPF와 달리 최적의 경로를 결정하는 과정이 복잡하고 일정하지 않음
- 속성과 정책을 고려
- 속성 : 경로에 대한 일종의 부가 정보
- AS-PATH
- 메시지가 수신지에 이르는 과정에서 통과하는 AS들의 목록
- 메시지가 AS를 거칠 때마다 AS-PATH에 추가
- 따라서!
- BGP는 AS 간 라우팅을 할 때 거치게 될 라우터의 수가 아닌 AS의 수를 고려
- AS-PATH의 길이가 짧아도 홉수는 더 많을 수 있음
- BGP는 RIP처럼 단순히 수신지에 이르는 거리가 아닌 메시지가 어디를 거쳐 이동하는지를 나타내는 경로를 고려
- BGP는 경로 벡터 라우팅 프로토콜의 일종
- BGP는 AS-PATH의 자신의 AS가 포함되어 있으면 해당 메시지를 버림으로써 순환을 방지
- BGP는 AS 간 라우팅을 할 때 거치게 될 라우터의 수가 아닌 AS의 수를 고려
- NEXT-HOP
- 다음으로 거칠 라우터(홉)의 IP 주소
- LOCAL-PREF
- 지역 선호도로 AS 외부 경로에 있어 AS 내부에서 어떤 경로를 선호할지에 대한 척도
- AS-PATH나 NEXT-HOP속성보다 우선시됨
- 값이 클수록 우선으로 선택
- 따라서
- 특정 정책에 따라서 경로가 결정됨
- 예
- 성능을 우선시 → 송수신 지연시간이 적고 대역폭이 높은 AS선택
- 보안과 안정성 우선시 → 속도는 느리더라도 더 안전한 AS 선택
- AS-PATH
- 속성 : 경로에 대한 일종의 부가 정보
- 속성과 정책을 고려
- AS 간의 통신에서 사용되는 대표적인 프로토콜