http://networker.jinbo.net/zine/view.php?board=networker_4&id=1756 에서 참조

얼마 전에 시간을 가장 가치 없게 사용하는 방법 중 상위 3위안에 랭크될 것이 분명한 동원예비군 훈련을 갔다 왔습니다. 제가 갔던 부대는 의정부에 있는 통신대대인데, 여기서 하는 일은 말 그대로 부대 사이의 통신을 연결하고 관리하는 일입니다. 통신대는 크게 전송조, 교환조, 유무선조로 나뉘어 집니다. 저는 이 중 교환조에 속하는데, 교환조는 타 부대의 교환조와의 네트워크를 구성하여 이를 제어하고, 내부의 전화를 연결해 번호를 부여하는 등의 역할을 수행합니다. 옛날 전화에 있었다는 교환수와 비슷한 역할이라 할 수 있긴 하지만, 전화번호를 부여하고 음성 통신뿐만 아니라 데이터 통신까지 중계한다는 점에서 보다 하는 일의 범위가 넓다고 할 수 있겠죠. 여하튼 하려는 얘기는 이게 아니고-_-;;;

image

컴퓨터 사이의 네트워크도 전화와 비슷한 중계 구조를 가지고 있습니다. 집마다 있는 전화가 전화번호로서 고유하게 식별할 수 있듯이, 네트워크에 연결된 컴퓨터(정확히는 모뎀 또는 랜카드 등의 네트워크 장비)는 고유한 식별 번호를 가집니다. 예를 들면 공유 폴더로 접근할 때 사용하는 윈도의 인트라넷에서는 네트워크 아이디라는 것을 지정하도록 되어 있습니다.(“시스템 등록 정보"의 "네트워크 식별” 탭에서 지정 가능합니다.) 그리고 일반적인 인터넷 연결에 사용하는 TCP/IP 네트워크에서는 바로 IP 주소라는 것을 발급하도록 되어 있죠.

TCP/IP는 인터넷의 가장 기본적인 프로토콜입니다. 프로토콜은 (전에도 한 번 설명했지만) 통신을 위해 정의된 규약입니다. TCP(Transmission Control Protocol)라는 프로토콜과 IP(Internet Protocol)라는 프로토콜이 결합된 것이 TCP/IP로서, 웹(WWW)에 사용되는 HTTP, 원격 컴퓨터 제어를 위한 텔넷(Telnet), 파일 전송을 위한 FTP, 메일에 사용되는 SMTP등이 TCP/IP를 사용하는 프로토콜들입니다. 물론 인터넷 통신을 하기 위해서는 TCP/IP 프로그램이 반드시 필요합니다. 당연히 윈도나 리눅스 등의 거의 모든 OS에는 TCP/IP를 사용하기 위한 프로그램이 기본적으로 깔려 있죠. 보통 IP 주소를 잡기 위해 들어가는 설정 프로그램도 이런 제어 프로그램의 일부입니다.

IP 주소는 현재 IPv4라는 방식이 사용되고 있습니다. “211.255.23.35” 같이 0~255 사이의 수를 4개 붙여서 사용하는 것이 IPv4의 방식입니다. IP 주소는 앞에서 언급했듯이 전화번호같이 네트워크 상에서 특정 컴퓨터(호스트host)를 인식 가능하게 하는 고유한 번호입니다. 따라서 전 세계의 모든 컴퓨터에 IP 주소를 붙여주어야 한다고 하면, 이론상 각 자리마다 256개의 숫자가 들어갈 수 있으므로 256x256x256x256=4,294,967,296, 즉 대략 43억 대의 컴퓨터가 붙을 수 있게 되는 셈이죠.

