//구글콘솔 광고 추가가
728x90
반응형
정적 라우팅과 동적 라우팅
- 정적 라우팅과 동적 라우팅은 IP 주소를 할당하는 방법과 유사하다.

정적 라우팅 - 수동으로 구성된 라우팅 테이블 항목을 통해 수행되는 라우팅.
동적 라우팅 - 자동으로 라우팅 테이블 항목을 만들고, 이를 이용하여 라우팅.

정적 라우팅(static routing)
- 사용자가 수동으로 직접 채워 넣은 라우팅 테이블의 항목을 토대로 라우팅.
 ex) 10.0.0.0/24로 향하는 패킷을 192.168.1.1 게이트웨이로 정적 라우팅. 


동적 라우팅(dynamic routing)
- 네트워크의 규모가 커지고 관리해야 할 라우터가 늘어나면 정적 라우팅마능로는 관리가 힘듦.
>> 입력 실수가 발생할 수 있음.
>> 입력 실수가 없어도 라우팅 경로상에 예상치 못한 문제가 발생할 경우 경로 우회가 어려움. (유연성 떨어짐)

 

 

동적 라우팅(dynamic routing)
- 자동으로 라우팅 테이블 항목을 만들고, 이를 이용하여 라우팅.

- 라우팅 프로토콜(routing protocol) 이용.
>> 라우터끼리 자신들의 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜.

- 동적 라우팅을 하면 라우팅 테이블 항목이 수시로 변할 수 있음.
>> 라우팅 테이블의 항목을 수동으로 입력할 필요 없음.
>> 네트워크 경로상에 문제가 발생했을 때 이를 우회할 수 있게 경로가 자동으로 갱신.

 

 

라우터들의 집단 네트워크,
AS(Autonomous System)

- 동적 라우팅과 라우팅 프로토콜을 이해하기 위한 배경 지식.

- 한 회사나 단체에서 관리하는 라우터 집단.
>> AS마다 인터넷상에서 고유한 AS 번호(ASN : Autonomous System Number)가 할당.
>> AS 번호는 사설 IP 주소처럼 사설 AS 번호도 있지만, 일반적으로 "AS 번호"는 고유한 AS 번호를 지칭.

- 한 AS 내에는 다수의 라우터가 존재.
>> 라우터들은 AS 내부에서만 통신할 수도 있고, AS 외부와 통신할 수도 있음.
>> AS 외부와 통신할 경우 AS 경계에서 AS 내외로 통신을 주고받을 수 있는 "특별한 라우터"를 이용.
>> 이 "특별한 라우터" = AS 경계 라우터(ASBR :  Autonomous System Boundary Router)

 

 

라우팅 프로토콜(routing protocol)
- 라우터끼리 자신들의 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜.

- 라우팅 프로토콜의 종류.
IGP(Interior Gateway Protocol) - AS 내부에서 수행 (ex. RIP와 OSPF)
* RIP : 최적의 경로를 선정하는 과정에서 거리 벡터를 사용.
* OSPF : 최적의 경로를 선정하는 과정에서 링크 상태를 사용. 
EGP(Exterior Gateway Protocol) - AS 외부에서 수행 (ex. BGP)

 

 

RIP
: 거리 벡터 기반 라우팅 프로토콜
- "거리"는 패킷이 경유한 라우터의 수, 즉 홉의 수를 의미.
- 특정 수신지까지 도달하기 위해 "홉 수가 가장 적은 경로"를 최적의 경로라고 판단.
- 홉 수가 적을수록 라우팅 테이블상의 메트릭 값도 작아짐.
- 주기적으로 인접 라우터끼리 경로 정보 교환, 라우팅 테이블 갱신, 특정 수신지까지의 홉 수 계산.

 

OSPE
: 링크 상태(link state) 기반 라우팅 프로토콜
- 현재 네트워크 구성을 마치 지도처럼 그린 뒤, 최단거리를 찾아 최적의 경로를 선택.

- 현재 네트워크의 상태(링크 정보)를 그래프의 형태로 저장.
>> 링크 상태 데이터 베이스(LSDB: Link State DataBase)에 저장.
>> 라우터들의 연결 관계, 연결 비용 등 현재 네트워크의 상태를 그래프로 표현하기 위한 데이터 저장.

- 대역폭을 기반으로 메트릭을 계산하여 최적의 경로를 결정.
>> 대역폭이 높은 링크일수록 메트릭이 낮은 경로로 인식됨. 

** RIP는 라우팅 테이블 갱신을 위해 주기적으로 라우터 간 통신이 수행되지만 OSPE는 네트워크 구성 변경 시 라우팅 테이블이 갱신된다. 

 

EGP
: BGP(Border Gateway Protocol)
- AS 간의 통신에서 사용되는 대표적인 프로토콜.

- 엄밀하게는 AS 간의 통신이 "가능한" 프로토콜 - BGP로 AS 내 라우터 간 통신도 가능.
>> eBGP(external) BGP - AS 간의 통신을 위한 BGP.
>> iBGP(internal) BGP - AS 내의 통신을 위한 BGP.

-피어링(peering)이라는 과정을 거쳐야 함.
>> 다른 AS와의 BGP 연결을 유지하기 위해서 BGP 라우터끼리 피어가 되도록 연결되는 과정. 

유의점
- BGP는 RIP와 OSPF에 비해 최적의 경로를 결정하는 과정이 복잡하고, 일정하지 않은 경우가 많음.
- 경로 결정 과정에서 수신지 주소와 더불어 다양한 "속성"과 "정책"이 고려되기 때문임.
- BGP의 속성은 경로에 대한 부가 정보

