IT 기획의 길

TCP/IP 이론 — IP 주소, 서브넷 마스크 그리고 기본 게이트웨이 본문

IT 인프라/네트워크

TCP/IP 이론 — IP 주소, 서브넷 마스크 그리고 기본 게이트웨이

완벽하기 쉽지 않지만 완벽해지려고 노력해야 한다 2021. 10. 12. 10:12

이 포스팅은 “해킹 입문자를 위한 TCP/IP 이론과 보안”이라는 서적을 읽는 도중 내용에 대한 정리가 필요하다고 생각하여 작성하게된 포스팅이다.

책은 총 19개의 목차로 되어있으며 TCP/IP와 관련된 지식들을 입문자들의 수준에 맞춰 잘 정리를 해 놓았다. 부디 나와 같이 네트워크에 대한 지식이 부족하다고 느꼈던 사람이 있다면 이 포스팅이 도움이 되기를 바란다.

1장

IP 주소와 서브넷 마스크 그리고 기본 게이트웨이의 의미

책의 설명은 운영체제 32비트 기반의 윈도우 7을 기준으로 설명하고 있으며 필자의 경우 64비트 기반의 윈도우 7을 사용중이다. 이에 ios와 같은 경우에 대한 설명은 생략을 하니 부디 맥북 유저들은 융통성 있게 잘 따라와 주기를 바란다.

먼저 명령 프롬프트 창을 실행하자. 컴퓨터 공학부 학생이라면 누구나 봤었을 검은색 창이다. 실행창에 cmd라는 명령어를 통해 열 수 있다.

자 그럼 여기서 우리는 인터넷 공간에서 우리가 원하는 웹사이트에 어떻게 해서 찾아갈 수 있는지에 대해 생각을 해보자.

이를 위해서 방금 킨 명령 프롬프트 창에 ipconfig 명령어를 입력하자. 입력하면 아래와 유사한 화면이 보일 것이다. 나와있는 주소나 숫자들이 필자와 다르다고 당황해 하지는 말자.

화면에 나온 내용을 정리하면 아래와 같다.

안에 내용들을 보기에 앞서 이더넷 어댑터 로컬 영역 연결이라는 것에 대해 먼저 알아보자. 이더넷 어댑터란 독자들이 사용하는 PC의 LAN 카드를 의미한다. LAN 카드는 Network Interface Controller(NIC)라고도 하는데 이 LAN 카드가 2개 있으면 이더넷 어댑터 로컬 영역 연결 2와 같이 뜨기도 한다. 여기서 이더넷이란 LAN 영역에서 사용하는 표준 통신 기술이다.

즉, 이더넷 어뎁터는 LAN 카드를 뜻하고, 이더넷은 LAN 영역에서 사용하는 통신 기술을 의미한다고 정리할 수 있다. 일단은 여기까지 이해하고 넘어가자.

IPv4 주소라는 것은 흔히 우리가 듣는 IP 주소를 뜻한다. IP 주소는 0.0.0.0 부터 255.255.255.255까지, 총 2의 32승 만큼의 주소를 갖을 수 있는, 32비트로 이루어진 체계이다.

IP 주소는 인터넷 공간에서 자기 PC가 사용하는 고유한 식별자를 뜻한다. 위의 표에 의하면 필자의 PC의 인터넷 상에서의 고유한 식별자의 번호는 192.168.0.4가 될 것이다. 또한 이런 IP 주소는 인터넷 상에서 자기 PC가 다른 곳으로 데이터를 보낼때 송신하는 주체이기 때문에 출발지 주소에 해당한다. 정리하자면 IP 주소는 인터넷상의 고유한 식별자이자 내 PC의 출발지 주소라고 정리할 수 있다.

이러한 IP 주소에는 클래스라는 개념이 있는데 이는 번호의 영역이라고 생각하면 편하다. 클래스의 기준은 아래 표와 같다.

필자의 경우 앞에 자리가 192이기에 C 클래스에 속한다. 8.8.8.8 같은 경우에는 A 클래스에 속할 것이고, 168.126.63.1번 같은 경우에는 B 클래스에 속할 것이다.

여기서 위의 클래스에 해당하는 번호를 보면 127번이 제외되어 있는 것을 알 수 있는데 이 127번은 127.0.0.1번으로 사용하는 특별한 주소이기에 어느 클래스에도 속하지 않는다. 지금은 자기가 사용하는 LAN 카드 자신을 의미한다고 생각하고 이러한 주소를 루프백 주소(loopback address)라는 것만 알아두자.

자 그럼 IP를 살펴보았으니 이제 서브넷 마스크를 봐보자. 서브넷 마스크를 이해하기 위해서는 서브넷에 대한 개념을 알아야 하는데 이는 뒤에 나오니 지금은 255.255.255.0과 같은 숫자만 봐두자.

서브넷 마스크는 IP 주소와 쌍을 이뤄서 사용하는 개념이다. 정확히는 IP 주소를 이 서브넷 마스크를 이용해 표기하는데 이를 서브넷 마스크 표기법이라고 칭한다.