하지만 복잡한 IP 주소 부여 법칙에 의해 실제로는 이보다 적은 수의 IP 주소만이 사용할 수 있으며, 특히 각 국가마다 할당된 IP 주소의 영역이 제한되어 있기 때문에 IP 주소는 지금도 매우 부족한 상황에 놓여 있죠. 그래서 방화벽으로 구성된 폐쇄적인 네트워크에서는 보안상의 이유와 더불어 사용 가능한 IP 주소를 늘이기 위해 내부에서만 사용할 수 있는 IP를 따로 정의해 쓰기도 하고, 하나의 IP를 여러 대의 컴퓨터가 공유하기도 합니다. 가장 흔한 예가 인터넷 공유기를 사용해 2대 이상의 컴퓨터를 붙여 쓰는 경우인데요, 이 경우에는 공유기가 라우터의 역할을 수행하여 별도의 IP를 각 컴퓨터에 붙여줍니다.

image

라우터는 독립된 네트워크의 시작점이 되는 장비로서 보통 게이트웨이의 역할을 수행합니다. IP주소를 직접 잡아 보신 분들은 아시겠지만 IP주소를 설정하기 위해 IP주소는 물론이고 게이트웨이 주소와 DNS 주소를 넣어줘야 하는데, 그 게이트웨이 주소가 일반적으로 이 라우터의 주소입니다. 게이트웨이와 DNS에 대한 설명은 조금 길어지므로 다음에 다루도록 하겠습니다.

만약 자신의 컴퓨터가 네트워크에 등록되어 있는데 IP 주소를 알아야 하는 경우가 있습니다. 물론 컴퓨터의 설정 정보를 뒤져보면 어딘가에 IP 주소를 정의해 놓은 곳이 있겠죠. 그러나 그 곳을 찾기 귀찮거나 IP를 자동 설정으로 해 놓으신 분들은 TCP/IP 프로그램을 이용하여 쉽게 IP 주소를 알아낼 수 있습니다. 윈도 2000이나 윈도 XP 이상을 사용하시는 분들은 윈도의 커맨드 창에서 “ipconfig"를 입력하시면 관련 정보가 쉽게 나타납니다.(커맨드 창을 띄우시려면 윈도의 시작 ->실행에서 "cmd"를 입력하시면 되죠.) 리눅스 등 유닉스 계열의 OS에서는 일반적으로 /sbin/ifconfig를 실행하시면 관련 정보가 나옵니다.

image

위에 보면 제 컴퓨터의 IP 주소는 10.0.1.3으로 나오는데요, 일반적인 IP 주소는 이런 식으로 발급되지 않습니다. 10.으로 시작하는 IP는 보통 내부에서만 사용 가능한 IP 주소인데요, 저희 집에서 공유기를 사용해 여러 컴퓨터를 연결해 사용하기 때문에 앞에서 얘기한 대로 제 공유기가 임의로 발급해 준 가짜 주소를 얻은 셈이죠. 제 컴퓨터의 진짜 IP 주소는 공유기가 가지고 있으며, 제 공유기에 연결된 컴퓨터는 외부로 접속할 경우 공유기가 갖고 있는 그 IP 주소를 모두 사용하게 됩니다.

IP 주소도 하나의 자원이다 보니 사용하는 사람이 많아질수록 점차 부족 현상이 심각해질 것임이 분명합니다. 만약 지구상의 60억 인구가 한 대씩 네트워크에 연결된 컴퓨터만 갖고 있어도 일찌감치 IP 주소는 동이 날 터이고, 특정한 주인이 없는 컴퓨터들(예컨대 서버들)도 수없이 많이 있을 테니까요. 그래서 IP 주소의 범위를 늘이기 위해 IPv6라는 방식을 도입하려 하고 있습니다. IPv6는 이론적으로 기존의 IPv4보다 65536배 많은 주소를 사용할 수 있기 때문에, 아마도 IP 주소 부족 현상은 해소 가능하다고 할 수 있겠죠. 하지만 집을 지어도지어도 내 집을 가지기가 어려운 것처럼, 왠지 IP 주소 부족 현상이 쉽게 해결될지 의심이 되는 것은…나쁜 성격 탓일까요? ;;;

http://networker.jinbo.net/zine/view.php?board=networker_4&id=1756 에서 참조

