리눅스하면 네트워크다라고 할 정도로 리눅스는 네트워크 기능이 강력합니다. 요즘은 작은 시스템도 네트워크로 구성해 줄 것을 요구하는 경우가 많습니다. 실제로도 네트워크로 구성하면 편리한 점이 많습니다. 또한 작은 시스템이라고 하더라도 네트워크로 다른 시스템과 연결하고 같이 연동하게 한다면 하나의 거대한 시스템을 이룰 수 있습니다.

로컬 네트워크

로컬 네트워크 망에 내 컴퓨터를 연결할 수 있습니다.

네트워크 주소와 호스트 주소

IP는 각 컴퓨터를 구별할 수 있다는 주소라고 생각한다면 이해가 쉽습니다. 그에 비해 서브넷 마스크는 좀 생소하지요. 서브넷 마스크가 필요한 이유는 IP의 구성 때문입니다. IP는 단순히 숫자의 조합이지만 두 가지 정보를 가지고 있습니다. 바로 네트워크 주소와 호스트 주소입니다.

네트워크 주소는 내 컴퓨터가 연결될 로컬 네트워크의 대표 주소입니다. 그러므로 내 컴퓨터가 로컬 네트워크에 참가하기 위해서는 네트워크 주소를 맞추어 주어야 합니다. 그리고 다른 컴퓨터나 시스템이 사용하지 않는 호스트 주소를 할당 받아서 전체 IP 주소를 구해서 내 컴퓨터에 설정해 주어야 합니다.

네트워크 주소는 내 컴퓨터의 IP에 서브넷 마스크 값을 and 연산하여 구할 수 있습니다. 그러므로 내 컴퓨터에 IP를 설정하기 위해서는 IP와 서브넷 마스크 값을 조합하여 나온 값이 우리 회사 또는 학교의 네트워크 주소에 맞도록 설정해 주어야 겠습니다.

실제 예를 보겠습니다. 우리 회사는 네트워크 주소를 192.168.10을 사용한다고 하겠습니다. 그리고 제 컴퓨터 IP가 192.168.10.10 이고 서브넷 마스크가 255.255.255.0 로 설정했다면 옆의 그림에서와 같이 연산되어 192.168.10.0 이 되고 네트워크 주소값과 같기 때문에 네트워크에 연결할 수 있습니다.

네트워크 주소가 안 맞아도 통신이 되는데요!

다시 말씀드려서 로컬 네트워크에서 설정된 네트워크 주소를 반드시 준수하고, 나머지 숫자는 다른 컴퓨터나 시스템이 사용하지 않는 독립 번호를 구해서 IP 주소를 완성해야 합니다. 네트워크 주소가 틀리다면 연결이 안 되고 통신할 수 없습니다.

그러나 혹여 이렇게 생각하시는 분도 계실지 모르겠습니다. 제 컴퓨터 IP는 192.168.10.5인데 인터넷에 연결된 우리 회사 서버와 텔넷으로 연결할 수 있다. 우리 회사 서버 주소는 123.213.123.213 인데 어떻게 연결되는 것이냐? 라고 궁금해 하실 수 있습니다. 이것은 WAN 영역과의 연결이고 제가 말씀드리는 것은 로컬 네트워크입니다. 네트워크 주소가 다른데도 인터넷으로 연결된 WAN 영역의 다른 서버와 연결할 수 있는 이유는 DNS 서버라든지 게이트웨이, DSU, 라우터 등등의 매우 복잡하고 다양한 프로토콜과 기기의 도움으로 가능합니다.

그러나 이번 시간에 말씀드리는 것은 로컬 네트워크로 WAN영역이 아닌 그야말로 내부 통신 영역이 되겠습니다. 이렇게 로컬 네트워크는 통신에 연결하려는 시스템이 모두 같은 네트워크 주소를 가지고 있어야 로컬 네트워크에 연결할 수 있습니다.

네트워크 ID, 네트워크 대역

학습하는 중에 웹의 정보를 읽다 보면 네트워크 주소를 네트워크 ID 또는 네트워크 대역이라는 말을 사용하시는 경우가 많더군요. 해서 네트워크 ID를 맞추어라, 또는 네트워크 대역을 맞추어야 한다라는 말씀은, 로컬 네트워크에서 IP의 네트워크 주소값을 맞추어야 한다라고 이해하시면 되겠습니다.

왜 192.168.0.xxx ?

IP가 네트워크 주소와 호스트 IP로 구성된다는 것은 알겠습니다. 그런데 로컬 네트워크를 사용하는 대부분의 IP를 보면 192.168.0.5처럼 192.로 시작합니다. 왜 192일까요? 192로 시작하는 이유는 네트워크 주소가 C 클래스에 속하기 때문입니다.

IP 주소는 네트워크 주소와 호스트 주소로 구성되어 있다고 앞서 말씀드렸습니다만 네트워크에 참가하는 호스트의 개수에 따라서 아래와 같이 A부터 E까지 5가지의 클래스로 나눌 수 있습니다. 소개는 D와 E도 했습니다만 D와 E는 특수한 경우이고 대부분 C 클래스를 사용합니다. 그러나 규모가 있는 곳은 B 클래스도 사용하지요.

C 클래스를 보시면 첫번째 숫자의 상위 비트값이 110입니다. 나머지 비트값을 모두 0으로 하면 0xc0 으로 192가 됩니다. 물론 클래스 C의 선두 비트를 만족하고 "1101 1111" 로 해서 0xdf, 223.으로 시작하셔도 좋습니다. 네트워크 주소는 로컬 네트워크를 처음 구상할 때 어떤 네트워크 주소를 사용할지 결정하고 내부에서 사용하면 되기 때문이죠. 그러나 일반적으로 사용하는 숫자를 사용하시는 것이 좋다고 생각합니다.

