Sep 12, 2007

이더넷의 원리 맛보기 2

- 네트워크 구성의 기본 : 케이블



최근엔 데스크탑 PC에서 기가비트(Gigabit) 이더넷이라고 하여 무려 1000Mbps를 지원하는 이더넷 컨트롤러를 탑재한 메인보드가 종종 등장하지만, 현재 가장 많이 사용되는 이더넷 컨트롤러의 전송속도는 10/100Mbps입니다. 보통 랜카드를 구입할 때 "텐백(10/100) 지원하지요? " 라고 물어보기도 하자나요.




RJ-45 커넥터 모습


이런 전송속도외도 이더넷의 종류에 따라 다양한 케이블 규격이 존재합니다. 현재 10/100Mbps(혹은 기가비트이더넷에) 속도를 지원하고, 주변에서 가장 많이 사용되는 케이블은 UTP(혹은 STP) 케이블이 대표적입니다. 양쪽끝은 RJ-45 커넥터를 사용하며, 핀의 순서에 따라서 다이렉트 혹은 크로스 케이블을 구성해 사용하게 됩니다.

UTP는 쉴드 처리되지 않은 꼬인선(UTP - Unshield Twisted Pair)이란 의미로, 기존 케이블들보다 얇고 가벼울 뿐 아니라 확장이 용이해 현재 가장 많이 애용되고 있습니다.
최근 몇몇 네트웍 장비들의 경우 다이렉트 인지 크로스 케이블인지에 관계없이 자동으로 인식하는 것들도 있습니다.


케이블을 나누는 또다른 방법으로는 카테고리(Category)라는 것이 있습니다. 현재 일반적인 10/100Mbps 시스템에서는 카테고리5 케이블을 사용하는데, 이러한 등급은 EIA/TIA-586 표준에 명시되어 있습니다. 우리가 사용하는 10BaseT 이더넷이 주로 카테고리5 를 지원하는 UTP 케이블입니다.


10/100Mbp에 애용되는 CATEGORY 5 지원 UTP 케이블 상자


UTP 케이블을 통한 이더넷은 약 100m의 전송거리를 지원하며, 전화기 단자보다 조금 커보이는 RJ-45 커넥터를 사용하게 됩니다. 다이렉트 케이블에서 송/수신핀의 순서를 바꾸게 되면 크로스케이블로 사용할 수 있으며 실제 송수신에 사용되는 핀은 8개중 4개만 사용하고 있습니다.



UTP 케이블 자작을 위한 도구



UTP 케이블이 사용된 예


- 허브






A에서 D로 데이터를 전송하고자 할때


허브는 단순히 중계를 해주기 때문에 신호를 각 포트로 연결된 컴퓨터들에게 모두 전달하게 됩니다. 위와같이 허브로 이루어진 네트워크를 예를 들면, A컴퓨터에 있는 사용자가 D컴퓨터에게 데이터를 전달한다고 가정해 보면, A로부터 출발된 데이터(패킷)은 허브를 통해 각 호스트들로 전파가 이루어지게 됩니다. 물론 A,B,C는 목적지 주소를 보고 "내께 아니네 !" 하며 버리지만, D컴퓨터는 목적지의 주소를 확인하고, "아! 내꺼군!" 하며 전송을 받게됩니다. (유니캐스트로 전달되었겠죠?)


앞서 이더넷의 특징이 CSMA/CD를 사용함을 알아봤습니다. 이 때문에 되도록 서로 충돌을 피하기위해 다른곳에서 회선을 사용중인지를 살피게되는 예비동작이 필요합니다. 그러나 이더넷에서 충돌은 항상 뒤따라다니는 특징을 가지고 있으며, 위와같이 허브를 통해 네트워크를 확장하게되면 각신호가 전파되는 범위가 커져, 충돌이 일어날 확률이 높아지게 됩니다. 즉 콜리전 도메인(Collision Domain)이 커지게 됩니다.


또한 A에서 D로 데이터를 보내는 그 순간에는 B,C의 컴퓨터들은 회선이 사용중이기 때문에 자신의 차례를 위해 랜덤한 시간동안 기다린후 회선의 사용유무를 검사하게 됩니다. 즉 순간적으로 회선의 사용이 제한되게 됩니다. 이 때문에 허브로 이루어진 네트워크에서는 호스트들이 회선의 대역폭을 나누어 사용하게 됩니다.


- 브리지/스위치






A->E , B->C 로 데이터를 전송