BGP의 속성(attribute) 대표적인 3가지
AS-PATH - 메시지가 수신지에 이르는 과정에서 통과하는 AS들의 목록.
- 메시지가 AS를 거칠 때마다, AS-PATH에는 거쳐 간 AS가 추가. 
- BGP는 RIP처럼 단순 "거리"가 아닌, 어디를 거쳐 어디로 이동하는 지를 나타내는 "경로"를 고려.
- 이런 점에서 경로 백터(path vector) 라우팅 프로토콜의 일이라 부르기도 함
NEXT-HOP - 홉, 다음으로 거칠 라우터의 IP 주소를 의미.
LOCAL-PREF - LOCAL PREFerence의 약자, 말 그대로 지역 선호도를 의미.
- AS 외부 경로 선택에 있어 AS 내부에서(local) 어떤 경로를 선호할지(preference)에 대한 척도.
- 일반적으로 AS-PATH나 NEXT-HOP 속성보다 우선시.
- LOCAL-PREF 값은 AS 관리 주체가 설정하는 정책의 영향을 받음.

* 정책(policy)

- AS 관리 주체에 따라 각기 다른 상이한 정책 사용 가능.
ex. 특정 AS 우대 정책, 특정 AS 차단 정책, 보안/ 안정성 우선 정책(속도는 느릴지라도 더 안전하고 안정적인 AS를 경로로 선택), 성능 우선 정책(송수신 지연 시간이 적고 대역폭이 높은 AS를 경로로 선택) 등등. 

 

728x90
반응형
728x90
반응형
우선 라우터란?
라우터(router) - 라우팅을 수행하는 대표적인 네트워크 장비.
서로 다른 네트워크 간의 통신을 중계하며, 패킷이 목적지까지 도달할 수 있도록 최적의 경로를 선택하여 전달하는 역할을 함.

>> 네트워크 간 데이터 전달 담당.
그럼 라우팅이란?
라우팅(routing) - 네트워크까지의 도달 경로를 파악하기 위한 네트워크 계층의 장비.
패킷이 목적지 네트워크까지 도달할 수 있도록 최적의 경로를 결정하는 과정을 의미한다.

>> 최적 경로를 선택하는 논리적 과정. 네트워크 계층에서 수행됨.

 

LAN을 넘어 통신하기
: 한 개의 LAN 안이 아니라 다른 네트워크(LAN 외부)와 통신할 때 생기는 문제점.

- 데이터 링크 계층의 한계

>> 물리 계층과 데이터 링크 계층만으로는 LAN을 넘어서 통신하기 어렵다. 

1. 다른 네트워크까지의 도달 경로를 파악하기 어려움. 

2. 모든 네트워크에 속한 모든 호스트의 위치를 특정하기 어려움. 

 

라우터(router)
: 네트워크 간 통신을 가능케 하는 네트워크 계층의 장비.
- 네트워크 간 통신 과정에서 패킷은 여러 라우터를 거쳐서 다양한 경로로 이동할 수 있음.
>> 패킷은 여러 대의 라우터를 깡충깡충 거치듯 수신지까지 이동.
>> 홉 (hop) : 라우팅 도중 패킷이 호스트와 라우터 간에, 혹은 라우터와 라우터 간에 이동하는 한 과정. 
- 홉 바이 홉 라우팅(Hop - by - Hop Routing)
: 각 라우터가 목적지를 기준으로 "다음에 보낼 이웃 라우터(다음 홉)"만을 알고, 해당 홉으로 패킷을 전달하는 방식의 라우팅.

-라우팅 과정(홉 수) 확인
>> 윈도우 - tracert www.google.com
>> 리눅스나 맥OS - traceroute www.google.com

 

라우터는 라우팅을 어떻게 수행할까?
학습의 주안점 : 라우팅의 핵심, 라우팅 테이블(routing table)
>> 라우팅 테이블이 만들어지는 방법과 프로토콜에 따른 라우팅의 분류.

 

라우팅 테이블(routing table)

- 특정 수신지까지 도달하기 위한 정보를 명시한 표와 같은 정보.

- 라우터는 라우팅 테이블을 참고하여 수신지까지의 도달 경로를 판단.

** 라우팅 테이블에 포함된 정보
수신지 IP 주소와 서브넷 마스크 - 최종적으로 패킷을 전달할 대상.
다음 홉(next hop) - 최종 수신지까지 가기 위해 다음으로 거쳐야 할 노드의 주소, 호스트의 IP 주소나 인터페이스.
- 게이트웨이라고 명시되기도 함.
네트워크 인터페이스 - 패킷을 내보낼 통로.
- 인터페이스(NIC) 이름이 직접 명시되거나 인터페이스에 대응하는 IP 주소 명시.
메트릭(metric) - 해당 경로로 이동하는 데에 드는 비용. (낮으면 낮을 수록 우선순위 높음)
- 라우팅 테이블의 여러 경로 중 메트릭이 낮은 경로를 선호. 
** 디폴트 라우트(default route) : 라우팅 테이블에 경로가 없을 때.
- 기본적으로 패킷을 내보낼 경로.
- "모든 IP 주소를 의미"하는 0.0.0.0/0로 명시.
- ex) 수신지 IP 주소가 1.2.3.4인 패킷을 받았다면 : 디폴트 라우트, eth2를 통해 192.168.0.1로 전송. 
- 일반적으로 기본 게이트웨이 주소 = 디폴트 라우트.
>> 기본 게이트웨이 = 네트워크 외부로 나아가기 위한 첫 경로, 일반적으로 라우터/ 공유기 주소를 의미.
>> 라우팅 테이블에 따로 경로가 등록되어 있지 않은 패킷들을 기본적으로 기본 게이트웨이(라우터)에게 전달. 
"이 수신지 주소는 뭐지? 일단 디폴트 라우트로 내보내야겠다."


< 라우팅 테이블 확인하기 >
>> 윈도우 - route print
>> 맥 OS, 리눅스 - netstat -rn
>> 라우터(CISCO 라우터) - show ip route 

 

 

 

 

728x90
반응형
728x90
반응형
클래스리스 주소 체계(classless addressing)
- 클래스 개념 없이 클래스에 구애받지 않고 네트워크의 영역을 나누고 호스트에게 IP 주소 공간을 할당하는 방식.
- 클래스풀 주소 체계보다 더 유동적이고 정교한 네트워크 구획 가능.
- 오늘날 주로 활용되는 방식. 
서브넷 마스크(subnet mask) - 클래스 없이 IP 주소의 네트워크 주소, 호스트 주소를 구분하는 수단.
- IP 주소상에서 네트워크 주소는 1, 호스트 주소는 0으로 표기한 비트열.
 >> 네트워크 내의 부분적인 네트워크(서브네트워크 subnetwork)를 구분 짓는(마스크 mask) 비트열 이라고 생각해도 됨.
