3. IP주소

IP주소이야기

TCP/IP 라는 프로토콜을 사용하는 모든 장비들을 구분해 주기 위해 만들어낸것이다.
이진수 8개마다 점을 찍는데 이를 묶어서 옥테트(octet)라고 부른다. IP주소는 32비트이며 즉 IP주소는 4개의 옥테트로 나누어진다.

라우터에서의 IP주소

라우토가 IP의 라우팅(경로배정)만 담당하는 것은 아니다.
pc여러대 - 스위치 - 라우터 - 인터넷의 구성을 생각해보자.
내부 네트워크에 연결되는 라우터의 포트를 이더넷 인터페이스라 생각하고(즉 스위치-라우터 사이) 외부 즉 인터넷쪽으로 연결되는 인터페이스를 시리얼 인터페이스라고 생각하자.
그러므로 라우터에 부여해야하는 IP주소는 두 개가 된다. 하나는 이더넷 인터페이스에 부여할 것이고 하나는 시리얼 인터페이스에 부여할 주소이다.
이더넷 인터페이스의 주소:이더넷용 IP주소는 우리가 내부에서 사용하기 위해 부여 받은 IP주소 중 하나를 배정해야 한다.(라우터의 이더넷쪽은 내부 네트워크에 접속되기 때문에..) 보통은 부여받은 주소중 맨 앞의 주소를 쓴다.
시리얼 인터페이스의 주소 : 시리얼의 주소는 마음대로 부여할 수 있는게 아니다. 라우터가 접속하는 상대편(ISP 업체) 라우터의 시리얼 인터페이스와 IP 주소를 서로 맞추어야 하기 때문이다.(라우터에서 인터페이스가 달라지면 네트워크가 달라진다는 것을 의미. 즉 상대편 라우터의 시리얼과는 같은 네트워크가 되어야 한다.)
예를 들어 상대편 라우터의 시리얼이 203.150.150.5에 서브넷 마스크가 255.255.255.252라면 우리 라우터의 시리얼은 203.150.150.6에 서브넷 마스크는 255.255.255.252가 된다.(왜 시리얼이 다를까?? 아직은 이해가 되질 않는다. 같아야 할 것이라 생각하는데… 잘못이해 했구나. 상대편 라우터의 시리얼 인터페이스와 IP 주소를 서로 맞추어야 한다는 뜻은 그것을 똑같이 일치시켜야 한다는 뜻이 아니라 mapping 해야 한다는 뜻으로 이해하자! )

네트워크 부분, 호스트 부분

네트워크 부분:네트워크란 하나의 브로드 캐스트 영역이라고 생각하면 된다. 즉 하나의 PC가 데이터를 뿌렸을 때 그 데이터를 라우터를 거치지 않고도 바로 받을 수 있는 영역을 의미. 한 브로드캐스트 영역 안에 있는 두 PC는 라우터 없이 통신이 가능하지만 그렇지 않은 경우에는 라우터를 꼭 거쳐야 한다.
호스트 부분: 각각의 PC 또는 장비를 의미한다.

IP주소는 네트워크 부분 ,호스트 부분으로 나누어진다. 따라서 어떤 네트워크에서든지 하나의 네트워크에서는 네트워크 부분은 모두 같아야 되고 호스트 부분은 달라야 정상적인 통신이 일어난다.

한 라우터의 있는 한 인터페이스로 50대의 PC가 연결되어 있다면 이들은 모두 같은 네트워크상에 있다하고 IP주소 중 네트워크 부분이 같아야 한다. 하지만 호스트 부분은 서로 다른것을 확인할 수 있다.

같은 네트워크에 있는 다른 PC를 찾아갈때는 라우터가 필요없고 라우터는 다른 네트워크로 갈 때만 필요하다.

Class

IP 주소는 5개의 Class로 구분된다. 2개는 별로 쓰이지 않는다.(하나는 멀티캐스트용, 하나는 연구용)
클래스는 A,B,C,D,E로 구분된다. 클래스에 따라 어디까지가 네트워크 부분이고 어디까지가 호스트 부분인지 나누어진다. 이를 이렇게 나눈건 네트워크 크기에 따른 구분이다. 하나의 네트워크가 호스트의 수를 몇 개 까지 가질수 있는가에 따라 클래스가 나누어진다.

클래스A: 하나의 네트워크가 가질 수 있는 호스트 수가 가장 많은 클래스이다. 32개의 이진수 중에서 맨 앞쪽 하나가 항상 0으로 시작되는 것들이다. 클래스 A의 경우는 앞의 8비트가 네트워크 부분을 나타내고 나머지 24비트가 호스트 부분을 나타낸다는 약속이 있다.

즉 클래스 A는 가장 작은 네트워크는 1.0.0.0(0.0.0.0 제외)이고 가장 큰네트워크는 126.0.0.0(127제외. 이건 약속) 으로 규정된다.
하나의 클래스가 가질 수 있는 호스트의 수는 2^24-2(모두 0인경우 네트워크 자체를 나타내기 때문에 , 모두 1인경우 브로드캐스트 주소이기 때문에 )