연결해야할 호스트들이 많아지면, 추가적으로 허브를 연결하게되고 이 때문에 콜리전 도메인이 증가하게 됩니다. 이를 효과적으로 해결할 수 있도록 기존의 허브를 개선시킨 네트웍 장비가 바로 브리지(Bridge)입니다. 최근에는 브리지보다 좀더 우수한 기능에 가격까지 저렴해진 스위치(Switch)를 많이 사용하고 있습니다. 일단 스위치란 장비는 브리지의 특징에 좀더 우수한 성능을 가졌다고 생각해주시길...


앞서 허브로 이루어진 네트워크에서는 CSMA/CD의 특성으로 인해 데이터를 전송하는 호스트를 제외하고 나머지 호스트들은 모두 하늘만 바라보아야 하는 불공평한 동작방식을 가지고 있었습니다. 그러나 위의 그림처럼 A는 E로 , B->C로 데이터를 보낸다고 가정해 보면, 브리지(혹은 스위치)를 사용할 경우 전송 데이터(패킷)의 목적지를 중간에 있는 브리지가 검사를 하게 됩니다. 검사결과 목적지가 E라는 것을 판단한 브리지는 B,C,D로 해당 패킷을 뿌리지 않고 목적지인 E로만 전달하게 됩니다. 이러한 기능 때문에 A가 E로 데이터를 전송하는 순간에, B는 회선을 검사한 결과 아무런 신호가 없는 것을 감지한후 C로 데이터를 전송하게 됩니다. 결국 회선의 대역폭을 분할하지 않고도 동시에 전송이 이루어지게 됩니다.


 - IP 공유기 = 허브 + 스위치 + DHCP 서버 + 방화벽 ?


자 그럼 최근 많은 유저들이 사용하고 있는 인터넷 공유기(일명 IP공유기)를 통해 글을 정리해 보고, 실제 적용해 보겠습니다. 테스트에 사용한 IP공유기는 애니게이트 GW-300A 모델로 고속의 VDSL을 지원하며, 기본적으로 4포트 스위치역할을 할 수 있습니다. 대부분의 IP공유기들은 앞서 설명한 허브(Hub)뿐 아니라 스위치(Switch)기능을 모두 가지고 있기도 합니다.



4x LAN, 1x WAN 포트를 가진 애니게이트 GW-300A


일반적인 IP공유기의 역할은 ISP업체(한국통신, 하나로등)로부터 유동 혹은 고정아이피를 하나 얻어오게 됩니다. 그후 랜포트에 연결된 해당 컴퓨터들에게 사설 IP(Private IP)를 하나씩 부여하게 됩니다.(보통 C클래스의 사설IP주소를 사용하며 그 영역은 192.168.0.0 ~ 192.168.255.255 입나다) 앞서 언급했지만 사설 IP는 외부 네트워크로 전파되지 않는 태생적 한계가 있습니다.


이 때문에 IP공유기들은 외부 네트워크와의 통신을 가능케하도록, 패킷이 외부 네트워크로 나가게 될 때 이 패킷의 출발지 주소를 자신의 IP주소로 변경시켜 전달하게 되고, 외부에서 내부로 전달되는 패킷이 있을 경우 이 목적지 주소를 상황에 맞게 사설 IP주소로 서로 변경하게 됩니다.



NAT(Network Address Translation)을 사용해 외부 네트워크와 통신하도록...


즉 중간에서 일종의 번역작업을 수행하게 되는데, 이를 NAT(Network Address Translation) 기능이라 합니다. 이 기능으로 인해 IP공유기 자체는 하나의 공인IP를 할당받았지만 연결된 다수의 호스트들에게 사설 IP를 부여하여 인터넷과 같은 외부네트워크와의 통신을 지원하게 됩니다. 즉 NAT 가 바로 IP공유기의 핵심이라고 할 수 있습니다.


게다가 네트워크 외부에서 볼 때는 IP공유기 안의 내부 내트워크 구조를 알 수 없는 상황에 처하게 되는데, 이 때문에 IP공유기는 일종의 방화벽(Firewall)과 비슷하게 볼 수 있습니다. 결과적으로 NAT를 사용하기 때문에 사설IP를 사용하게 되더라도 인터넷이 가능하게 됩니다.


 - 자동으로 IP주소를 받아오자


일단 IP공유기를 연결한 상태에서 컴퓨터를 부팅(자동으로 IP를 받아오게 설정. 즉 DHCP 클라이언트로 동작하도록)하게되면 네트워크에 브로드케스트 신호를 보내 DHCP서버를 찾게됩니다. DHCP서버기능을 가진 IP공유기는 이에 대한 적절한 응답으로 IP하나를 대여해주는 역할을 하게됩니다.