- A, B, C 클래스의 기본 서브넷 마스크
 >> A 클래스 : 255.0.0.0 (11111111.00000000.00000000.00000000)
 >> B클래스 : 255.255.0.0 (11111111.11111111.00000000.00000000)
 >> C클래스 : 255.255.255.0 (11111111.11111111.11111111.00000000)

**서브넷 마스크 표기법 : CIDR 표기법   사이다?표기법
 - 10진수로 직접 표기 = 255.255.255.0 같이.
 - CIDR 표기법(Classless Inter-Domain Routing notation)
 >> IP 조소/ 서브넷 마스크상의 1의 개수 형식으로 표기
ex ) C 클래스의 기본 서브넷 마스크는 255.255.255.0 이를 2진수로 표기하면 
11111111.11111111.11111111.00000000(1이 총 24개) 따라서 /24
>> IP 주소 192.168.219.103과 서브넷 마스크 255.255.255.0 이면 192.168.219.103/24
서브네팅(subnetting) - 서브넷 마스크를 이용해 클래스를 원하는 크기로 더 잘게 쪼개어 사용하는 것.
- (서브넷 마스크 이용법) 서브넷 마스크로 네트워크 주소와 호스트 주소를 구분짓는 방법.
  >> IP 주소와 서브넷 마스크를 비트 AND 연산 -> 결과 = 네트워크 주소.
  >> 비트 AND 연산(bitwise AND operation)이란? - 피연산자가 모두 1인 경우에는 1, 아닌 경우에는 0이되는 연산.

 

서브넷 계산기 검색하면 이렇게 계산기가 만들어져 있기 때문에 손으로 계산할 필요 X.

https://seb.kr/subnet/

 

간편 서브넷 계산기 - 개발자 도구

온라인 서브넷 계산기 CIDR 또는 서브넷 마스크를 입력하고 '계산'을 누르세요.

seb.kr

 

IP 주소
: 공인 IP 주소와 사설 IP 주소, 정적 IP 주소와 동적 IP 주소가 있다.
공인 IP 주소(public IP address) 사설 IP 주소(private IP address)
- 전 세계에서 고유한 IP 주소.
- 네트워크 간의 통신.
이를테면 인터넷을 이용할 때 사용하는 IP 주소.
- 공인 IP 주소는 ISP나 공인 IP주소 할당기관을 통해 할당.
- 사설 네트워크에서 사용하기 위한 IP주소.
- 사설 IP 주소로 사용하도록 특별히 예약된 IP 주소 공간.
>> 아래에 속한 IP주소라면 사설 IP 주소.
* 10.0.0.0/8(10.0.0 - 10.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)
- 사설 IP 주소의 할당 주체는 일반적으로 라우터(공유기) 

 

- 사설 IP 주소는 호스트가 속한 사설 네트워크에서만 유효한 주소.
>> 얼마든지 다른 네트워크상의 사설 IP주소와 중복 가능.
>> 일반적으로 네트워크 간의 통신은 사설 IP 주소가 아닌 공인 IP 주소를 통해 이루어짐.

사설 IP 주소를 사용하는 호스트는 외부 네트워크와 어떻게 통신하나?
- 사설 네트워크 내에서만 유효한 사설 IP 주소는 네트워크를 나가는 순간 공인 IP 주소로 변환이 돼야 함.
이걸 가능하게 하는 기술이 바로 NAT(Network Address Traslation)   낫트~

- NAT(Network Address Traslation)
>> IP 주소 변환 기술 : 주로 사설 IP주소(네트워크 내부)와 공인 IP 주소(네트워크 외부)를 변환.
>> 대부분의 라우터와 (가정용)공유기는 NAT 기능 내장.
>> NAT를 통해 사설 IP 주소를 사용하는 여러 호스트는 그보다 적은 수의 공인 IP 주소를 공유할 수 있음. 
- 사설 네트워크의 패킷 속 사설 IP 주소는 공유기를 거쳐 공인 IP 주소로 변경.
- 외부 네트워크의 패킷 속 공인 IP 주소는 공유기를 거쳐 사설 IP 주소로 변경. 
- 공인 IP 주소와 사설 IP주소 확인 방법.
>> 현재 IP 주소 조회.
>> ipconfig(윈도우), ifconfig(맥 OS) 입력.
>> 만일 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 중 하나가 보인다면, 이는 사설 IP 주소. 
>> 네이버 검색창에 "내 IP주소"를 입력하거나 구글 검색창에 "what is my ip address" 입력.
>> 네이버나 구글은 공인 IP 주소를 인식하기 때문에 공인 IP주소를 표시해 줌.

 

정적 IP 주소 동적 IP 주소
- 정적 할당
>> 호스트에 직접(수작업으로) IP 주소를 부여하는 방식. 이렇게 할당된 IP 주소가 바로 정적 IP 주소(static IP address).
- 정적 IP 주소 부여하는 방법.
>> 윈도우나 맥OS 등의 네트워크 설정에서 IP 주소를 수동으로 설정.
>> 입력해야 하는 값들(기억해두자) : 일반적으로 부여하고자 하는 IP 주소, 서브넷 마스크, 게이트웨이(라우터) 주소, DNS 주소 입력. 
- 동적 할당
>> 호스트에 IP 주소를 프로토콜을 활용해 자동으로 할당하는 방식. IP 동적 할당에 사용되는 대표적인 프로토콜 DHCP(Dynamic Host Configuration Protocol). 이렇게 할당된 IP 주소를 동적 IP 주소(dynamic IP address).


- DHCP를 통한 IP 주소 할당
>> 클라이언트와 DHCP 서버 간 메시지 송수신을 통해 할당이 이루어짐.
* 클라이언트 : IP 주소를 할당받고자 하는 호스트.
* DHCP 서버 : 호스트에게 IP 주소를 제공하는 호스트.
  > DHCP 서버의 역할은 일반적으로 라우터(공유기)가 수행.
  > 특정 호스트에 DHCP 서버 기능을 추가할 수도 있음.
  > DHCP 서버는 클라이언트에게 할당 가능한 IP 주소 목록을 관리하다, 클라이언트 요청시 IP 주소를 할당. 
