SECTION
01
네트워크 분할
1. 서브넷 마스크의 특징
• 사물 인터넷 때문에 IP 주소는 빠른 속도로 고갈.
• 조직의 규모에 따라 C 클래스의 256개는 너무 작고, B 클래스의 65535개는 너무 큼 -> 이러한 문제를
해결하는 방법은 하나의 클래스를 서브넷
(하부넷)으로 잘라 여러 개로 나누어 사용하는 것 ->
서브넷으로 분할해서 사용할 때 서브넷 마스크가 중요한 역할
.
• 서브넷 마스크에서 1로 표시된 부분은 네트워크 주소, 0으로 표시된 부분은 호스트 주소를 의미.
SECTION
01
네트워크 분할
• 서브넷 마스크의 특성상 앞에서부터 1이 연달아 나타남.
• IP 주소 옆에 1의 개수를 써주면 서브넷 마스크를 간단하게 표현 할 수 있음.
• C클래스의 서브넷 마스크는 1이 24개이다. IP 주소 228.152.23.8이 C 클래스라면
228.152.23.8/24로 표시 -> 서브넷 마스크의 1이 앞에서부터 24개 있다는 의미.
• B클래스의 서브넷 마스크는 /16, A클래스의 서브넷 마스크는 /8
SECTION
2. 네트워크 분할 방법
01
네트워크 분할
• C 클래스는 원래 256개의 호스트를 가질 수 있는 네트워크 -> 228.255.75로 시작하는 C 클래스를 A
회사와
B 회사에게 반씩 나누어 준다고 가정.
• A 회사는 IP 주소의 마지막 자리인 4번째 자리(호스트 주소)는 이진수로 00000000에서 00000001,
00000010 .... 01111111까지 사용.
• 호스트 주소의 맨 앞 비트가 0으로 시작하는 주소가 A 회사에 속하는 주소. 십진수로는 228.255.75.0
에서
228.255.75.127까지의 주소이며 128개의 호스트 주소를 사용할 수 있음.
SECTION
01
네트워크 분할
• B 회사는 2진수 10000000에서 10000001, 10000010 .... 11111111까지의 호스트 주소를 사용.
• 호스트 주소의 맨 앞 비트가 1로 시작하는 주소가 B 회사에 속하는 주소이며 전체 128개의 호스트
주소를 사용
. 십진수로는 228.255.75.128에서 228.255.75.256까지의 주소.
• A 회사의 호스트 주소는 2진수로 00000000에서 00000001, 00000010 .... 01111111와 같이 맨
앞의 첫 비트가
0으로 시작, B 회사의 호스트 주소는 2진수로 10000000에서 10000001,
10000010 .... 11111111와 같이 맨 앞의 첫 비트가 1로 시작.
SECTION
01
네트워크 분할
• 2개로 분할시 서브넷 마스크는 2진수로 11111111 11111111 11111111 10000000이 되어야 함
.
• 4번째 바이트의 서브넷 마스크가 00000000이 아닌 10000000으로 변경됨 -> 이는 4번째 바이트의
맨 처음 비트도 네트워크 주소라는 뜻
.
• 2진수 10000000를 10진수로 바꾸면 128 -> 따라서 C 클래스를 2개의 서브넷으로 나눈 경우 서브넷
마스크는
255.255.255.128이 됨. 간단하게 표시하면 /25가 됨.
SECTION
3. 서브넷 분할 원리
01
네트워크 분할
• 네트워크 주소를 나타내는 1의 개수가 늘어날 때 마다 2의 지수승으로 네트워크는 분할.
• C클래스를 2개의 서브넷으로 분할하면 서브넷 마스크는 11111111 11111111 11111111
10000000이 됨. 10진수로 255.255.255.128이며 /25라 표시.
• C 클래스 네트워크를 4개로 분할: 서브넷 마스크가 255.255.255.192. 이는 /26으로 표시.
SECTION
01
네트워크 분할
• B 클래스의 서브넷 마스크는 255.255.0.0이며 /16.
• B 클래스를 2개로 나누면 서브넷 마스크는 255.255.128.0이며 /17 -> 1개의 서브넷이 가질 수 있는
최대 호스트 수는
32768개.
• 서브넷 마스크가 255.255.224.0(/19)인 네트워크는 B 클래스를 8개로 분할한 것 -> 1개의 서브넷이
가질 수 있는 최대 호스트 개수는
8192개.
SECTION
01
네트워크 분할
• 네트워크를 분할 할 때 한 번에는 2의 배수로만 분할 할 수 있다고 해서 네트워크가 짝수로만 만들어지는
것은 아님
.
• 네트워크에서 분할을 여러 번 사용하면 홀수개의 서브넷도 만들 수 있음.
SECTION
1. 주소 변환의 필요성
02
주소 변환 관련 프로토콜
• 228.255.75.1에서 228.255.75.4까지의 호스트가 있는 어떤 C 클래스 네트워크를 가정.
• 228.255.75.2가 228.255.75.3에게 패킷을 보내려면 해당 호스트의 MAC 주소가 필요.
• IP 주소는 인터넷에서 목적지 LAN까지 도달하기 위해 필요한 주소 -> 도착한 LAN의 안쪽에서
호스트를 찾는다던가
, IP 주소로 LAN 내부에서 통신을 하는 경우에는 MAC 주소가 필요.
SECTION
2. 주소 변환 프로토콜 - ARP
02
주소 변환 관련 프로토콜
• 주소변환 서버 없이도 IP 주소를 MAC 주소로 바꾸는 프로토콜이 ARPAddress Resolution Protocol
• 특정 IP의 MAC 주소를 알고 싶은 호스트는 다른 호스트들에서 질문 -> 해당 질문은 LAN 전체에
브로트케스팅
-> 질문을 받은 호스트 중 해당 IP를 가진 노드는 자신의 MAC 주소를 알려줌.
• ARP의 성능을 높이기 위하여 각 호스트들은 획득한 ARP 정보를 캐시cache에 보관.
SECTION
02
주소 변환 관련 프로토콜
• ARP가 가지고 있는 캐시 데이터를 보고 싶다면, 윈도우 명령 프롬프트(cmd)에서 arp -a라고 검색.
• 해당 컴퓨터는 IP 주소 192.168.0.1, 192.168.0.5, 192.168.0.6에 대한 MAC 주소를 캐시에 저장.
• 192.168.0.255는 브로드캐스트 주소이며, 물리주소는 항상 ff-ff-ff-ff-ff-ff로 나타남.
SECTION
02
주소 변환 관련 프로토콜
• 기존의 컴퓨터가 사용하던 IP를 228.255.75.7로 바꿈 경우 -> IP 충돌이 발생한 경우, 충돌을 일으킨
양쪽의 컴퓨터에 “
IP 충돌이 발생하였습니다.”와 같은 경고 메시지가 나타남.
• 충돌이 발생한 경우, 해당 IP를 먼저 사용하고 있던 호스트에게 우선권이 주어짐.
• 충돌이 없다는 것을 확인한 이후에 자신의 IP 주소와 MAC 주소를 전체에게 브로드케스트 함 -> 이때
사용하는
ARP를 Gratuitous ARP, 약자로 GARP라 부름.
• GARP는 응답이 필요없는 ARP.
SECTION
3. 역주소 변환 프로토콜 – RARP 와 BOOTP
02
주소 변환 관련 프로토콜
• 연산능력이나 저장장치가 없는 더미dummy 터미널도 IP 주소가 필요.
• 이런 단말기가 IP 주소를 얻기 위해 사용하는 프로토콜이 RARP이며, Reverse ARP의 약자.
• RARP는 MAC 주소로부터 IP 주소를 얻는 프로토콜.
SECTION
02
주소 변환 관련 프로토콜
• RARP의 단점은 브로드케스트 메시지가 LAN에만 전파된다는 것
• RARP는 LAN에서만 사용할 수 있는 프로토콜이기 때문에 라우터를 넘어서 메시지를 전송할 수 없음.
• 라우터를 넘어서 주소변환을 할 수 있도록 만든 것이 부트스트랩 프로토콜, BOOTPbootstrap protocol
• BOOTP는 UDP라고 불리는 전송계층의 프로토콜을 사용한다. 그래서 라우터를 넘어서 메시지가
전달될 수 있음
.
SECTION
4. 유동 호스트 설정 프로토콜 - DHCP
02
주소 변환 관련 프로토콜
• 고정 IP 방식의 문제: 모든 호스트의 IP 주소와 관련 값을 일일이 수동으로 설정해야 한다는 것과 IP 주소
관리
.
• 유동 IP 방식에서는 컴퓨터가 부팅할 때 IP 주소, 서브넷 마스크, 게이트웨이, DNS 주소를 자동으로
설정
-> 이때 사용하는 프로토콜이 DHCPDynamic Host Configuration Protocol
• DHCP의 작동 방식은 BOOTP와 유사 -> 메시지를 전체에게 브로드케스트 하면 DHCP 서버가
사용하지 않는 주소와 서브넷 마스크
, 게이트웨이 주소, DNS 주소를 해당 컴퓨터에게 전달.
SECTION
02
주소 변환 관련 프로토콜
• 주소관련 프로토콜의 특징 요약
SECTION
1. 네트워크 관리 프로토콜
03
기타 네트워크 계층 프로토콜
• 감시와 메시지 전송에 사용되는 프로토콜이 ICMPInternet Control Message Protocol
• 다음 표는 ICMP의 주요 메시지 타입과 의미를 요약한 것.
SECTION
03
기타 네트워크 계층 프로토콜
• ICMP를 직접 경험할 수 있는 방법은 ping을 사용하는 것 -> ping 명령어 다음에 IP 주소를 쓰면 해당
호스트로 패킷을 보내고
, 해당 호스트는 ping에 대한 답신replay 메시지를 보냄.
• ping 명령어에서 호스트까지 메시지를 보내는 것이 ICMP 8번 Echo request -> Echo request를
받은 호스트는 이에 대한 응답으로
ICMP 0번 Echo replay를 보냄.
• ping을 사용하면 해당 호스트가 살아있는지 혹은 죽었는지를 알 수 있을 뿐 아니라, 서버까지 패킷이
오고가는데 걸리는 시간도 알 수 있음
.
SECTION
03
기타 네트워크 계층 프로토콜
• ping과 유사하지만 tracert는 해당 호스트까지 가는 경로를 추적하는 명령어.
• tracert 명령은 패킷이 어떤 라우터를 거쳐서 목적지 까지 도달하는지에 대한 경로를 알려줌 -> 이때
사용하는 것이
ICMP 30번 trace route.
SECTION
03
기타 네트워크 계층 프로토콜
• ICMP는 다양한 곳에 사용.
• 3번 destination unreachable은 패킷이 목적지 주소를 찾지 못할 때 발생하는 메시지.
• 11번 time exceeded는 패킷의 TTL이 0이 되는 경우 발생하는 메시지. IP 헤더 분석에서
설명하였지만
, TTL이 0이 된 패킷은 폐기됨. 따라서 11번 time exceeded 메시지를 받았다는
것은 패킷이 루프를 돌거나
TTL 값이 너무 작게 설정 되어 있다는 의미.
• 5번의 redirect는 패킷의 경로가 잘못 설정 되었다고 판단될 때 보내는 메시지. 패킷을 보낸
호스트의 경로 설정에 문제가 있다고 판단되는 경우에 발생하는 메시지
.
SECTION
03
기타 네트워크 계층 프로토콜
• 멀티케스팅에 사용되는 프로토콜이 IGMPInternet Group Message Protocol
• 각 채널에는 해당 채널을 시청중인 호스트의 주소가 그룹으로 묶여 있음 -> 채널을 시청하려는 호스트는
IGMP join 메시지를 이용하여 채널 그룹에 등록 -> A는 IGMP join 7번 채널, B는 IGMP join 8번
채널
.
• 그러다가 A가 7번에서 8번 채널로 옮길 때, IGMP leave 메시지를 사용하여 7번 채널 그룹에서 빠지
고
, IGMP join 8번 채널을 사용하여 8번 채널 그룹에 다시 등록.
SECTION
내부 라우팅
- OSPF
03
기타 네트워크 계층 프로토콜
• OSPF는 Open Shortest Path First의 약자로 최단경로 프로토콜이며 내부 라우팅 프로토콜 ->
OSPF가 연결상태 라우팅 알고리즘을 기반으로 만들어 짐.
• OSPF의 작동방식은 앞의 연결상태 라우팅 알고리즘에서 자세히 설명하였음.
• 다음 표는 OSFP가 사용하는 메시지 타입과 설명.
SECTION
03
기타 네트워크 계층 프로토콜
• 연결상태 라우팅 알고리즘의 초기에는 이웃 라우터의 정보를 수집 -> 이때 사용하는 메시지가 Hello.
• 이웃 라우터의 정보가 모이면, 라우터들은 주기적으로 자신의 테이블을 전체 라우터들에게 플러딩 ->
이때 사용하는 메시지가
Link state update.
• Link state update를 받으면 이에 대한 응답을 해주어야 하는데 이것이 Link state ACK.
• 많은 수의 라우터와 ACK를 주고받기 때문에 연결상태 라우팅 알고리즘의 테이블에는 SEND 플래그와
ACK 플래그를 유지 -> 이는 받은 메시지와 보낸 메시지를 기억 했다가 못 보낸 메시지가 있으면 빠른
시간안에 응답하기 위해서임
.
• Database description 메시지는 링크상태 테이블의 수를 알려달라는 메시지. 테이블의 수를
비교하여 자기가 가지고 테이블의 정보와 같은지 혹은 다른지를 확인
. 만약 자신의 테이블과 다르다면
Link state request를 보내어 다른 라우터의 테이블을 받아 비교.
SECTION
03
기타 네트워크 계층 프로토콜
• OSFP의 장점은 전체 네트워크 구조를 가지고 있어서 네트워크 상태 변화에 빠르게 적응 할 수 있다는
것과 거리벡터 라우팅과 같이 무한루프가 발생하지 않는다는 것
.
• OSFP의 단점은 최단경로 알고리즘을 사용하기 때문에 CPU 소모가 많고, 전체 네트워크 구조를 가지고
있기 때문에 메모리를 많이 사용한다는 것
.
SECTION
외부 라우팅
- BGP
03
기타 네트워크 계층 프로토콜
• BGP는 Border Gateway Protocol의 약자로 외부 라우팅에 사용되는 프로토콜.
• 외부 라우팅에서는 시간(거리)정보는 중요하지 않음 -> 그 보다는 어느 네트워크에 연결 가능한지가
가장 중요한 문제
-> 그래서 단순한 BGP를 사용.
• BGP는 거리벡터 라우팅 알고리즘과 유사하지만 다른 점이 있음.
• 시간(거리)에 대한 처리는 이루어지지 않음. 오직 통신 가능성만을 고려함.
• 라우팅 정보에는 목적지 라우터 정보만 유지함.
• 무한 루프의 문제는 다른 라우터로부터 잘못된 거리 정보를 받을 때 발생 -> BGP가 시간(거리)를
계산하지 않기 때문에 거리벡터 라우팅의 문제였던 무한 루프
(무한 숫자 세기)의 문제는 발생하지 않음.
• BGP에서는 해당 네트워크가 살아 있는지 혹은 죽었는지에 대한 값만을 받기 때문에 특정 라우터로부터
응답이 없는 경우
, 즉시 다른 경로를 찾음.