얼마 전에 시간을 가장 가치 없게 사용하는 방법 중 상위 3위안에 랭크될 것이 분명한 동원예비군 훈련을 갔다 왔습니다. 제가 갔던 부대는 의정부에 있는 통신대대인데, 여기서 하는 일은 말 그대로 부대 사이의 통신을 연결하고 관리하는 일입니다. 통신대는 크게 전송조, 교환조, 유무선조로 나뉘어 집니다. 저는 이 중 교환조에 속하는데, 교환조는 타 부대의 교환조와의 네트워크를 구성하여 이를 제어하고, 내부의 전화를 연결해 번호를 부여하는 등의 역할을 수행합니다. 옛날 전화에 있었다는 교환수와 비슷한 역할이라 할 수 있긴 하지만, 전화번호를 부여하고 음성 통신뿐만 아니라 데이터 통신까지 중계한다는 점에서 보다 하는 일의 범위가 넓다고 할 수 있겠죠. 여하튼 하려는 얘기는 이게 아니고-_-;;;

image

컴퓨터 사이의 네트워크도 전화와 비슷한 중계 구조를 가지고 있습니다. 집마다 있는 전화가 전화번호로서 고유하게 식별할 수 있듯이, 네트워크에 연결된 컴퓨터(정확히는 모뎀 또는 랜카드 등의 네트워크 장비)는 고유한 식별 번호를 가집니다. 예를 들면 공유 폴더로 접근할 때 사용하는 윈도의 인트라넷에서는 네트워크 아이디라는 것을 지정하도록 되어 있습니다.(“시스템 등록 정보”의 “네트워크 식별” 탭에서 지정 가능합니다.) 그리고 일반적인 인터넷 연결에 사용하는 TCP/IP 네트워크에서는 바로 IP 주소라는 것을 발급하도록 되어 있죠.

TCP/IP는 인터넷의 가장 기본적인 프로토콜입니다. 프로토콜은 (전에도 한 번 설명했지만) 통신을 위해 정의된 규약입니다. TCP(Transmission Control Protocol)라는 프로토콜과 IP(Internet Protocol)라는 프로토콜이 결합된 것이 TCP/IP로서, 웹(WWW)에 사용되는 HTTP, 원격 컴퓨터 제어를 위한 텔넷(Telnet), 파일 전송을 위한 FTP, 메일에 사용되는 SMTP등이 TCP/IP를 사용하는 프로토콜들입니다. 물론 인터넷 통신을 하기 위해서는 TCP/IP 프로그램이 반드시 필요합니다. 당연히 윈도나 리눅스 등의 거의 모든 OS에는 TCP/IP를 사용하기 위한 프로그램이 기본적으로 깔려 있죠. 보통 IP 주소를 잡기 위해 들어가는 설정 프로그램도 이런 제어 프로그램의 일부입니다.

IP 주소는 현재 IPv4라는 방식이 사용되고 있습니다. “211.255.23.35” 같이 0~255 사이의 수를 4개 붙여서 사용하는 것이 IPv4의 방식입니다. IP 주소는 앞에서 언급했듯이 전화번호같이 네트워크 상에서 특정 컴퓨터(호스트host)를 인식 가능하게 하는 고유한 번호입니다. 따라서 전 세계의 모든 컴퓨터에 IP 주소를 붙여주어야 한다고 하면, 이론상 각 자리마다 256개의 숫자가 들어갈 수 있으므로 256x256x256x256=4,294,967,296, 즉 대략 43억 대의 컴퓨터가 붙을 수 있게 되는 셈이죠.

하지만 복잡한 IP 주소 부여 법칙에 의해 실제로는 이보다 적은 수의 IP 주소만이 사용할 수 있으며, 특히 각 국가마다 할당된 IP 주소의 영역이 제한되어 있기 때문에 IP 주소는 지금도 매우 부족한 상황에 놓여 있죠. 그래서 방화벽으로 구성된 폐쇄적인 네트워크에서는 보안상의 이유와 더불어 사용 가능한 IP 주소를 늘이기 위해 내부에서만 사용할 수 있는 IP를 따로 정의해 쓰기도 하고, 하나의 IP를 여러 대의 컴퓨터가 공유하기도 합니다. 가장 흔한 예가 인터넷 공유기를 사용해 2대 이상의 컴퓨터를 붙여 쓰는 경우인데요, 이 경우에는 공유기가 라우터의 역할을 수행하여 별도의 IP를 각 컴퓨터에 붙여줍니다.