>> DHCP로 할당받은 동적 IP 주소는 사용할 기간(임대기간)이 정해짐. 
* 일반적으로 수 시간에서 수 일.
* 임대 기간이 끝난 IP 주소는 다시 DHCP 서버로 반납.


>> 모든 IP 주소를 정적으로 할당해주기엔 무리가 있음.
- 호스트의 수가 많아질 경우 관리 곤란.
- 의도치 않게 잘못된 IP 주소를 입력할 수도 있고, 중복된 IP 주소를 입력할 수도 있기 때문.

>> 그렇기 때문에 동적할당, 동적 IP 주소가 활용.
정적 IP 주소에서 게이트웨이란 무엇인가?
* 기본 게이트웨이
- 게이트웨이(gateway)의 일반적인 의미 : 서로 다른 네트워크를 연결하는 하드웨어적/ 소프트웨어적 수단.

IP주소 할당 맥락에서 사용되는 게이트웨이라 하는 용어는 기본 게이트웨이를 의미하는 경우가 많음.
- 기본 게이트웨이(default gateway)  
>> 호스트가 속한 네트워크 외부로 나가기 위한 기본적인 첫 경로(첫 번째 홉).
>> 네트워크 외부와 연결된 라우터(공유기)의 주소를 의미하는 경우가 많음.
>> IP 할당의 맥락에서 사용된 "게이트웨이"라는 용어는 기본 게이트웨이(라우터(공유기)의 주소)를 의미.


* DNS 주소
: 도메인 네임을 IP 주소와 변환해 주는 작업을 수행해 주는 특별한 서버 DNS 서버.
이 DNS 서버의 주소를 DNS 주소에 입력해 주면 됨. 
>> DNS 주소는 일반적으로 ISP가 자동으로 할당해 주는 경우가 많음. 
IP 주소 할당 과정에서 주고받는 메시지 4가지.
1. DHCP Discover.
2. DHCP Offer.
3. DHCP Request.
4. DHCP Acknowledgment(이하 DHCP ACK)

1. DHCP Discover
(클라이언트 -> DHCP 서버)
- DHCP 서버를 찾는 메시지.
- 브로드캐스트로 전송.
- 클라이언트는 아직 IP 주소를 할당받지 못했기 때문에 송신지 IP 주소는 0.0.0.0으로 설정. 
2. DHCP Offer
(DHCP 서버 -> 클라이언트)
- 클라이언트에게 할당 가능한 IP 주소 정보를 제안하는 메시지.
- 할당 가능한 IP 주소, 서브넷 마스크, 임대 기간 등의 정보들을 포함.
3. DHCP Request 
(클라이언트 -> DHCP 서버)
- DHCP Offer 메시지에 대한 응답.
- 아직까지 동적 IP 주소를 할당받지 못한 상태이기 때문에 브로드캐스트로 전송. 
4. DHCP ACK
(DHCP 서버 -> 클라이언트)
- 최종 승인과 같은 메시지.
- DHCK ACK 메시지를 수신한 클라이언트는 이제 할당받은 IP 주소를 자신의 IP 주소로 설정 후 임대 기간 동안 IP 주소 사용할 수 있음.
>> 임대 기간 동안 IP 주소를 사용하다가 사용 기간이 모두 끝나면 원칙적으로는 IP 주소를 DHCP 서버에 반납하고 다시 동일한 방법으로 IP 주소를 재할당 받아야 하지만, 임대 갱신이라는 메시지를 통해 임대 기간을 연장할 수 있다.

** 임대 갱신(lease renewal)
- IP 주소 임대 기간이 끝나기 전에 임대 기간을 연장하는 것.
- 임대 기간이 끝나기 전에 기본적으로 두 차례 자동으로 수행.
- 자동 임대 갱신이 모두 실패하면 그때 IP 주소 반납. 
728x90
반응형
728x90
반응형
IP의 핵심 기능, 주소지정!
- 주소 지정은 IP 주소로 이루어짐.
- IP 주소의 구조 : 네트워크 주소와 호스트 주소로 구성.

>> 네트워크 주소(== 네트워크 ID, 네트워크 식별자(network identifier))
: 네트워크를 표현하는 부분, 호스트가 속한 특정 네트워크를 식별.
>> 호스트 주소(== 호스트 ID, 호스트 식별자(host identifier))
: 호스트를 표현하는 부분, 특정 호스트를 식별. 

