1. IP
기기의 주소를 나타내는 것이 IP 주소이다.
1.1 공인IP
- ISP가 제공하는 IP주소이자 유일한 IP 주소를 갖는다 .
- 외부에 공개되어있기 때문에 다른 PC로부터 접근이 가능하며, 따라서 이 IP를 사용하는 경우에는 방화벽 등의 보안 프로그램을 설치해야한다.
1.2 사설IP (= 로컬 ,가상 ip)
- 라우터에 의해 할당된 ip를 말한다.
- 외부 접근 불가능하고 , 내부망 안에서만 접근 가능하다.
- IPv4의 주소부족으로 인해 서브넷팅된 IP를 말한다.
- ipconfig에 나오는 ip가 사설ip이다.
2. IP 클래스
IP주소는 대역에 따라 A,B,C,D,E 클래스로 나뉜다. 이 클래스들을 구분함으로써 클래스 내에서 Network ID와 Host ID를 구분하게 된다.
네트워크 ID란 네트워크를 구분해주는 ID이다. 네트워크 ID가 같다는 의미는 같은 네트워크 상에 있다는 의미로 같은 네트워크 상에 있다면 서로 자유롭게 통신을 할 수있다.
호스트 ID란 해당 네트워크에 속한 사용자에게 부여하는 고유의 번호이다.
- A 클래스 : 대규모 네트워크 환경에 쓰이며, 첫번째 마디의 숫자가 0 ~127까지 쓰인다. 하나의 네트워크 가 가질 수 있는 호스트 수가 가장 많은 클래스이다. 네트워크 영역은 앞의 첫번째 마디인 8비트, 뒤의 24비트는 호스트 영역이 차지한다. 예를들어 111.222.333.444 라면 앞의 111이 네트워크 ID, 뒤가 222.333.444가 호스트ID를 나타낸다. 그리고 이 호스트ID는 2^24 -2 d인데 2개를 제외한 이유는 시작주소인 x.0.0.0 은 네트워크 주소로 사용, 마지막 주소인 x.255.255.255는 브로드 캐스트 주소로 사용한다.
- B 클래스 : 중규모 네트워크 환경에 쓰이며, 첫번째 마디의 숫자가 128 ~191 까지 쓰인다. 네트워크 영역은 앞의 16비트가 차지하고, 뒤의 15비트는 호스트 영역이 차지한다.
- C 클래스 : 소규모 네트워크 환경에 쓰이며 첫번째 마디의 숫자가 192 ~223 까지 쓰인다. 네트워크 영역은 앞의 24비트가 차지하고, 뒤의 8비트는 호스트 영역이 차지한다.
- D 클래스 : 멀티캐스팅용로 쓰이고, 잘 쓰이지 않는다.
- E 클래스 : 연구/개발용으로 일반적인 용도로 잘 사용되지 않는다.
3. CIDR (=사이더)
하지만 위의 클래스 기반 할당 방법은 인터넷 주소 공간을 낭비하는 문제점을 발생시켰다. 그로 인해 클래스의 제한을 두지 않고 적당한 호스트 수에 따라 네트워크를 할당하는 CIDR 방식이 등장했다.
classless Inter-Domain Routing 의 약자로 즉 클래스 없는 도메인간 라우팅 기법을 말한다. CIDR의 경우 네트워크 부분과 호스트 부분을 1비트 단위까지 구분이 가능해 호스트 주소를 보다 더 유연하게 할당할 수 있다.
IP주소 뒤에 /24, /16 같은 숫자가 붙어있다면 이는 사이더 표기법을 사용한것이다.
3.1 CIDR 예시
a.b.c.d / n 의 형식으로 ip 주소 / n으로 표현되며 총 32비트 중에 1이 n개인 서브넷 마스크를 가진다. (서브넷 마스크는 뒤에 설명)
더 자세히 예를 들자면 111.111.10.0/24 라면 앞의 111.111.10.0은 ip주소이며 , “/24” 는 앞에서부터 24비트 이후에 오는 4번째 옥텟을 전부 사용할 수 있다는 의미이다. 예시의 경우 호스트로 111.111.10.0 ~ 111.111.10.255를 전부 사용할 수 있다. IPv4 자체가 4개의 옥텟 총 32비트를 사용하기 때문에 0 ~ 32를 사용할 수 있으며, 하나의 옥텟은 8비트로 총 2^8 즉, 256개(0 ~ 255)이다.
이렇게 CIDR의 ip주소와 n을 통해 알게 된 서브넷 마스크를 이용해 AND 연산을 하면 네트워크 id를 알 수 있다.
4. 서브넷 & 서브넷 마스크
위에서 언급했다싶이 A 클래스의 네트워크에만 수많은 호스트를 할당할 수 있지만 어떤 기관에서 필요한 IP가 200개라면 나머지 IP주소는 리소스 낭비가된다. 이러한 문제를 해결하기 위한 방법이 서브넷이다.
서브넷은 이전에 사용하던 클래스를 이용한 IP 분배에 대한 문제점을 해결하기 등장한 개념으로 IP주소에서 네트워크 영역을 부분적으로 나눈 네트워크를 말한다. 그리고 이 서브넷 단위로 분리하는 것을 서브네팅, 그리고 서브넷 마스크는 이 서브넷을 만들기 위해 네트워크 ID와 HOST ID를 분리하는 역할을 한다. 서브넷에 마스크를 씌어서 필요없는 IP를 가린다는 의미로 서브넷 마스크라 부른다.
서브넷 마크스는 IP 주소처럼 8비트씩 총 32비트로 구성되어있다.
- 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.10000000
따라서 IP주소와 서브넷 마스크 주소를 AND연산하면 네트워크 Id를 구할 수 있다. (2진법에서 AND 연산은 두개의 수가 모두 1일때 1, 하나도 0이면 0이다.)
기존 IP 주소 : 115.95.229.196 →> 01110011.01011111.11100101.11000100
서브넷 마스크 : 255.255.255.0 → 11111111.11111111.11111111.00000000
이를 AND연산을 하면 01110011.01011111.11100101.00000000 → 115.95.229.0 나온다 .
따라서 클래스 주소 체계에서는 115.95.229.196가 A클래스이므로 원래 네트워크 주소 ( =Id )는 115.0.0.0 나머지가 호스트 주소가 되어 수많은 호스트를 낭비되지만, CIDR방식의 서브넷 마스크를 씌우면 115.95.229.0이 네트워크 주소가 되며, 115.95.229.255가 브로드 캐스트 주소. 이를 제외한 115.95.229.1 ~ 115.95.229.254 가 호스트에 할당 가능한 주소(= 같은 네트워크)가 된다.
'CS > 네트워크' 카테고리의 다른 글
hosts 파일 (0) | 2023.07.22 |
---|---|
루프백 ( 127.0.0.1, localhost ) (0) | 2023.07.20 |
l4 로드밸런싱 (0) | 2023.07.16 |