728x90
Addressing : packet forwarding to another LAN
- walkthrough : datagram을 R을 통해 A에서 B로 전송한다.
- A는 B의 IP 주소를 안다 : by DNS
- A는 R의 IP 주소를 안다 : by DHCP
- A는 R의 MAC 주소를 안다 : by ARP
- A가 출발지를 A, B로 하는 IP datagram 생성
- A는 R의 MAC주소를 목적지 주소로 하는 link-layer frame을 생성하고, frame은 A-to-B의 IP datagram을 포함한다. (encapsulation)
- frame은 A에서 R로 전송된다.
- R은 frame을 받고, datagram을 삭제하고, IP로 전달한다.
- R은 A-B로 이동하는 datagram forward
- R은 B의 MAC 주소를 목적지 주소로 하는 link-layer frame을 생성한다. frame은 A-to-B IP datagram을 포함한다. (encapsulation)
- B에 전달
주소 번역 (Address Translation)
- 인터네트는 논리적 (가상) 네트워크
- 계층 하위에 있는 물리적 네트워크 / 링크에게 전달 위임
- 위임할 때, IP 주소를 해당 물리적 (physical) 주소로 변환해야 한다. (MAC 주소)
- Ex. IP주소 ⇒ 이더넷 주소
- 변환이 필요한 주소는 (목적지 호스트 or 다음 홉 라우터)
- 필요한 주소를 어떻게 알아낼까?
- IP 주소의 호스트 부분에 물리적 주소를 인코드 시켜 넣어준다.
- IPv4에서는 불가능 ; IPv6에서 채택 (IP 주소를 물리적으로 encoding)
- 테이블 기반
- IP 주소의 호스트 부분에 물리적 주소를 인코드 시켜 넣어준다.
→ ARP (Address Resolution Protocol)
- IP 주소와 물리적 주소가 바인딩되어 있는 테이블 구축 담당
- IP 주소가 테이블에 없다면 요청을 브로드캐스트한다.
- 해당 호스트는 자신의 물리적 주소(MAC)를 보내준다.
- 오랫동안 사용되지 않는 엔트리는 없애준다. (soft state)
- 프로토콜 계층에서의 위치?
- IP 계층으로부터 IP 주소를 받고 MAC 주소를 돌려준다.
- Ethernet을 사용하여 MAC 주소를 얻어온다.
ARP 동작 과정
- A가 broad casting으로 B에 대한 요청을 보낸다. (IP를 이용하여 찾기)
- B가 아닌 노드들은 응답하지 않는다.
- B는 MAC 주소를 응답한다.
ARP 프로토콜
- 요청 형식 (Request format) - 가장 일반적인 경우를 고려한다.
- HardwareType (16) : 물리적 네트워크의 유형 Ex. 이더넷
- ProtocolType (16) : 상위 계층의 프로토콜 유형 Ex. IP
- HLEN & PLEN (각 8) : 물리적 주소와 프로토콜 주소의 길이
- Operation (16) : 요청 또는 응답 (요청인지 응답인지)
- Source / Target Physical / Protocol addresses
- Source : 출발지
- Target : 목적지
- Hardware Addr : MAC 주소
- Protocal Addr : (주로) IP 주소
- MAC 주소가 48bit이기 때문에 32 / 16 비트로 나눠 보낸다.
- 특징
- 테이블의 엔트리는 약 10분의 타임아웃을 갖는다.
- 요청에 대한 목적지에서는 발신지 주소로 테이블을 갱신한다.
- 엔트리가 이미 있다면 테이블을 갱신하고 타임아웃을 연장한다.
호스트 구성 (Configuration) : DHCP
- IP 주소 배정의 문제
- IP 주소는 네트워크의 구조를 반영해야 한다.
- 즉, 같은 네트워크에 있는 다른 호스트들의 주소와 앞부분이 같아야 한다.
- IP 주소 이외에도 구성 정보가 필요하다.
- default router, name server (domain name을 알면 IP를 알아낼 수 있음)
- 편의를 위해 자동 구성 기능이 필요하다.
- ⇒ DHCP (Dynamic Host Configuration Protocol)
DHCP 동작
- DHCP 서버
- a pool of available addresses 를 관리한다.
- 클라이언트의 요청에 대해 구성 정보를 제공한다.
- address lease도 가능
- DHCP relay(전달)
- 구성 정보 요청을 서버로 전달
- Server discovery
- DHCPDISCOVER 메시지를 브로드캐스팅
- Ethernet이 메시지를 전송한다.
- IP를 거치지 않고 MAC 주소를 바로 보내는 것
공유기란?
- 하나의 인터넷 주소를 여러 호스트가 공유해서 사용한다는 말에서 유래했다.
- 대개는 wireless router
- 인터넷 서비스 업체 (ISP)는 인터넷 링크 연결을 제공하면서, 하나의 IP 주소를 DHCP로 할당한다.
- 공유기는 내부 LAN의 여러 호스트들에게 인터넷 접근을 제공한다.
- 유선 LAN 지원 : LAN Switch
- 무선 LAN 지원 : AP (Access Point)
- IP 패킷을 내외부로 전달 : IP 라우터
- LAN 내부에서 사설 IP 주소 (10.xx.xx.xx, 192.168.xx.xx) 사용 지원 : DHCP 서버
- 하나의 IP 주소를 여러 호스트가 사용 → NAT (Network Address Translation)
- TCP / UDP 포트 번호를 활용해서 주소 변환 : (10.0.0.1, 2001) ↔ (138.76.29.7, 5001)
- 보안지원 : Firewall(방화벽) - 패킷 필터링
NAT : network address translation
- host 10.0.0.1이 128.119.40.186, 80으로 data gram 전송
- NAT router가 datagram의 source addr을 10.0.0.1, 3345 에서 138.76.29.7, 5001로 변경한다. table 업데이트 수행.
- destination address에 도착한다.
- NAT router는 datagram 138.76.29.7, 5001을 10.0.0.1, 3345로 변경한다.
- 패킷이 나갈 때 주소를 저장한다.
ICMP (Internet Control Message Protocol)
- IP 동작을 보조하기 위한 제어 프로토콜
- IP 자체에 포함시키지 않고, 별도의 프로토콜 (out-of-band 기법) → 확장성을 챙길 수 있다.
- 기능 면에서 보면 IP의 동료 (companion protocol)
- 실제 계층 면에서는 IP의 user (ICMP가 IP의 상위 계층)힌트 수준 : 반드시 필요하지는 않음 ⇒ IP로 전송 (오면 좋고 아님 말고)
- PC1의 icmp echo request → PC2의 icmp echo reply
- ping이라는 응용 프로그램이 ICMP 프로토콜을 사용하여 ICMP에게 전달하라는 ‘논리적 명령’ 내림 → 실제로는 IP를 사용하여 수행
- 전송 시 R1에서 문제가 발생하면 패킷을 버리고 버린 이유를 알려준다. R1의 ICMP 계층이 H0의 IP를 거쳐 H0의 ICMP로 전달된다.
ICMP (Internet Control Message Protocol)
- 제어 작업 내용
- 응답 (Echo) - ping이 사용
- 라우터의 변경 (라우터에서 발신지로)
- 라우터가 패킷을 버리는 것
- 목적지에 도착하는 것이 불가능
- 프로토콜, 포트, 또는 호스트 등의 이유
- TTL을 초과한 경우 (데이터 그램이 계속 네트워크를 배회하는 일이 없다)
- 체크섬이 실패한 경우
- 재조립을 실패한 경우
- 단편화를 할 수 없는 경우
- 목적지에 도착하는 것이 불가능
가상 네트워크 (Virtual Networks)
- 실제의 물리적 연결과 독립적으로 연결 / 구축되는 네트워크
- 즉, 물리적 네트워크 위에 떠 있는 가상의 네트워크
- 예. VPN (Virtual Private Networks)
- 전용선 대신 공용 네트워크를 이용하여 사설망을 구축한다. (가상 link 만들기)
- IP 망을 통한 사설망 구축
- IP는 모든 노드가 서로 통신 가능; connectivity 제어가 불가능하다.
- IP 터널링 기법 (안 보이게 터널을 뚫는 것)
IP 터널링 (Tunneling)
- 임의의 네트워크 사이에 두고 있는 한 쌍의 노드 사이를 연결하는 점대점 링크
- 즉, 라우터 간의 가상 링크 (virtual link)
- 실제 네트워크 위에 가상 링크를 빌드하는 것
- 실제 네트워크와 관련 없다.
- 참고 ) IP는 이미 실제 네트워크를 가상 링크로 간주하는 가상네트워크
- 가상 네트워크 위에 다시 가상 네트워크를 빌드할 수도 있다.
- 구현
- 링크 양 끝 노드를 발신지 / 목적지로 하여 IP encapsulation (IP 헤더를 한 번 더 감싸는 것)
- ternel entry point, tunnel exit point 존재.
- tunnel entry point에서 header encapsulation과 함께 패킷 암호화, tunnel exit point에서 decapsulation & decryption 수행
터널링 / 가상네트워크 사용 이유
- 보안 (초기 용도)
- 공용 네트워크 안에서 사설 링크 구현
- 암호화와 함께 사용 가능
- Ex. 외부에서 인트라넷 사용
- 특수 기능 구현
- 특수 기능을 가지는 가상 네트워크 구현
- Ex. 인터넷을 쓰지 않고 다른 네트워크 사이의 프로토콜을 만들 수도 있다.
- Ex. 멀티캐스트 라우팅 기능을 가지는 라우터들의 가상 네트워크 구축 (Internet의 라우터들은 잘 지원해주지 않음)
- ⇒ Mbone (Multicast Backbone) - 1:1 N번 수행 대신 1:N
- 비 IP 패킷의 IP망을 통한 전달
- Ex. IPv6 패킷의 전달; IPV6망으로의 이전 방법
VPN 서비스
- 차단 우회
- 목적지 주소, 발신지 주소에 따라 패킷 차단
- 차단되지 않는 주소에 VPN 서버 설치
- 실질적으로는, 트래픽 대리 접근; 중계하는 프록시(proxy) 서버
- 차단 지역의 노드와 해당 서버 사이에 가상 링크 ⇒ VPN
IP 터널링 (IP Encapsulation)의 의미
- 헤더 내용에 기초한 패킷 포워딩에 indirection 도입
- indirection ⇒ 융통성, 가상화 가능
- 유사 예 ) 가상 메모리, 가상 머신
- 전세계를 연결하고 있는 인터넷 위에, 가상의 연결을 만들 수 있는 기술
- 누구나 필요에 따라 자신만의 네트워크를 만들 수 있다.
- 미래의 통신망에 있어서 소프트웨어 핵심 기술
728x90
'School Lecture Study > 컴퓨터 통신' 카테고리의 다른 글
18. 인터네트워킹 (Internetworking) 기본 (1) | 2022.12.27 |
---|---|
17. 셀 스위칭 (Cell Switching): ATM (0) | 2022.12.27 |
16. 브리지(Bridge) 및 LAN 스위치 (0) | 2022.12.27 |
15. 스위칭과 포워딩 (Switching and Forwarding) (0) | 2022.12.27 |
14. 네트워크 어댑터 (0) | 2022.12.20 |