ex. 네트워크 주소가 16비트, 호스트 주소가 16비트인 IP주소 172.16.12.45 (10101100.00010000.00001100.00101101
- 여기서 네트워크 주소는 172.16 / 호스트 주소는 12.45

**
- IP 주소는 총 32비트로 구성. But, 언제나 반반은 아님. 그때그때마다 달라.
>> 네트워크 주소가 하나의 옥텟으로 이루어질 경우, 한 네트워크당 호스트 주소 할당에 24비트를 사용할 수 있음.(상대적으로 많은 호스트에 IP 주소를 할당.)
        .        .        .        
>> 네트워크 주소가 세개의 옥텟으로 이루어질 경우, 한 네트워크당 호스트 주소 할당에 8비트를 사용할 수 있음.(상대적으로 적은 호스트에 IP 주소를 할당.)
        .        .        .        
- 무조건 호스트 주소 공간을 크게 할당하면, 호스트가 할당되지 않은 다수의 IP 주소가 낭비됨.
- 무조건 호스트 주소 공간을 작게 할당하면, 호스트가 사용할 IP 주소가 부족함.
>> 이런 고민을 해결하기 위해 생겨난 개념이 IP주소의 클래스(class)!!

 
 
 

클래스풀 주소 체계
클래스(class)
- 네트워크 크기에 따라 IP 주소를 분류하는 기준.
- 클래스풀 주소 체계(classful addressing) : 클래스를 기반으로 IP주소를 관리하는 주소 체계.
- 필요한 호스트 IP 개수에 따라 클래스를 달리 선택 - 네트워크 크기 조정 가능.
총 5개의 클래스가 존재함. (IP주소지정에 사용되는 실질적인 클래스는 3개 - A,B,C 클래스! )
A 클래스 0       .        .        .         많은 호스트 할당이 필요하다면 A 클래스.
B 클래스 10      .        .        .         중간
C 클래스 110     .        .        .         많은 호스트 할당이 필요 없다면 C클래스.
D 클래스, E클래스는 각각 멀티캐스트를 위한 클래스로, 특수한 목적을 위해 예약된 클래스. 
< A클래스 > 
- B와 C 클래스에 비해 할당 가능한 호스트 주소의 수가 많음.
- 네트워크 주소는 비트 '0'으로 시작하는 1옥텟, 호스트 주소는 3옥텟으로 구성.
- 이론상 2의 7승(128)개의 A 클래스 네트워크 존재 가능.
- 각 네트워크에 2의 24승(16,777,216)개의 호스트 주소 할당 가능. 
- A 클래스로 나타낼 수 있는 IP 주소 범위
  >> 최솟값을 10진수로 표현하면 0.0.0.0
  >> 최댓값을 10진수로 표현하면 127.255.255.255
- 가장 처음 옥텟의 주소가 0~127일 경우 A 클래스 주소임을 짐작할 수 있음.

< B클래스 >
- 네트워크 주소는 비트 '10'으로 시작하는 2옥텟, 호스트 주소도 2옥텟으로 구성.
- 이론상 2의 14승(16,384)개의 B클래스 네트워크 존재 가능.
- 각 네트워크에 2의 16승(65,534)개의 호스트 주소 할당 가능. 
- B클래스로 나타낼 수 있는 IP 주소 범위
  >> 최솟값을 10진수로 표현하면 128.0.0.0
  >> 최댓값을 10진수로 표현하면 191.255.255.255
- 가장 처음 옥텟의 주소가 128 ~ 191 일 경우 B 클래스 주소임을 짐작할 수 있음. 

< C클래스 >
- 네트워크 주소는 비트 '110'으로 시작하는 3옥텟, 호스트 주소도 1옥텟으로 구성.
- 이론상 2의 21승(2,097,152)개의 C클래스 네트워크 존재 가능.
- 각 네트워크에 2의 8승(256)개의 호스트 주소 할당 가능. 
- C클래스로 나타낼 수 있는 IP 주소 범위
  >> 최솟값을 10진수로 표현하면 192.0.0.0
  >> 최댓값을 10진수로 표현하면 223.255.255.255
- 가장 처음 옥텟의 주소가 192 ~ 223 일 경우 C 클래스 주소임을 짐작할 수 있음. 

 
 
 

호스트의 주소 공간을 모두 사용할 수 있는 것은 아님!!

 

< 대표적인 두가지 >
- 호스트 주소가 전부 0인 IP 주소
 >> 해당 네트워크 자체를 의미하는 네트워크 주소로 사용.
- 호스트 주소가 전부 1인 IP 주소
 >> 브로드캐스트 주소로 사용. 

그래서, 위의 두가지의 경우의 수를 빼야 진짜 할당 가능한 호스트 수가 됨.
>> 할당 가능한 호스트 수 -2 = 진짜 할당 가능한 호스트 수.

 

클래스별 할당 가능한 주소의 개수 정리
클래스초기 비트네트워크 주소 비트/
호스트 주소 비트
할당 가능한 네트워크 수할당 가능한 호스트 수
A08 / 242의 7승(128)2의 24승(16,777,216) - 2
= 16,777,214
B1016 / 162의 14승(16,384)2의 16승(65,536) - 2
= 65,534
C11024 / 82의 21승(2,097,152)2의 8승(256) - 2 
= 254

 

728x90
반응형
728x90
반응형
IP 주소로 MAC 주소 알아내기 : ARP

 

 

ARP(Address Resolution Protocol)
: 매우 매우 중요한 프로토콜!!
< ARP >
- IP 주소를 통해 MAC 주소를 알아내는 프로토콜.
  >> 동일 네트워크 내에 있는 송수신 대상의 IP 주소를 통해 MAC 주소를 알아낼 수 있음.
- ARP 동작 (동작 과정을 이해하는 게 중요!)
1. ARP 요청.
2. ARP 응답.
3. ARP 테이블 갱신.

ex.
상황 ) 
동일한 네트워크에 속한 호스트 A,B. / 호스트 A는 호스트 B의 IP주소는 알지만 MAC주소는 모름. / 이 상황에서 호스트 B의 MAC 주소를 알아내는 과정.

1. ARP 요청 메시지를 보냄. (ARP Request)
- 호스트 A : 브로드캐스트 메시지 전송.
- 이 브로트케스트 메시지 = ARP 요청이라는 ARP 패킷. (ex. 나 땡땡이랑 통신하고 싶은데 주소가 뭐예요!! 하고 소리 지르는 것과 같음.)

2. ARP 응답(ARP Reply)
- 호스트 B : 자신의 MAC 주소를 담은 유니캐스트 메시지를 A에게 전송. / 호스트 B외에 나머지 호스트는 자신의 IP주소가 아니므로 무시.
- 이 유니캐스트 메시지 = ARP 응답 이라는 ARP 패킷. (ex. 접니다! 제 MAC 주소는 뭐뭐뭐예요!)
 >> 이 메시지를 수신한 A와 B는 MAC 주소를 알게 됨. 
ARP 패킷이란?
- ARP 요청, ARP 응답 과정에서는 송수신되는 패킷.
  >> 오퍼레이션 코드(Opcode; Operation Code) - ARP 요청의 경우 1, ARP 응답의 경우 2.
  >> 송신지 하드웨어 주소(Sender Hardware Address) 수신지 하드웨어 주소(Target Hardware Address)에는 MAC주소가 명시됨. 
  >> 송신지 프로토콜 주소(Sender Protocol Address)와 수신지 프로토콜 주소(Target Protocol Address)에는 IP 주소가 명시됨.