4대의 호스트를 연결할 수 있으며 확장도 가능



자동으로 IP를 받아오도록 DHCP 클라이언트를 구성


자동으로 IP을 얻어오는 DHCP
ISP업체로부터 유동 IP주소를 받아오기 위해서 DHCP 라는 약속을 사용합니다. 즉 ISP의 DHCP 서버는 빌려줄 수 있는 IP주소 리스트(이를 IP Pool이라고 합니다)를 가지고 있습니다. 고객 컴퓨터가 부팅되면 DHCP 서버에게 남는 IP주소를 하나 요구하게 되고, 적당한 IP주소를 골라 전달하게 됩니다. - 이를 IP주소를 대여(Lease)한다는 표현을 사용합니다.
IP공유기 역시 DHCP서버로 동작시킬 수 있습니다. 이로인해 IP주소를 수동으로 할당할 필요없이(수동으로도 사용가능합니다) 컴퓨터를 부팅하는 것만으로도 동적으로 IP들이 할당됩니다.
IP공유기들은 사설IP주소를 내부 네트워크에 사용합니다. 할당가능한 사설 IP주소는 임의로 변경할 수 있는데, 만약 192.168.1.100 ~ 192.168.1.254 로 설정했다면 부팅시 IP공유기에서 남는 IP를 줄 것을 부탁하게 되고 IP공유기로부터 남는 IP주소가 부여됩니다. - 보통 요구한 순서대로 주소가 정해집니다.
(참고#1) IP공유기에 사설IP로 사용되는 가장 흔한 주소는 192.168.x.x 이며, C클래스에 속하는 주소입니다.
(참고#2)  IP공유기 대신 구형 컴퓨터를 IP공유기와 비슷하게 사용하는 방법도 있습니다. 리눅스 라우터가 그중 한가지인데, NAT와 비슷한 IP 머스커레이딩(Masquerading)을 사용합니다.

- IP공유기의 필수설정사항
IP공유기의 설정에 대해 살펴볼까요? 일단 인터넷 익스플로러를 통해 IP공유기로 접속을 해야합니다. 일반적으로 IP공유기에 할당되는 내부 IP주소의 기본값은 192.168.1.1 입니다.



위와 같이 IP공유기로 접근하게 되면 여러 가지 설정이 가능합니다. 위의 "내부 IP주소", "서브넷마스크" 는 크게 손댈 필요가 없습니다. 그 밑에는 IP공유기를 DHCP 서버로 사용할지 여부를 선택하게 되는데, 연결된 컴퓨터들을 모두 수동설정하기 싫다면 DHCP로 사용하는 것을 추천합니다. 그 밑부분은 할당할 IP주소들, 즉 할당할 사설IP 주소의 범위를 설정해 주면 됩니다.


IP공유기들은 최대 254개까지 호스트를 연결할 수 있는데, 예를들어 192.168.1.2~192.168.1.245 와 같이 지정이 가능합니다. (참고) 192.168.1.0은 해당 네트워크를 대표하는 이름, 192.168.1.1 은 IP공유기를 의미하며 192.168.1.255는 브로드캐스트 주소로 사용됩니다.


 - IP공유기 전송속도의 허와실



A->C, D->E 로 데이터 전송


앞서 살펴본 것처럼 IP공유기는 스위치로의 역할도 수행하게 됩니다. 즉 위 그림에서 A->C로, D->E로 데이터를 동시에 전달할 수 있다는 의미입니다. 이 때문에 허브와는 달리 스위치(위의 그림에선 IP공유기)가 지원하는 회선속도에 근접하게 사용할 수 있습니다. 즉 100Mbps 스위치허브기능을 가졌다면 A->C, D->E 모두 이에 근접한 전송속도로 데이터를 주고받을 수 있습니다.


그러나 이러한 상황은 1:1 일 경우에만 해당합니다. 즉 A->C로 전송중인데, D->C로 전송을 동시에 하려한다면 2:1 상황으로 돌변하게 되며, 회선속도는 1/2로 줄어들 게 됩니다.






이를 IP공유기에 적용해 볼까요? 인터넷으로 향하는 외부회선(WAN)은 하나뿐인데 위 그림에서 총 5개의 호스트들이 모두 인터넷을 사용한다고 가정하면, 1:5 상황이 됩니다. 즉 모든 호스트가 인터넷으로부터 데이터를 송/수신하는 상황에서는 대역폭을 1/5 로 쪼개어 사용하게 됩니다.



출처 : www.technoa.co.kr
최홍찬기자 upgrade@technoa.co.kr