본문 바로가기

개발 정보/Web

ipconfig 정리

반응형












왜 이 포스팅을 하고있을까?


어느 회사 필기시험을 치러 간 날 꼭 정리하자고 마음먹었다.

스스로의 주력 언어를 JAVA라고 소개하는 지원자가 웹, 네트워크 기초 지식이 꽝이다?

나같아도 뽑고싶지 않을 것 같다.

사실상 언어가 문제가 아니라 이 정도는 전산학 기초 지식에 포함된다고 본다.


여튼 시험 이후에 이런저런 생각이 들었고, 그래서 이 포스팅을 꼭 하고싶었다.

그 문제의 답을 찾겠다는게 아니라, ipconfig 창을 보며 어느 한 줄도 시원하게 설명 못하는 스스로에게 자괴감을 느꼈기 때문이다.



ipconfig


아마 자신의 IP주소를 확인할 일이 있었던 사람이라면 한번쯤은 입력해봤을 명령어다.

무슨 뜻일까?

우선 Internet Protocol Configuration의 약자다.

Windows에서는 이 명령어로 PC의 네트워크 설정 값을 확인/변경할 수 있다.

예전에는 이걸 자주 썼었는데, 시간이 지나 공유기를 사용하면서 그 회사에서 제공하는 인터페이스를 더 자주 쓴 것 같다.

명령어를 입력하면 요런 구성이 나와 있다.

IPv6가 들어간 놈을 제외하면 나머지는 000.000.000.000 형식으로 되어있다.

이게 무엇인지부터 알아보자.



IP Address



Example address : 192.168.0.1


이런 IP 주소의 본래 모습은 이진수 32bit 꼴이다.

실제 주소는 11000000101010000000000000000001 형태일 것이다.
1. 이 주소를 8bit section(옥텟)으로 나누어 (11000000 10101000 00000000 00000001)
2. 각 section을 십진수로 변환한 것이 바로 저 모습이다.


그렇다면 각 section이 의미하는 것은 무엇일까?

우선 이 IP주소는 두 부분으로 나뉜다.

- 네트워크 주소 : 192.168.0.0
- 호스트 주소 : 0.0.0.1

맨 마지막 옥텟은 호스트 주소를 의미하고 나머지 앞부분은 네트워크 주소를 의미한다.
(이는 클래스마다 달라질 수 있다. 자세한 설명은 뒤에)

네트워크 주소호스트 주소의 의미는 서적이나 인터넷에 잘 나와있다.

하지만 라우터, 브로드캐스트, 서브넷 마스크 등 다양한 전문 언어들이 섞여 있어 단번에 이해가 쉽지는 않다.

정말 단순하게 생각하자면, 아래 그림과 같은 형태를 떠올리면 된다.

- 아파트 단지 : 네트워크 주소
- 각 단지별 동 : 호스트 주소

다시말해 IP주소의 앞부분인 네트워크 주소는 호스트별로 사용할 수 있는 네트워크의 범위를 나타내고,

마지막 부분인 호스트 주소는 네트워크 범위 내에서 각 호스트를 구분하기 위한 주소이다.


그렇다면 수많은 컴퓨터 사용자의 네트워크를 구분하기 위해 이 IP주소를 사용한다는 것인데,

과연 어떤 형태로 이 주소를 제공하고 관리하는지 궁금해할 필요가 있다.

IPv4 체계에서는 네트워크 주소를 A~E까지 총 다섯개의 Class로 나누어 구분하고 있다.

일반적으로 사용하는 class는 A, B, C 이 세 가지이다.




IPv4 3 Classes




애초에 D, E Class는 그 용도가 정해져있기 때문에 접하기 쉽지 않고, 흔히 볼 수 있는 A, B, C 세 가지만 소개하겠다.

우선 각 클래스의 범위이다.

Class : 1.0.0.0 ~ 126.255.255.255

Class : 128.0.0.0 ~ 191.255.255.255

Class : 192.0.0.0 ~ 223.255.255.255


뭔가 이상한걸 눈치채야 한다.

이론상으로 A Class는 0.0.0.0 ~ 127.255.255.255의 범위여야 한다.

그런데 왜 범위가 다를까?

0.0.0.0 과 127.0.0.0 대역은 따로 용도가 있기 때문에 사용하지 않는다고 한다.

0.0.0.0은 브로드캐스트 용도로 사용하고, 127.0.0.0 대역은 자기 자신을 나타내는 루프백로 사용한다.

그래서 A Class의 실제 사용 범위가 위와 같게 되는 것이다.


>

각 클래스별로 네트워크 주소호스트 주소 할당량이 다르다.

어떻게 된 일일까?

이는 각 클래스를 구분하기 위해 클래스마다 최상위 비트를 지정했기 때문이다.

위에서 설명했다시피 십진수로 표기된 현 주소를 이진수로 변환한 것이 실제 주소다.