3. ARP 테이블 갱신( 테이블에 IP 주소와 맵핑된 MAC 주소를 기록해 둠)
- ARP 테이블(ARP Table) : ARP 요청 - 응답을 통해 알게 된 IP 주소와 MAC 주소의 연관 관계.
  >> ARP 테이블 항목은 일정 시간이 지나면 삭제, 임의 삭제도 가능.
  >> ARP 테이블에 등록된 호스트에 대해선 ARP 요청을 보낼 필요 없음. 

통신하고자 하는 호스트 A와 B가 서로 다른 네트워크에 속해 있을 경우, ARP는 네트워크 별로 수행됨.
728x90
반응형
728x90
반응형
물리 계층과 데이터 링크 계층만으로는 LAN을 넘어서 통신하기 어렵다.
** 어려운 이유 2가지.
1. 다른 네트워크까지의 도달 경로를 파악하기 어려움.
2. 모든 네트워크에 속한 모든 호스트의 위치를 특정하기 어려움.

자세히 ) 

1. 물리 계층과 데이터 링크 계층만으로는 다른 네트워크까지의 도달 경로를 파악하기 어려움.
 - 라우팅(routing) : 패킷이 이동할 최적의 경로를 결정하는 것.
 - 라우터(router) : 라우팅을 수행하는 대표적인 장비. 
** 네트워크 계층이 있어야 네트워크 간의 라우팅이 가능하다!

2. MAC 주소만으로는 모든 네트워크에 속한 모든 호스트의 위치를 특정하기 어려움.
 - MAC 주소와 IP 주소는 함께 사용되고, 기본적으로 IP 주소를 우선 활용.

IP 주소 MAC 주소
택배의 수신지 택배의 수신인 역할 
논리 주소 물리 주소
- 유동적으로 할당.
- 자동으로 할당받거나 사용자가 직접 할당.
- NIC 마다 할당되는 고정된 주소.

 

 

네트워크 계층의 핵심, 인터넷 프로토콜(IP)
인터넷 프로토콜(IP)
: 물리 계층 & 데이터 링크 계층의 한계를 극복하는 프로토콜
< IP의 공식적인 2가지 기능 >
1. 주소 지정 (IP addressing).
2. 단편화에 사용 (IP fragmentation).

** RFC 문서에서 확인 가능
RFC(Request for Comments) 문서
- 네트워크/ 인터넷 관련 신기술 제안, 의견 등을 남긴 문서.
- 일부 RFC는 오늘날까지 사용되는 인터넷 표준이 됨.
  >> 이러한 RFC문서에는 번호가 부여됨(ex. RFC 791)
  >> "세상에서 가장 정확한 네트워크 이론 지식"
  >> 새 RFC 문서로 개정 출판이 될지 언정, 폐지되거나 수정되지 않음.  

자세히 >>

1. 주소 지정
- IP 주소(IPv4 주소)를 바탕으로 송수신 대상을 지정하는 것을 의미.
- 4바이트(32비트)로 하나의 주소를 표현.
- 숫자당 8비트로 표현 : 0 ~255 범위 안에 있는 4개의 10진수로 표기.
- 각 숫자는 점(.)으로 구분
  >> 점으로 구분된 8비트(0~255 범위의 10진수)를 옥텟(octet)이라 함. 
ex. 192.168.1.1 

2. 단편화
- 전송하고자 하는 패킷의 크기를 MTU 이하의 복수의 패킷으로 나누는 것.
  >> MTU(Maximum Transmission Unit)
     - 한 번에 전송 가능한 IP패킷의 최대 크기.
     - IP 패킷의 헤더도 MTU 크기에 포함.
     - 일반적인 MTU 크기는 1500바이트, MTU 크기 이하로 나누어진 패킷은 수신지에 도착하면 다시 재조합.

 

< IPv4 패킷의 핵심 필드 7가지 >
단편화에 주로 관여하는 필드