클래스B : 맨 앞이 반드시 10(이진수)으로 시작된다. 뒤에는 어떤 숫자가 와도 상관없다. 즉 10xx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx형태를 띤다. 제일 작은 수는 128.0.0.0 이고 제일 큰 수는 191(1011 1111).255.255.255 이다. 클래스 B의 경우 앞의 16비트가 네트워크부분을 나타내고 나머지 16비트가 호스트 부분을 나타낸다.

정리하자면 128 부터 191로 시작하는 네트워크는 클래스 B이고 클래스 B 네트워크가 가질 수 있는 호스트의 수는 2^16 -2개(모두 0인경우 네트워크 자체를 나타내기 때문에 , 모두 1인경우 브로드캐스트 주소이기 때문에)이다.

클래스C : 맨 앞이 110(이진수)으로 시작된다. 죽 110x xxxx. ….의 형태이다. 따라서 맨 앞에는 110이 반드시 나와야 한다. 192.0.0.0이 가장 작은 숫자고 가장 큰 부분이 233.255.255.255 이다. 클래스 C의 경우 앞의 24비트가 네트워크 부분을 나타내고 나머지 8비트가 호스트 부분을 나타낸다.

클래스 C가 가질 수 있는 호스트의 수는 2^8-2 즉 254개이다.

이렇게 나눈 이유는 IP주소를 적정하고 효율적으로 배분하기 위한것으로서 IP 앞주소분만 보면 클래스를 알 수 있다.

요약 :
시작하는비트/네트워크비트/호스트비트
클래스A: 0/7/24
클래스B: 10/14/16
클래스C: 110/21/8

서브넷마스크

메인이 아닌 어떤 가공을 통한 네트워크를 만들기 위해서 씌우는 마스크이다. 다시 말해 우리가 어떤 IP주소를 받게되면 이 주소를 그대로 사용하지 않고 입맛에 맞게 가공하여쓴다. 클래스 B 주소를 받았을 때 하나의 네트워크가 65000여개의 호스트를 가지는데 이렇게 큰 네트워크를 구성하면 브로드 캐스트 영향이 많아 아무것도 할 수 없다. 부여받은 IP주소에 서브넷 마스크를 씌워 네트워크를 나눈다. 또한 각각의 서브넷간의 통신은 라우터를 통해서만 가능해진다.
즉 서브넷 마스크는 주어진 IP주소를 네트워크 환경에 맞게 나누어 주기 위해 씌워지는 이진수의 조합이다.

서브넷 마스크는 주소를 나누지 않더라도 항상 IP 옆에 붙어다닌다. 그래야 그 주소를 나눈 건지 아닌지 알 수 있기 때문이다.

디폴트 서브넷 마스크 : 주어진 클래스를 나누어 쓰지 않고 몽땅 쓰는경우에도 서브넷 마스크는 따라다니는데 그게 바로 디폴트 서브넷 마스크, 즉 기본 서브넷 마스크이다.
클래스 C의 경우 디폴트 서브넷 마스크는 255.255.255.0이다. 클래스 B의 경우는 255.255.0.0이고 클래스 A는 255.0.0.0 이다. 그러므로 주어진 네트워크를 하나도 나누지 않고 그대로 다 쓰는 경우에는 디폴트 서브넷 마스크를 쓰면 된다. 하지만 주어진 네트워크를 나누어서, 즉 가공해서 쓰는 경우는 디폴트 서브넷 마스크를 쓰지 않고 약간 고쳐서 쓴다

네트워크를 나누는 경우 활용법 : 서브넷 마스크란 IP주소를 가지고 어디까지가 네트워크 부분이고 또 어디까지가 호스트 부분인가를 나타내는 역할을 한다. 따라서 서브넷 마스크를 보면 그 IP 주소의 네트워크 부분과 호스트 부분을 알 수 있다. 네트워크 부분은 서브넷 마스크가 이진수로 1인부분이고 호스트 부분은 0인 부분이다.

150.150.100.1(B클래스)이라는 IP주소에 디폴트 서브넷 마스크를 사용했을 때 네트워크 부분은 150.150이 된다. 하지만 서브넷마스크를 255.255.255.0을 씌우게 되면 네트워크 부분은 150.150.100이 되고 호스트 부분이 줄어들게 된다. 즉 클래스 B 주소를 마치 클래스C처럼 사용한다는 의미이다. 이렇게 서브넷 마스크를 씌워서 작은 네트워크로 만드는 것을 서브네팅이라 한다.

정리하자면 서브넷 마스크는 커다란 네트워크를 작은 네트워크 여러 개로 나누어서 쓰기 위함이며 서브넷 마스킹은 기존 IP주소의 호스트 부분의일부를 네트워크 부분으로 바꾸는 작업이다.

서브넷 마스크의 성질:
서브넷 마스크로 만들어진 네트워크, 즉 서브넷은 이제 하나의 네트워크이기 때문에 서로 나뉘어진 서브넷끼리는 라우터를 통해서만 통신이 가능하다.
서브넷 마스크는 이진수로 썼을 때 1이 연속적으로 나와야 한다. 즉 255.255.255.15(1111 1111.1111 1111.1111 1111.0000 1111)는 불가능하고 255.255.255.252(1111 1111.1111 1111.1111 1111.1111 1100)은 가능하다.

Share