3 계층
- 서로 다른 LAN을 찾아가는 역할
- WAN에서 통신할 때 사용하는 IP 주소
- ipconfig 명령어를 이용해 cmd 창에서 자신의 ip 번호를 알 수 있다.
- IPv4가 자신의 ip 주소이다.
- 서브넷 마스크와 게이트웨이 주소도 항상 같이 봐야한다.
- 나중에 아키텍쳐에 대해서 얘기할 때 서브넷 마스크를 자세히 다룰 것.
- 최소 IPv4, 서브넷 마스크, 게이트웨이가 세팅이 되어야 한다.
ARP 프로토콜
- IP 주소를 이용해 MAC 주소를 알아온다.
- 특정 컴퓨터와 통신하고 싶을 때 IP 주소만 입력하면 내가 통신해야 하는 컴퓨터의 MAC 주소를 알아온다.
- 저번 게시물에서 봤듯이, A와 B가 통신을 하고 싶다면 A가 B의 MAC 주소를 알아오는 것이 아니라 A와 가장 근접해 있는 MAC 주소를 알아오고 건너건너 계속해서 ARP 프로토콜로 MAC주소를 알아온 후 B까지 가는 것이다.
- 최종 목적지는 IP 주소를 가지고 가는 것이다.
IPv4 프로토콜
- WAN에서 통신할 때 사용하는 프로토콜이다.
- 멀리 떨어져 있는 것과 통신할 때 쓰이는 프로토콜이다.
ICMP 프로토콜
- 서로가 통신되는지 확인할 때 사용하는 프로토콜
- 저번 VMware 실습에서 가상환경끼리 통신이 되는지 확인할 때 wireshark를 이용해 filter로 icmp를 써서 통신 유무를 알 수 있었다.
class 방식
일반적인 IP 주소
- IP 주소는 000.000.000.000 이런식으로 생겼다.
- .으로 구분된 하나의 필드는 1 byte이다.
- MAC 주소와 다르게 10진수로 이루어져 있다.
- 1 byte로 표현할 수 있는 최대 숫자 = 1111 1111(2)= 255이다.
- 2진수 1개당 1 bit, 1 byte는 8 bit이기 때문.
- 그래서 IP 주소의 범위는?
- 0.0.0.0 ~ 255.255.255.255 이다.
- MAC 주소는 00-00-00-00-00-00 으로 이루어져 있었다.
- 총 6 byte = 48 bit로 이루어져 있다.
- 2진수 8개씩 6개여서.
-
인터넷 상의 IP 주소를 규격화된 크기별(클래스별)로 구분시키는 방식
-
IP 주소를 Class (A,B,C 등)별로 규격화(유형화)시켜, 쉽게 식별하도록 함
-
A 클래스
- 1번째 필드까지 네트워크 규격 결정
- 2번째 부터 4번째 필드까지 하나의 네트워크에 들어갈 수 있는 컴퓨터의 수
- 강의장이 1번째 강의장 2번째 강의장 ~ 127번째 강의장 이렇게 있음.
- 하나의 강의장에 2^24개의 컴퓨터가 들어간다는 소리
-
B 클래스
- 2번째 필드까지 네트워크 규격 결정
- 한마디로 2번째 필드까지가 강의장인것.
- 3번째 ~ 4번째 필드까지 하나의 강의장에 들어갈 수 있는 컴퓨터의 수
- 강의장이 128의 0, 128의 1 ~ 191의 255까지
- 강의장은 많아졌는데 한 강의장에 들어가는 컴퓨터 수는 줄어든다.
- 2^16개의 컴퓨터가 한 강의장에 들어갈 수 있음.
-
C 클래스
- 3번째 필드까지 네트워크 규격 결정
- 4번째 필드만 하나의 네트워크에 들어갈 수 있는 컴퓨터의 수
- 그렇다면 강의장의 수는 엄청 많아졌으나, 하나의 강의장에 들어갈 수 있는 컴퓨터의 수는 256(2^8)개이다.
-
우리가 C 클래스를 쓰더라도 지금 현 강의장에서는 20개의 컴퓨터만 쓰고 있음. 그래서 256개의 컴퓨터를 쓸 수 있는데 20개의 컴퓨터만 쓰니깐 엄청나게 낭비 되고 있다.
-
이렇게 낭비시킬 바에는 .(8 bit)으로 잘라서 class별로 구분하지 말고 1 bit 별로 잘라보자.
classless 방식
- 그래서 생겨난 것이 Classless 방식이다.
서브넷 마스크
- 서브넷 마스크가 네트워크 규격을 결정시켜준다.
- 그래서 위에서 IP와 서브넷 마스크가 세트라는 것이 이 뜻이다.
- 위의 그림에서 나온 서브넷 마스크는 3번째 필드까지 강의장을 결정시켜주는 것이다.
- 0이 나오는 것 부터 강의장 당 들어갈 수 있는 컴퓨터의 수.
- 255.255.255.0 = 11111111.11111111.11111111.00000000
- 즉, 4번째 필드 값 전체가 강의장 당 들어갈 수 있는 컴퓨터의 수이다.
- 만약 서브넷 마스크가 255.255.255.192라면?
- 11111111.11111111.11111111.11000000 이다.
- 즉, 2^6(64)개이다.
- 그래서 만약 같은 공유기를 쓴다면 서브넷 마스크의 범위 즉, 3번째 필드까지 IPv4 주소가 같고 4번째 필드인 117은 다르게 된다.
네트워크 ID
- 특정 네트워크를 대표하는 값이다.
- 컴퓨터에게 할당 할 수 없는 주소이다.
- 보통 네트워크 규격을 말할 때 172.31.1.0/24 이런식으로 표현하는데, 24는 서브넷 마스크에 들어가는 1이 24개라는 수 이다.
- 11111111.11111111.11111111.00000000 이 서브넷 마스크주소이다.
- 255.255.255.0이 서브넷 마스크 주소
- 172.31.1.0이 네트워크 ID이다.
네트워크 ID 구하는 법
- IP 주소랑 서브넷마스크를 2진수로 변경한다.
- 서브넷 마스크에서 1에서 0으로 변경되는 곳을 기준으로 IP주소를 네트워크 ID와 호스트 주소로 나눈다.
- 호스트 주소를 전부 0으로 변경한다.
ip 주소 : 128.34.235.89
서브넷 마스크 : 255.255.255.128
- ip 주소 : 10000000.00100010.11101011.01011001
서브넷 마스크 : 11111111.11111111.11111111.1 0000000
- 네트워크 id는 10000000.00100010.11101011.0 0000000 이다.
즉, 128.34.235.0이 네트워크 id가 되는 것이다.
- 정리하면 서브넷 마스크가 0이 나오는 곳을 기준으로 ip 주소를 0으로 만들어준 것이 네트워크 id이다.
10000000.00100010.11101011.0 1011001 : ip 주소
11111111.11111111.11111111.1 0000000 : 서브넷 마스크
10000000.00100010.11101011.0 0000000 : 네트워크 id
ip 주소 : 147.79.123.172
서브넷 마스크 : 255.255.224.0
- ip 주소 : 10010011.01001111.01111011.10101100
서브넷 마스크 : 11111111.11111111.111 00000.00000000
- 네트워크 id는 10010011.01001111.01100000.00000000
즉, 147.79.96.0이다.
브로드캐스트 주소
- 한 네트워크(강의장)에 있는 컴퓨터나 장비 모두에게 한번에 데이터를
전송하는 데 사용되는 전용 IP주소이다.
- 네트워크 id와 마찬가지로 전용 ip 주소이기 때문에, 컴퓨터에게 할당하지 못한다.
- 네트워크 id는 서브넷 마스크 0이 나오는 곳을 기준으로 ip 주소를 0으로 바꿔주는 것이였는데, 브로드캐스트는 전부 1로 바꿔주는 것이다.
10000000.00100010.11101011.0 1011001 : ip 주소
11111111.11111111.11111111.1 0000000 : 서브넷 마스크
10000000.00100010.11101011.0 0000000 : 네트워크 id
10000000.00100010.11101011.0 1111111 : 브로드캐스트 주소
- Ddos가 브로드캐스트 주소를 이용해서 공격한다.
- 1번 주소를 가진 pc와 2번 주소를 가진 pc가 있다.
- 만약 1번 pc가 출발지를 2번으로 하고 목적지를 브로드캐스트 주소로 쓴다면?
- 2번 pc에게 응답을 여러대의 컴퓨터가 주기 때문에 2번 pc는 이걸 못 견디고 터진다.
- 위의 예시로 생각하면 하나의 네트워크 대역 안에서 쓸 수 있는 컴퓨터의 갯수는?
- 10000000.00100010.11101011.0 0000001 ~ 10000000.00100010.11101011.0 1111110 까지이다.
- 왜냐면 네트워크 id와 브로드캐스트 주소는 컴퓨터에게 할당될 수 없는 주소이기 때문이다.
- 낭비를 안시키기 위해서 classless하게 썻는데, 또 낭비가 된다. 왜냐면 강의실에서 25개의 컴퓨터를 쓰는데, 16개로 안되니깐 32개로 늘린다. 그렇다면 7개가 낭비됨.
- 그래서 사용하는게 사설 IP와 공인 IP이다.
사설 IP와 공인 IP
- 일단 네이버에 들어가서 내 ip 주소를 입력해서 결과값을 보자.
- cmd 창에서 ipconfig를 이용해 보았던 주소와 다를 것이다.
- 같은 공유기를 쓰면 전부 같은 ip가 나올것이다.
- 공유기를 쓰면 전부 같은 네트워크 대역이다.
- 그래서, 같은 공유기를 쓰면 공인 IP가 전부 같고, 그 안에서 사설 IP로 나누는 것이다!
- 이것을 가능하게 해주는 기술이 NAT 기술이다.
- 어떤 IP가 있는데, 다른 IP로 바꿔주는것이 NAT이다.
- 지식백과를 치면 사설 ip주소를 공인 ip주소로 바꿔주는데 사용하는 통신망의 주소 변환기라고 하는데, 틀린 설명이다.
- IP를 바꾸어 주는 기술인데, 지식백과에 나와있는 것은 NAT를 사용해서 저런 시스템을 구축해 놓은 것이다.
- 그래서 cmd 창에서 ipconfig를 쓰면 나오는 것이 사설 ip
- 네이버에 검색해서 나오는 것이 공인 ip이다.
- 우리가 통신을 할 때에는 사설 ip로 시작을 하는데, 공유기를 통해서 바깥 세상으로 나갈때에는 공유기의 ip 주소인 공인 ip주소로 바뀌어서 나간다!
- 사설 ip가 공유기를 통해서 밖으로 나갈 때, 자신의 사설 ip를 적어 놓고 공인 ip로 바뀌어서 나간다. 왜냐면? 다시 돌아올 때 공유기를 통해서 다시 사설 ip로 와야하기 때문에!!!
- 아파트 이름을 공인 ip, 동 호수가 사설 ip라고 생각하면 편하다.
이렇게 바뀌면서 좋아진 것이 ip를 사용할 수 있는 범위가 엄청나게 넓어졌다.
한 공인 ip당 사용할 수 있는 사설 ip가 0.0.0.0 ~ 255.255.255.255 까지이다.
그리고 보완적 측면에서도 좋아졌다.
한 회사 내에서 운영 프로그램으로 들어갈 때 보완 허가를 받지 않는다면 접근할 수가 없다.
외부에서 내부에 침입하기 위해서는 무조건 공인 ip를 통해서 들어와야 한다.
- 저번에 그린 아키텍처를 보도록 하자.
- 우리는 iptime의 공인 ip를 사용하고 있고, 한 PC의 사설 ip를 사용한다.
- 이 사설 ip를 가지고 있는 PC에서 가상 머신을 이용해 vm1과 vm2를 만든다면?
- vm1과 vm2 입장에서는 PC의 사설 ip가 공인 ip로 되고, vm1과 vm2는 사설 ip의 사설 ip를 사용하는 것이다.
네트워크 대역
- 사설 IP의 대역은 관리자가 공인 IP를 사용하는 공유기에 설정을 한다.
- 공유기 사이트로 들어가서 관리자가 내부 IP 주소와 서브넷 마스크를 수동으로 바꿀 수 있다.
- 만약 서브넷 마스크를 29라고 하면 사용할 수 있는 컴퓨터의 수는 2^3 - 2이다. 000~111이 범위인데, 000은 네트워크 ID, 111은 브로드캐스트 주소이기 때문에 할당하지 못한다.
게이트웨이 주소
- 외부와 통신할 때 사용하는 네트워크의 출입구
- 인터넷이 되기 위해서는 내 IP 주소를 세팅하고, 네트워크의 규격을 결정하는 서브넷 마스크, 외부로 나가기 위한 게이트웨이 주소까지 써야 공유기를 통해 바깥 세상으로 나가게 된다.
- 게이트웨이 주소는 공유기의 사설 ip 주소이다.
- 바깥 세상으로 나가기 위해서는 공유기를 통해서 나가야 하는데 그 공유기가 어디있는지 알기 위한 주소가 게이트웨이 주소인 것이다.
결론
- iptime의 공인 ip가 따로 있고, 사설 ip가 위의 그림에서 나온 192.168.0.1이다.
- 동혁 PC에서 사설 ip는 192.168.0.6이다.
- 동혁 PC의 가상머신
- 가상머신의 공유기(Virtual Network Editor)의 공인 ip는 동혁 PC의 사설 ip가 되며, 사설 ip는 192.168.163.2이다.
- VM PC1의 사설 ip는 192.168.163.128이다.
- VM PC2의 사설 ip는 192.168.163.129이다.