1. 식별자
(identifier)
- 패킷에 할당된 번호.
- 쪼개져서 도착한 IPv4 패킷들이 어떤 메시지에서 쪼개졌는지를 알기 위해 사용. 
2. 플래그
(flag)
- 세개의 비트로 구성. (미사용, DF, MF)
- 첫 번째 비트는 항상 0 : 현재 사용되지 않음.
- DF 비트(Don't Fragment) - IP 단편화를 수행하지 말라는 표시.
  >> 1이라면 : IP 단편화 수행하지 말라.
  >> 0이라면 : IP 단편화 가능하다.
- MF 비트(More Fragment) - 단편화된 패킷이 더 있는지를 나타냄.
  >> 1이라면 : 쪼개진 패킷이 아직 더 있다.
  >> 0이라면 : 이 패킷이 마지막 패킷이다. 
3. 단편화 오프셋
(fragment offset)
- 초기 데이터에서 몇 번째로 떨어진 패킷인지를 나타냄.
  >> 단편화되어 전송되는 패킷들은 수신지에 순서대로 도착하지 않을 수 있음.
  >> 수신지가 패킷들을 순서대로 재조합하려면 단편화된 패킷이 초기 데이터에서 몇 번째에 해당하는 패킷인지 알아야 함. 

ex.
단편화 오프셋 0 : 제일 첫번째 데이터
단편화 오프셋 1480 : 첫 데이터로부터 1480만큼 떨어진 패킷.
라우팅에서
중요하게 사용
4. TTL
(Time To Live)
- 패킷의 수명.
- 무의미한 패킷이 네트워크상에 지속적으로 남아있는 것을 방지하기 위해 존재.
- 패킷이 하나의 라우터를 거칠 때마다 TTL이 1씩 감소, TTL값이 0으로 떨어진 패킷은 폐기.
- 홉(hop) : 패킷이 호스트 또는 라우터에 한번 전달되는 것.
  >> 즉, TTL 필드의 값은 홉마다 1씩 감소. 
  5. 프로토콜 - 상위 계층의 프로토콜이 무엇인지를 나타내는 필드.
- ex. 전송 계층의 대표적인 프로토콜인 TCP는 6번, UDP는 17번.
주소지정에
관여하는 필드

6. 송신지 IP 주소 - 이름 그대로 송수신지의 IPv4 주소. 
7. 수신지 IP 주소

 

 

IPv6
: IP주소 부족문제를 해결하기 위해 나온 프로토콜. 
IPv6
-  IPv6은 16바이트(128비트)로 주소를 표현할 수 있고, 콜론(:)으로 구분된 8개의 그룹의 16진수로 표기.
- 이론적으로 할당 가능한 Ipv6 주소는 2의 128승으로 사실상 무한에 가까운 수 할당 가능.
IPv6 패킷의 핵심 필드
1. 다음 헤더
(next header)
- 상위 계층의 프로토콜 또는 확장 헤더를 가리키는 필드.
- 확장헤더 란?
  >> IPv6는 기본 헤더와 더불어 확장 헤더(extension header)라는 추가 헤더를 가질 수 있음.
  >> 확장 헤더는 기본 헤더와 페이로드 데이터 사이에 위치.
  >> 마치 꼬리에 꼬리를 물듯 또 다른 확장 헤더를 가질 수 있음. 

< 대표적인 확장 헤더 종류 >
- 홉 간 옵션(Hop-by-Hop Options) : 송신지에서 수신지에 이르는 모든 경로의 네트워크 장비가 이 패킷을 검사하도록 하는 옵션. 
- 수신지 옵션(Destination Options) : 수신지에서만 해당 패킷을 검사하도록 하는 확장 헤더.  
- 라우팅(Routing) : 라우팅과 관련한 정보들이 저장되는 확장 헤더. 
- 단편(Fragment) : IPv6의 단편화와 연관되어 있는 확장 헤더.
- ESP(Encapsulating Security Payload), AH(Authentication Header) : 암호화와 인증과 관련된 확장 헤더. 
... 
2. 홉 제한
(hop limit)
- IPv4 패킷의 TTL 필드와 비슷.
- 패킷의 수명을 나타내는 필드.
3. 송신지 IP 주소
(source address)
- IPv6 주소를 통한 송수신지 지정.
4. 수신지 IP 주소
(destination address)

 

IPv6의 단편화
- IPv6는 단편화 확장 헤더를 통해 단편화가 이루어짐.
- 단편화 확장 헤더에도 다음 헤더 필드가 있음.
  >> 예약됨(reserved)과 예약(res) 필드는 0으로 설정되어 사용되지 않음.
  >> 단편화 오프셋(fragment offset)과 M 플래그(M flag), 식별자(Identification) 필드.
단편화 오프셋 - 전체 메시지에서 현재 단편화된 패킷의 위치(IPv4의 단편화 오프셋 필드와 유사)
M 플래그 - 1일 경우 더 많은 단편화된 패킷이 있음을 의미,
- 0일 경우 마지막 패킷(IPv4의 MF 플래그 필드와 유사)
식별자 - 동일한 메시지에서부터 단편화된 패킷임을 식별(IPv4의 식별자 필드)

IPv6

 

 

 

 

 

참고 RFC 공식 문서 링크

https://datatracker.ietf.org/

 

IETF Datatracker

Datatracker The IETF Datatracker is the day-to-day front-end to the IETF database for people who work on IETF standards. It contains data about the documents, working groups, meetings, agendas, minutes, presentations, and more, of the IETF. The primary pub

datatracker.ietf.org

 

728x90
반응형
728x90
반응형
스위치
허브의 충돌 문제
- CSMA/CD로 어느 정도 완화할 수 있었지만... 보다 근본적인 해결 방법이 있다.
- 전달받은 신호를 수신지 호스트가 연결된 포트로만 내보내고, 전이중 모드로 통신하면 된다!

** 이를 위한 장비가 바로 스위치(switch - (2 계층에서 사용한다 하여)L2 스위치를 지칭한다 생각해.) 
- 허브와는 달리 특정 MAC 주소를 가진 호스트에만 프레임 전달 가능.
- 전이중 모드 통신 지원
 >> CSMA/ CD 프로토콜이 필요하지 않음.

 

스위치의 주요 기능
1. 스위치의 MAC 주소 학습 기능.
 >> 전달 받은 신호를 원하는 포트로만 내보냄.
 >> 포트별로 콜리전 도메인이 나누어지기에 충돌 위험이 감소.

자세히 )
1. 스위치의 MAC 주소 학습 기능(MAC address learning)
- 특정 포트와 해당 포트에 연결된 호스트의 MAC 주소와의 관계를 기억.
- 원하는 호스트에만 프레임을 전달.
- MAC주소 테이블(MAC address table)
 >> 스위치 포트와 연결된 호스트의 MAC 주소 간의 연관 관계를 나타내는 정보.
- MAC 주소 학습 : 프레임 내 "송신지 MAC 주소" 필드를 바탕으로 이루어짐. 
MAC 주소테이블을 어떻게 생성하고 관리할까? 3개의 용어를 학습해 보자.
플러딩 허브처럼 모든 포트로 프레임 전송. 
- 호스트 A가 호스트 C에게 프레임을 전송하면,
포워딩과 필터링 - 스위치는 호스트 B, D가 연결된 포트로는 내보내지 않도록 필터링(filtering)을 하고,
- 호스트 C가 연결된 포트로 프레임을 포워딩(forwarding)함
에이징 - 만약 MAC 주소 테이블에 등록된 포트에서 일정 시간 동안 프레임을 받지 못하면 해당 항목은 삭제.
- 일정 시간 동안 "송신지 MAC 주소"가 ab:cd:ac:cd:00:01인 프레임을 1번 포트에서 못 받으면 이 항목은 삭제. 
참고 ) 브리지
- 브리지(bridge)는 데이터 링크 계층의 스위치와 유사한 장비
 >> 네트워크 영역을 구획하여 콜리전 도메인을 나누거나 네트워크를 확장.
 >> 브리지는 앞서 설명한 스위치의 기능들도 제공. (MAC 주소를 학습, 포워딩, 필터링) 
- 다만 단일 장비로서의 브리지는 스위치에 비해 사용 빈도가 줄어드는 추세.
- 일반적으로 스위치의 기능이 더 다양하고 성능도 우수하기 때문. 
But, 브리지라는 용어는 여기저기서 사용됨.
- 개념으로서의 브리지는 자주 사용된다! 그렇기 때문에 개념으로서는 알아둬.
2. 스위치의 VLAN 기능.
 >> 논리적으로 LAN을 분리하는 가상의 LAN, VLAN 구성 가능.