이진수로 나타낸 형태에서 최상위 비트로 이 클래스들을 구분하는 것이다.

A, B, C의 최상위 비트는 각각 0, 10, 110으로 나타낸다. (D와 E는 1110, 1111). 각 클래스의 범위도 이에 따라 정해진 것이다.

다시말해 각 클래스를 32bit로 표현하면

Class : 00000000.00000000.00000000.00000000 ~ 01111111.11111111.11111111.11111111

Class : 10000000.00000000.00000000.00000000 ~ 10111111.11111111.11111111.11111111

Class : 11000000.00000000.00000000.00000000 ~ 11011111.11111111.11111111.11111111

가 되는 것이다.

이렇다 보니 각 최상위 비트에 맞추어 클래스 마다 할당되는 주소가 다를 수 밖에 없는 것이다.

위에서 볼 수 있듯, 클래스가 거듭될수록 네트워크에 연결할 수 있는 호스트의 수는 절반씩 줄어든다.

예를 들어,

A Class에서 1.0.0.0 이라는 네트워크 주소를 할당 받았다면,
네트워크 주소를 나타내는 32bit의 첫 section을 제외한 나머지 3 section은 모두 호스트 주소를 나타낼 수 있으므로,
총 개 만큼의 호스트를 연결할 수 있는 것이고,
B Class에서 128.161.0.0 이라는 네트워크 주소를 할당 받으면 호스트 주소는 2 section 뿐이므로 개의 호스트를 연결할 수 있다.


>

주소마다 지정된 곳에 쓰이는 경우가 있다. A Class의 범위가 이론과 달라진 것도 이 때문이다.

모든 것을 외우고 있을 수는 없지만, 브로드캐스트나 루프백, 사설 IP 등 사용 용도에 따라 구간이 나뉘어 있다는 것을 인지하자.



Subnet Mask




ipconfig 창에서 IPv4 밑에 서브넷마스크가 보인다.

이 포스팅에선 서브넷마스크와 서브넷팅에 대해 자세히 다루지 않을 것이다.

단순히 ipconfig창을 이해하기 위한 포스팅이고, 이런 모든 부분을 다 다룬다면 이 포스트는 한 권의 네트워크 책이 될 것이다.


서브넷마스크의 본래 목적은 부족한 네트워크를 해결하기 위함이라고 한다.

IPv4에서 이론적으로 장치마다 제공할 수 있는 IP주소의 수는 42억개다.

하지만 단순히 이 개수만을 가지고 무분별하게 네트워크를 할당한다면 비효율적으로 낭비되는 네트워크와, 이에 따른 부족 현상이 발생하게 된다.

이를 해결하기 위해 등장한 것이 바로 서브넷마스크다.

이론상의 의미를 예시를 통해 알아보자. 

- 우리는 C Class의 대역을 할당받았다.
- IPv4에 따라 255개의 호스트를 연결할 수 있다.
- 그런데 지금 이 공간에 컴퓨터가 10대 뿐이다.
- 나머지 245개의 IP주소가 낭비될 것이다.
- 이 대역을 쪼개서 나머지 245개의 주소를 다른 곳에 활용할 수 있도록 한다.

이 과정이 바로 서브넷마스크인 것이다.

서브넷마스크의 또다른 기능은 네트워크 주소호스트 주소를 구분하는 기능이다.


예를 들어 내 ipconfig 창에 다음과 같이 나와있다고 가정하자.

IPv4 주소 : 192.168.10.4 
서브넷마스크 : 255.255.255.0 

IPv4의 클래스를 아는 사람이라면 192라는 숫자만 보고도 클래스를 유추할 수 있다.

하지만 그 아래 서브넷마스크를 보면 조금 더 빠르게 직관적으로 파악이 가능하다.

서브넷 마스크는 IPv4와 동일하게 32bit로 구성되며, 각 옥텟(section)별로 only 1 또는 0으로만 구성돼있다.

IP주소처럼 10101010으로 뒤섞여있지 않다는 말이다.

여기서 only 1 옥텟은 네트워크 주소, only 0 옥텟은 호스트 주소를 나타낸다.

즉, 십진수 형태에서 255는 네트워크 주소, 0은 호스트 주소라고 파악하면 된다.
(어느 블로그를 참고하니 이렇게 서브넷마스크만으로 클래스를 파악하는 것은 위험하다고 한다. 추후에 더 알아보겠다.)



그렇다면, 이 IPv4와 서브넷마스크 정보를 가지고 무엇을 알아낼 수 있을까?

바로 나뉘어진 서브넷의 개수연결가능한 호스트의 수다.

이번에도 예를 들어보자.

IPv4 주소 : 192.168.10.4 
서브넷마스크 : 255.255.255.248 

위와 같은 정보가 주어졌다고 가정하자.

서브넷마스크를 이진수로 변환하면 11111111.11111111.11111111.11111000 이 될 것이다.