image

라우터는 독립된 네트워크의 시작점이 되는 장비로서 보통 게이트웨이의 역할을 수행합니다. IP주소를 직접 잡아 보신 분들은 아시겠지만 IP주소를 설정하기 위해 IP주소는 물론이고 게이트웨이 주소와 DNS 주소를 넣어줘야 하는데, 그 게이트웨이 주소가 일반적으로 이 라우터의 주소입니다. 게이트웨이와 DNS에 대한 설명은 조금 길어지므로 다음에 다루도록 하겠습니다.

만약 자신의 컴퓨터가 네트워크에 등록되어 있는데 IP 주소를 알아야 하는 경우가 있습니다. 물론 컴퓨터의 설정 정보를 뒤져보면 어딘가에 IP 주소를 정의해 놓은 곳이 있겠죠. 그러나 그 곳을 찾기 귀찮거나 IP를 자동 설정으로 해 놓으신 분들은 TCP/IP 프로그램을 이용하여 쉽게 IP 주소를 알아낼 수 있습니다. 윈도 2000이나 윈도 XP 이상을 사용하시는 분들은 윈도의 커맨드 창에서 “ipconfig”를 입력하시면 관련 정보가 쉽게 나타납니다.(커맨드 창을 띄우시려면 윈도의 시작 ->실행에서 “cmd”를 입력하시면 되죠.) 리눅스 등 유닉스 계열의 OS에서는 일반적으로 /sbin/ifconfig를 실행하시면 관련 정보가 나옵니다.

image

위에 보면 제 컴퓨터의 IP 주소는 10.0.1.3으로 나오는데요, 일반적인 IP 주소는 이런 식으로 발급되지 않습니다. 10.으로 시작하는 IP는 보통 내부에서만 사용 가능한 IP 주소인데요, 저희 집에서 공유기를 사용해 여러 컴퓨터를 연결해 사용하기 때문에 앞에서 얘기한 대로 제 공유기가 임의로 발급해 준 가짜 주소를 얻은 셈이죠. 제 컴퓨터의 진짜 IP 주소는 공유기가 가지고 있으며, 제 공유기에 연결된 컴퓨터는 외부로 접속할 경우 공유기가 갖고 있는 그 IP 주소를 모두 사용하게 됩니다.

IP 주소도 하나의 자원이다 보니 사용하는 사람이 많아질수록 점차 부족 현상이 심각해질 것임이 분명합니다. 만약 지구상의 60억 인구가 한 대씩 네트워크에 연결된 컴퓨터만 갖고 있어도 일찌감치 IP 주소는 동이 날 터이고, 특정한 주인이 없는 컴퓨터들(예컨대 서버들)도 수없이 많이 있을 테니까요. 그래서 IP 주소의 범위를 늘이기 위해 IPv6라는 방식을 도입하려 하고 있습니다. IPv6는 이론적으로 기존의 IPv4보다 65536배 많은 주소를 사용할 수 있기 때문에, 아마도 IP 주소 부족 현상은 해소 가능하다고 할 수 있겠죠. 하지만 집을 지어도지어도 내 집을 가지기가 어려운 것처럼, 왠지 IP 주소 부족 현상이 쉽게 해결될지 의심이 되는 것은…나쁜 성격 탓일까요? ;;;

http://community.365managed.com/?document_srl=24862 에서 참조

서브넷 마스크란?

제한된 아이피 주소를 보다 효율적으로 사용하기 위해서 사용하는 값입니다.

조금 더 말하면 하나의 구역(범위)의 아이피 대역을 분할하여 사용하기 위한 값이라고 할 수 있겠네요.

가장 간단한 C클래스를 기준으로 설명하도록 하겠습니다.

192.168.10.0 이라는 범위의 IP가 있습니다.

이주소를 네트워크 ID라고 부르는데요.

이 네트워크 아이디의 범위는 192.168.10.0 ~ 192.168.10.255 까지 입니다.

이 아이피 대역을 A라는 회사와 B라는 회사가 각 100개 정도로 나누어 쓰고 싶습니다.