자세히 ) 
2. 스위치의 VLAN 기능.
- VLAN(Virtual LAN) - 한 대의 스위치로 가상의 LAN을 만드는 방법.
 >> 불필요한 트래픽(허브, 스위치의 플러딩)으로 인한 성능 저하 방지. 
* VLAN의 주요 의의
- "한대의 물리적 스위치라 해도", "마치 여러 대의 스위치가 있는 듯이", "호스트의 물리적 위치와 관계없이" 만드는 가상의 LAN.  
- VLAN은 사실상 다른 LAN : 서로 다른 네트워크로 간주, 브로드캐스트 도메인 달라짐.

** VLAN의 종류 2가지.
1. 포트 기반 VLAN(port based VLAN) - 정적 VLAN
 - 스위치의 포트가 VLAN을 결정하는 방식.
 - 특정 포트에 VLAN을 할당한 뒤, 해당 포트에 호스트를 연결하여 VLAN에 참여.
  >> 호스트 A와 B는 VLAN2를 할당한 포트에 연결되어 있으므로 같은 LAN에 속한 셈.
  >> 호스트 C는 VLAN3에 속해 있으므로 호스트 A, B와는 다른 LAN에 속한 셈. 

2. MAC 기반 VLAN(MAC based VLAN) - 동적 VLAN
- 사전에 설정된 MAC 주소에 따라 VLAN이 결정.
- 송수신하는 프레임 속 MAC 주소가 호스트가 속할 VLAN을 결정하는 방식. 

 

728x90
반응형
728x90
반응형
물리 계층과 데이터 링크 계층의 장비에 대해 알아보자.
네트워크 장비
물리 계층의 대표 장비 : 허브.(오늘날 네트워크에서 거의 사용 X, but  통신 특성이 스위치와 대비되는 특성을 갖고 있기 때문에 알아둬야 함.)

데이터 링크의 대표 장비 : 스위치.(오늘날 주로 사용하는 네트워크 장비)

 

주소개념이 있다 없다로 특징이 나뉨.

** 물리 계층에는 주소 개념이 없다!

>> 단지 호스트와 통신 매체 간의 연결과 통신 매체상의 송수신이 이루어질 뿐.

>> 물리 계층 장비는 송수신되는 정보에 대한 어떠한 조작(송수신 내용 변경)이나 판단도 할 수 없음. 

 

** 데이터링크 계층에는 주소 개념이 있다!!

>> MAC 주소.

>> 데이터 링크 계층 이상 장비들은 송수신지 특정 할수 있음(특정 가능), 송수신 정보에 대한 조작 가능!

 

허브
: 물리 계층의 허브(hub)
- 여러 대의 호스트를 연결하는 장치.
- 리피터 허브(repeater hub) 혹은 이더넷 허브(Ethernet hub). 
- 포트(port) : 커넥터를 연결할 수 있는 연결 지점.
< 허브의 특징 >
1. 받은 정보는 모든 포트로 내보냄.
- 정보에 대한 어떠한 조작도 판단도 하지 않음(물리 계층 장비니까)
- 전달받은 신호를 다른 모든 포트로 그대로 다시 내보냄
  >> 데이터 링크 계층에서 패킷의 MAC주소를 확인하고 자신과 관련 없는 주소는 폐기. 
*불필요한 트래픽이 너무 많아진다는 문제점이 있음.

2. 반이중 통신을 한다. (한 번에 하나씩의 메시지만 주고받을 수 있음. 동시에 메시지 전해지면 충돌!)
- 반이중 통신(half duplex) 모드 : 마치 1차선 도로처럼 송수신을 번갈아 가면서 하는 통신 방식. (ex. 무전기)
- 전이중 통신(full duplex) 모드 : 송수신을 동시에 양방향으로 할 수 있는 통신 방식. (ex. 전화기)

참고 ) 또 다른 물리 계층 장비, 리피터(repeater)
- 허브 이외에 물리 계층의 대표적인 장비.
- 전기 신호가 감소하거나 왜곡되는 것을 방지하기 위해 전기 신호를 증폭시켜 주는 장비.
- 리피터는 물리 계층의 장비이므로 신호에 대한 어떠한 판단이나 조작을 하지 않음.
 >> 그저 신호를 증폭시키기만 함. 주소 개념 없음.
- 허브는 리피터의 기능을 포함하는 경우가 많음.

허브의 특징이 야기하는 문제, 충돌(collision)!!
- 동시에 허브에 신호를 송신하면 충돌(collision, 콜리전)이 발생.
- 허브에 호스트가 많이 연결되어 있을수록 충동 발생 가능성이 높음.

* 충돌이 발생할 수 있는 영역 : 콜리전 도메인(collision domain)
- 허브에 연결된 모든 호스트는 같은 콜리전 도메인에 속함.
- 당연히 충돌을 피해야 한다 -> 콜리전 도메인은 작아야 한다!
콜리전 도메인으로 인한 충돌의 해결 방법.
1. CSMA/CD 프로토콜 사용. 
or
2. 다른 장비(스위치) 사용.
CSMA/CD
- 반이중 이더넷 네트워크에서 충돌을 방지하는 대표적인 프로토콜.
 >> (반이중) 이더넷을 대표하는 송수신 방법. 

 

CSMA / CD
: Carrier Sense Multiple Access with Collision Detection
Carrier Sense
1) 캐리어 감지
- 통신 매체의 현재 사용 가능 여부 검사 : 메시지를 보내기 전 현재 전송 중인 것이 있는지를 먼저 확인. 

Multiple Access
2) 다중 접근
- 복수의 호스트가 부득이 동시에 네트워크에 접근할 때 : 충돌 발생. 

Collision Detection
3) 충돌 검출
- 전송 중단, 충돌 발생을 알리는 잼 신호(jam signal) 보냄.
- 임의의 시간 동안 기다린 뒤에 재전송하게 됨. 
728x90
반응형

+ Recent posts