우선 우리는 이 IP주소의 클래스가 C Class임을 알 수 있다. 즉, 앞의 세 개의 옥텟(section)은 네트워크 주소를 나타낸다.

따라서 맨 뒤의 옥텟이 호스트 주소인데, 1이 포함돼있다.

1의 개수를 보면 서브넷의 개수를 알 수 있다.

반대로 그 뒤의 0의 개수가 연결 가능한 호스트의 수를 나타낸다.

즉, 11111이므로 서브넷의 개수이며, 그 뒤의 000이 개의 호스트를 연결할 수 있음을 나타낸다.




Default Gateway




서브넷마스크까지 알아봤다. 

그 밑에는 기본 게이트웨이 라는게 있다.

이건 또 뭘까?

의미로만 보면 동일 네트워크가 아닌 다른 네트워크와 통신하기 위해 거쳐야 하는 관문이다.

동일 네트워크라면 서로 통신이 무리 없이 잘 되겠지만, 다른 영역에 있는 네트워크와 소통하려면 이 문을 거쳐야 하는 것이다.

기본 게이트웨이 값은 어떻게 나온 것일까?


위의 예제를 그대로 가져오자.

IPv4 주소 : 192.168.10.4 
서브넷마스크 : 255.255.255.248 

이 형태에서 우리는 연결 가능한 호스트가 8개라는 것을 알아냈다.

실제로 0 ~ 255 까지의 영역을 8개씩 분할하면 32개의 subnet이 나온다.

다음과 같다.

subnet

IP

1

0

1

2

3

4

5

6

7

2

8

9

10

11

12

13

14

15

...

8

56

57

58

59

60

61

62

63

...

 32

248

249

250

251

252

253

254

255

위의 예제에서 나의 IP 호스트 주소4이며, 표에 따라 subnet 1에 속하고, 내 기본 게이트웨이 값은 0이 된다.

그 외에도 각 subnet마다 가장 앞에 있는 주소기본 게이트웨이가 된다.

즉, 위 예제는 다음과 같이 구성될 것이다.

IPv4 주소 : 192.168.10.4 
서브넷마스크 : 255.255.255.248 
기본 게이트웨이 : 192.168.10.0 




DNS Server




자, 이제 ipconfig를 넘어 네트워크 속성창을 살펴보자.

DNS 서버라는 다소 생소한 개념이 등장했다.
(ipconfig 창에도 DNS라는 말은 있다.)

DNSDomain Name System의 약자이다. 이름만 봐도 대충 감이 온다.

그렇다.

이 블로그 주소인 hanxxang.tistory.com을 주소창에 입력하면, 컴퓨터는 이를 숫자로 처리한다.

예를 들어 192.168.10.4 라는 IP주소hanxxang.tistory.com으로,
혹은 그 반대로 도메인을 입력하면 이에 해당하는 IP192.168.10.4라는 주소로 연결해주는 역할을 하는 것이다.

활용 예제는 많다.

1. 중국 자체에서 차단한 사이트에 접속하기 위해 DNS 서버를 주소를 수동 변경
2. google DNS로 설정해 youtube등 성능 개선
3. 특정 사이트가 접속이 되지 않을때 수동 DNS로 해결

등이 있다.




DHCP




앞서서 IP주소에 대해 조금 알아봤다.

그런데 만약 우리 사무실에 컴퓨터가 100대쯤 있고, 매일 네트워크 이슈가 발생해 IP 설정 변동사항이 많은 편이라 IP 관리가 쉽지 않다.

이럴 경우, DHCP를 활용하면 편리하다.

DHCPDynamic Host Configuration Protocol의 약자로, 말그대로 동적 할당을 의미한다.

IP주소를 효율적으로 낭비 없이 사용하고, 충돌을 막는데 효과적이다.



IPv6





ipconfig와 네트워크 속성창을 모두 훑어봤는데, 아직 언급되지 않은 녀석이 있다.

바로 IPv6다.


계속해서 언급되고 있지만, IPv4는 그 양이 한정돼있다.

서브넷팅과 DHCP등으로 열심히 개선했지만, 온갖 사물이 통신하는 IoE 시대가 오고 있는데 40억개 수준의 주소로는 감당이 안 될 것이다.

그래서 등장한 녀석이다.

생긴것도 참 구리게 생겼다. 숫자도 모자라 각종 알파벳이 뒤섞여있고, 섹션 구분은 콜론(:)으로 돼있다.

알파벳이 있는 것으로 보아 16진수로 구성돼있으며, 딱 봐도 IPv4와는 비교도 안 될 정도로 그 양이 방대해보인다.

실제로 개를 만들 수 있다고 한다.

그냥 어마어마하다고 생각하면 된다.

IPv6는 IPv4에 비해 보안, 성능, 범용성 등이 모두 개선된 개념이기 때문에 미래가 창창하다.

각종 비교표는 구글링하면 쏟아지므로 Pass~







반응형