두 번째 숫자 168도 역시 반드시는 아니지만 일반적으로 사용하는 번호로 알고 있습니다. 다음 3번째 번호도 역시 일반적으로 0 을 사용합니다. 대부분의 공유기를 구매하면 192.168.0.xxx로 해서 dhcp 서버가 구성되어 있습니다. 그러나 다른 네트워크와 연결되는 것을 피하기 위해 '10'이나 '20'과 같이 '0'이 아닌 다른 숫자를 사용하시는 경우도 있습니다.

마지막은 클래스 C에서는 호스트 주소이기 때문에 내 컴퓨터를 구별할 수 있는, 다른 컴퓨터나 시스템에 중복되지 않는 번호가 되겠습니다.

192.168.0.xxx로 설정하면 인터넷이 안 됩니다.

제 강좌를 읽어 보신 분 중에 제 글에 따라 IP를 변경하면 인터넷이 안 된다는 질문을 주시는 경우가 있습니다. 이는 인터넷 공유기나 허브를 사용하지 않으시고 랜카드 하나에 KT나 하나로와 같은 인터넷 서비스를 연결하신 경우입니다. 그리고 학습을 위해 VmWare를 설치하고 가상 PC에 리눅스를 설치했는데, 이 가상 PC도 엄연히 컴퓨터 이므로 이 컴퓨터와 내 컴퓨터를 연결하여 로컬 네트워크를 구성하려 한다면 역시 네트워크 주소를 서로 맞추어 주어야 합니다.

그래서 강좌의 내용에 따라 내 컴퓨터의 IP를 바꾸었는데, VmWare의 가상 PC와 연결이 안 될 뿐더러 인터넷도 안 된다라는 것이죠. 이것은 당연한 것으로 우선 인터넷을 사용하기 위해서 직접 내 컴퓨터가 KT나 하나로 서버와 연결했다면 내 컴퓨터의 IP를 변경하시면 안 됩니다. KT나 하나로를 통해 인터넷과 연결하기 위해서는 KT나 하나로에서 제공하는 IP를 이용해야 하기 때문으로, 이 IP는 인터넷에 연결될 때 부여 받기 때문에 변경될 수 있습니다. 이렇게 변경될 수 있기 때문에 유동IP라고 하지요.

그런데 VmWare의 가상 PC와 연결하기 위해 내 컴퓨터의 로컬 네트워크 IP를 임으로 바꾸어 버리면 KT나 하나로의 서버에 연결할 수 없기 때문에 인터넷에 연결할 수 없습니다.

그러나 VmWare는 정말 잘 만들어진 소프트웨어로 가상 PC와 연결하기 위한 가상 랜카드를 제공하고 있습니다. VmWare를 설치 후에 "내 네트워크 환경" 속성을 보시면 마치 LAN 카드가 설치된 것처럼 "VMware Network Adapter VMnet1"과 "VMware Network Adapter VMnet8"이 추가된 것을 보실 수 있습니다.

이렇게 구성되기 때문에, KT나 하나라와 연결된 랜카드. 즉, 컴퓨터에 설치된 랜카드는 KT나 하나로에 연결하는데 사용하고, 가상으로 설치된 LAN 카드를 이용하여 가상 PC와 연결하는데 사용하라는 얘기가 되겠습니다.

이 가상 LAN카드를 이용하여 공유기 없이 VmWare의 가상 PC와 네트워크를 구성하는 글을 올린 적이 있습니다.

랜카드 2개를 이용

집에서 지금까지 허브나 인터넷 공유기를 사용하지 않고 KT나 하나로와 같은 인터넷 서비스와 연결해서 사용하시던 분 중에 임베디드 시스템을 학습하시다 보면 VmWare만으로는 제대로 학습하시기는 쉽지 않습니다. 결국 임베디드 보드를 구매해서 학습하시게 되는데, 공유기를 구매하지 않으시고 회사에서나 아니면 가지고 있던 랜카드를 하나더 설치해서 임베디드 보드와 연결하여 학습하시는 경우가 있습니다.

역시 이럴 때에도 두 번째로 설치하고 임베디드 보드와 연결된 LAN 카드가 로컬 네트워크에 연결된 LAN카드이므로, 이 랜 카드의 IP와 임베디드 보드의 IP를 로컬 네트워크 주소를 맞추어서 설정해 주어야 합니다.

허브나 인터넷 공유기 사용을 권합니다.

물론 VmWare만 사용하거나 이렇게 랜카드를 추가하는 방법으로 학습하실 수 있습니다만 저는 허브나 인터넷 공유기 사용을 권합니다. 개인적으로 집에서 혼자 학습하시거나, 기껏 PC한대와 임베디드 보드 하나만 가지고 학습하신다고 하더라도 네트워크의 기본적인 구성을 갖추어 놓고 학습하시는 것이 좋습니다.

일단 네트워크를 구성하기가 편합니다. 매우 저렴한 인터넷 공유기를 이용하시면 임베디드 보드와 네트워크 주소를 맞추기 위해 VmWare의 가상 랜 카드 어댑터인 VMware Network Adapter VMnet8의 IP 주소를 설정하고 임베디드 보드와 함께 네트워크 주소를 맞추는 등의 작업이 필요 없습니다.

그리고 무엇보다도 실무에 가깝게 설치해서 학습하시는 것이 여러모로 좋지 않을까 생각됩니다.