이럴 경우 0~255까지의 범위는 총 256개의 주소를 가지게 되므로,

두개로 나누면 충분히 두 회사가 나누어 쓸수가 있죠.

하지만 단순히 A회사는 0~127까지 쓰고, B회사는 128~255 주소를 쓴다고 해서 문제가 해결되는것은 아닙니다.

물론 사용이 아주 불가능한 것은 아니지만, 이렇게 되면 A회사나 B회사는 주소외에는 구분되는것이 없기 때문에

A회사의 10번 주소를 쓰는 사람이 보낸 정보가 B라는 회사의 200번 주소를 쓰는 사람이 불법적으로 보는것 등이

아주 손쉬워 지기 때문에 문제가 발생 할 수 있죠.

따라서 정보가 방송되는(뿌리는 것을) 나누어 줄 필요성이 있는데 이를 위해서 서브넷값을 할당하여 나누는 것 입니다.

그러면 어떻게 나누면 좋을까요.

일단 IP 정보는 4개의 구간이 있고 각 구간마다 2진수 8자리가 들어가게 됩니다.

255.255.255.0 의 경우는 2진수로 바꾸면 11111111.11111111.11111111.00000000 이 됩니다.

여기서 만약 2개의 구역으로 나누기로 했다면, 00000000 구역에서 1개의 제일 앞쪽의 2진수 하나를

1로 바꿔주면 됩니다. 그러면 11111111.11111111.11111111.10000000 이라는 값이 되겠죠.

이것을 10진수로 다시 바꾸면 255.255.255.128 이 됩니다.

이 서브넷 값을 이용해서 192.168.10.0 의 주소대역을 나누게 되면,

192.168.10.0 ~ 192.168.10.127 까지의 주소대역과

192.168.10.128 ~ 192.168.10.255 까지의 주소대역으로 나뉘게 되고,

이 아이피 주소를 랜 카드에 설정해 줄때, 서브넷 마스크 값을 255.255.255.128로 적어주게 되면

정보의 뿌려지는 범위가 두군데로 나누어 지게 됩니다.

하지만 나눠진 범위의 맨 처음 주소는 해당 주소의 네트워크 ID라 사용이 불가능하고, 맨 끝 주소는 브로드캐스트(방송) 주소가

되기 때문에 사용이 불가능 하다는 점을 알아두셔야 합니다.

C클래스의 경우는 가질 수 있는 주소의 범위가 상당히 작기 때문에 쉽게 서브넷이 가능하지만

A클래스나 B클래스의 경우는 범위가 꽤 넓기때문에 수작업으로 계산해서 할당 할 수도 있지만,

서브넷 계산기를 많이 이용합니다.

하지만 전문적으로 네트웍을 다루시는 분이라면 이정도는 알고 계셔야 할것 같네요.

추가적으로 특정 IP값 (192.168.10.207)이 어느 네트워크에 소속되는지 알고 싶다면,

특정 IP값을 2진수로 변환한 값과, 서브넷값을 2진수로 변환한 값을 서로 AND연산하신 후

연산결과를 다시 10진수로 변환하시면 특정 IP가 소속된 네트워크 주소를 얻으 실 수 있습니다.

또한 서브네트워크의 갯수는 서브넷 주소를 2진수로 바꾼 값에서 0에서 1로 바꾼 2진수를 n이라고 보면 2(n – 2)가 되고

각 서브네트워크가 가지게 되는 호스트주소의 갯수는 서브넷 주소를 2진수로 바꾼값에서 1로 바꾸고 남은 0의 갯수를 n이라고 보면

2(n – 2)가 된다는 점도 알아 두세요.

더 궁금한게 있다면 리플로 질문해 주세요

http://community.365managed.com/?document_srl=24862 에서 참조

서브넷 마스크란?

제한된 아이피 주소를 보다 효율적으로 사용하기 위해서 사용하는 값입니다.

조금 더 말하면 하나의 구역(범위)의 아이피 대역을 분할하여 사용하기 위한 값이라고 할 수 있겠네요.