아까 봤던 주소를 다시 봐보면 192.168.0에 255.255.255가 대응하고 IP 주소의 4와 서브넷 마스크의 0이 대응을 하는 것을 알 수 있다. 이때 255.255.255에 대응하는 192.168.0을 네트워크 ID라고 하며 0에 대응하는 4를 호스트 ID라고 한다. 이해를 돕기위해 아래 네트워크 ID와 호스트 ID에 대한 예시를 첨부하였다.

이러한 네트워크 ID와 호스트 ID로 나뉘는 개념은 전화번호에서 유래하였다. 전화번호에서의 국번이 네트워크 ID에 해당하는 개념이라면 일련번호가 호스트 ID에 해당하는 것이다.

자 그럼 마지막으로 기본 게이트웨이를 알아보자. 게이트웨이를 다른 말로 라우터라고 한다. 소프트웨어 측을 강조할때 게이트웨이라고 하며, 하드웨어적 측면을 강조할때 라우터라고 한다.

필자의 경우 기본 게이트웨이가 192.168.0.1로 나온다. 게이트웨이란 필자가 사용하는 무선 공유기를 뜻한다. 필자는 ipTIME을 사용하고 있으며 혹시 무선 공유기가 뭔지 모르겠다면 인터넷 선 연결하는 안테나 달린 흰색 상자를 생각하면 된다. 컴퓨터 공학부 학생이라면 다 알 것이라 생각한다.

이 공유기를 통해 필자의 PC는 인터넷에 접속할 수 있으며 이 공유기와 연결한 선을 빼면 더이상 인터넷에 접속할 수 없게 된다. 또 선이 연결이 되어있다고 하더라도 기본 게이트웨이 주소 설정이 빠지거나 잘못되면 운영체제가 무선 공유기 IP 주소를 검색할 수 없기 때문에 인터넷 공간에 접속할 수 없게 된다.

즉, 게이트웨이 혹은 라우터는 인터넷으로 접속하기 위한 일종의 관문의 역할을 한다고 이해하면 될 것이다. 라우터는 인터넷 공간에서 각기 다른 호스트 사이를 연결해주는 기능을 수행하는데 이러한 기능을 라우팅(routing)이라고 부른다.

그럼 이제 필자의 IP 주소와 기본 게이트웨이 주소를 비교해보자. 192.168.0이 공통된 것을 볼 수 있고 다른 점은 맨 뒤의 숫자가 다른 것을 볼 수 있다.

즉. PC와 게이트웨이 사이에 설정된 네트워크 ID가 동일하다고 볼 수 있다.

혹시 독자들이 핸드폰이 있다면 같은 공유기에 와이파이를 연결해서 IP 주소를 확인해 보면 여전히 네트워크 ID가 동일한 것을 볼 수 있을 것이다.

이처럼 동일한 네트워크 ID를 공유하는 장치들의 공간 LAN(Local Area Network)영역 이라고 한다.

다른 말로 만약 네트워크 ID가 다르다면 두 장치는 서로 상이한 LAN 영역에 존재한다고 생각할 수 있다. 매우 쉽게 예를 들자면 학교 와이파이 영역과 카페 와이파이 영역이 다른 것과 같은 개념이라고 이해하면 될 것이다.

즉, 네트워크 ID란 무수히 많은 LAN 영역에서 자기 LAN 영역을 구분하기 위한 식별자라고 생각하면 된다. 그렇다면 네트워크 ID와 쌍을 이루는 호스트 ID는 무엇일까.

해당 LAN 영역에는 무수한 호스트가 있다. 해당 LAN 영역에 속해있는 호스트를 구분하기 위한 식별자 호스트ID이다.

지금까지 LAN 영역에 관해 배운 것을 정리하면 위의 표와 같다.

여기서 한가지 더 알아볼 점은, 그럼 이제 우리는 다른 LAN 영역, 즉 다른 네트워크 ID끼리 서로 데이터를 주고 받기 위해 라우터가 연결하는 것을 라우팅이라고 하는 것을 배웠다.

그런데 같은 LAN 영역끼리 안에도 많은 호스트(예를 들면 노트북은 호스트 ID 1번, 핸드폰은 2번) 끼리의 연결하는 경우에는 무엇이라고 부를까. 다른 말로 출발지 IP 주소와 목적지 IP 주소의 네트워크 ID가 동일한 경우인데, 이런 경우에는 스위칭이라고 부른다. 스위칭에 대한 자세한 내용은 추후에 설명한다. 이번 1장에서는 LAN 영역에 대한 설명만 이해를 하자.

이번 1장에 관한 포스트에서 배운 내용을 정리하면 위와 같다. 부디 LAN의 영역이 무엇인지 그리고 호스트에 대한 개념이 잘 잡혔길 바란다.

다음 2장에 관한 포스팅은 언제하게 될 지는 모르겠지만 시간이 나는데로 계속해서 올릴 생각이니 부디 인내해 주기를 바란다. 마지막으로 POCS를 운영하는데 있어서 고생하는 CROWN에게 고생한다는 말과 그를 따라주는 POCS 동아리원 모두에게 응원의 메세지를 전하며 글을 마치겠다.