가장 간단한 C클래스를 기준으로 설명하도록 하겠습니다.

192.168.10.0 이라는 범위의 IP가 있습니다.

이주소를 네트워크 ID라고 부르는데요.

이 네트워크 아이디의 범위는 192.168.10.0 ~ 192.168.10.255 까지 입니다.

이 아이피 대역을 A라는 회사와 B라는 회사가 각 100개 정도로 나누어 쓰고 싶습니다.

이럴 경우 0~255까지의 범위는 총 256개의 주소를 가지게 되므로,

두개로 나누면 충분히 두 회사가 나누어 쓸수가 있죠.

하지만 단순히 A회사는 0~127까지 쓰고, B회사는 128~255 주소를 쓴다고 해서 문제가 해결되는것은 아닙니다.

물론 사용이 아주 불가능한 것은 아니지만, 이렇게 되면 A회사나 B회사는 주소외에는 구분되는것이 없기 때문에

A회사의 10번 주소를 쓰는 사람이 보낸 정보가 B라는 회사의 200번 주소를 쓰는 사람이 불법적으로 보는것 등이

아주 손쉬워 지기 때문에 문제가 발생 할 수 있죠.

따라서 정보가 방송되는(뿌리는 것을) 나누어 줄 필요성이 있는데 이를 위해서 서브넷값을 할당하여 나누는 것 입니다.

그러면 어떻게 나누면 좋을까요.

일단 IP 정보는 4개의 구간이 있고 각 구간마다 2진수 8자리가 들어가게 됩니다.

255.255.255.0 의 경우는 2진수로 바꾸면 11111111.11111111.11111111.00000000 이 됩니다.

여기서 만약 2개의 구역으로 나누기로 했다면, 00000000 구역에서 1개의 제일 앞쪽의 2진수 하나를

1로 바꿔주면 됩니다. 그러면 11111111.11111111.11111111.10000000 이라는 값이 되겠죠.

이것을 10진수로 다시 바꾸면 255.255.255.128 이 됩니다.

이 서브넷 값을 이용해서 192.168.10.0 의 주소대역을 나누게 되면,

192.168.10.0 ~ 192.168.10.127 까지의 주소대역과

192.168.10.128 ~ 192.168.10.255 까지의 주소대역으로 나뉘게 되고,

이 아이피 주소를 랜 카드에 설정해 줄때, 서브넷 마스크 값을 255.255.255.128로 적어주게 되면

정보의 뿌려지는 범위가 두군데로 나누어 지게 됩니다.

하지만 나눠진 범위의 맨 처음 주소는 해당 주소의 네트워크 ID라 사용이 불가능하고, 맨 끝 주소는 브로드캐스트(방송) 주소가

되기 때문에 사용이 불가능 하다는 점을 알아두셔야 합니다.

C클래스의 경우는 가질 수 있는 주소의 범위가 상당히 작기 때문에 쉽게 서브넷이 가능하지만

A클래스나 B클래스의 경우는 범위가 꽤 넓기때문에 수작업으로 계산해서 할당 할 수도 있지만,

서브넷 계산기를 많이 이용합니다.

하지만 전문적으로 네트웍을 다루시는 분이라면 이정도는 알고 계셔야 할것 같네요.

추가적으로 특정 IP값 (192.168.10.207)이 어느 네트워크에 소속되는지 알고 싶다면,

특정 IP값을 2진수로 변환한 값과, 서브넷값을 2진수로 변환한 값을 서로 AND연산하신 후

연산결과를 다시 10진수로 변환하시면 특정 IP가 소속된 네트워크 주소를 얻으 실 수 있습니다.

또한 서브네트워크의 갯수는 서브넷 주소를 2진수로 바꾼 값에서 0에서 1로 바꾼 2진수를 n이라고 보면 2(n – 2)가 되고

각 서브네트워크가 가지게 되는 호스트주소의 갯수는 서브넷 주소를 2진수로 바꾼값에서 1로 바꾸고 남은 0의 갯수를 n이라고 보면

2(n – 2)가 된다는 점도 알아 두세요.

더 궁금한게 있다면 리플로 질문해 주세요