검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 네트워크
이제까지 나온 WLAN 보안 관련 표준은 총 3개로서 WEP(Wired Equivalent Privacy), WPA(Wi-Fi Protected Access), 802.11i(=WPA2)가 있습니다. 가장 먼저 WEP가 나왔었는데 처음 나온 보안 표준이라 문제가 많았습니다. 그 후 정확히 표준이라고 할 수 없지만 사실상 산업 표준으로 사용되고 있는 Wi-Fi 연합의 WPA가 나왔고 가장 최근에 WPA2라고 불리는 802.11i이 나왔습니다. 이것을 간단히 정리하면 아래와 같습니다.

  WEP은 가장 먼저 나온 보안 표준으로서 인증과 암호화 서비스를 포함하고 있습니다. 그런데 그 강도가 너무 약하여 현재는 크래킹 프로그램으로 쉽게 깰 수 있습니다. WEP의 주요 문제점은 다음과 같습니다.
  1. PSK(Static Preshared Keys)의 동적 교환 불가: 인증을 위한 일종의 암호인데 클라이언트와 AP가 각각 로컬에서 직접 입력하는 고전적인 키 설정 방식이라 네트워크로 동적인 키 교환이 불가능합니다. 그러다보니 키를 자주 바꾸지 않는 현상이 일어났습니다.
  2. 취약한 키: 키의 길이가 64 비트 밖에 안 되는 문제도 있지만 그나마도 그 중 40 비트만 실제 키 값에 해당합니다. 그래서 WLAN을 통해 떠다니는 프레임을 조사하여 키 값을 쉽게 추측할 수 있습니다.
  WEP는 너무 취약하고 그 다음 표준(이라고 할 수 있는)인 WPA는 WEP가 나온지 6년 후에 나오다보니 그 사이에 각 벤더들은 자체적으로 이런저런 보안 기능을 탑재하기에 이릅니다. 그 중 SSID 클록킹(Cloaking)과 MAC 주소 필터링 기능이 있는데 재미있게도 이 두 기능 역시 취약하여 사실상 보안을 제공해주지 못했습니다. 그래서 그런지 이 두 기능도 WEP의 기능으로 이야기하는 경우가 많은데 엄밀히 따지자면 이 두 기능은 WEP에 속하지 않는 기능입니다.

  SSID 클록킹을 이해하려면 먼저 클라이언트가 AP로부터 SSID 값을 알아내는 과정을 알아야 하며 그 내용은 아래와 같습니다.
  1. AP는 주기적(디폴트 값 100ms)으로 AP의 SSID와 설정 정보가 담긴 'Beacon 프레임'이라는 것을 발산한다.
  2. 클라이언트는 모든 채널로부터 Beacon을 수신하여 범위 내의 모든 AP를 인식한다.
  3. 클라이언트는 자신이 인식한 AP 중 가장 신호가 강한 AP에 연결하여 인증 절차를 시작한다. 만약 지정한 SSID를 가진 AP가 다수일 경우 가장 신호가 강한 AP를 고른다. ESS의 로밍 기능은 후자의 특성을 이용한 것이다.
  이런 과정 때문에 누구나 특정 AP의 SSID 값을 알 수 있습니다. SSID 클로킹은 이 Beacon 프레임을 발산하지 않게 만드는 기능입니다. 문제는 클라이언트가 SSID를 설정하지 않을 경우(Null SSID) Probe 메시지라는 것을 발산하는데 이 메시지를 받은 AP는 자신의 SSID를 알려주는 응답을 하기 때문에 아무 의미가 없습니다.

  MAC 주소 필터링은 특정 MAC 주소를 등록하고 해당 MAC 주소로부터 오는 프레임만 받아들이는 기능입니다. 그런데 공중에 떠다니는 정상적인 프레임을 보고 해당 프레임 속에 사용한 MAC 주소를 자신의 MAC 주소로 변조할 수 있으므로 결국 이것도 쉽게 우회할 수 있습니다.


  WEP 이후 그 다음 (사실상)표준인 WPA가 나오기 전에 시스코는 자사의 AP에 터미널용 사용자 인증 표준인 802.1x와 자체적인 기능들을 포함하여 출시합니다. 후에 이 기능 중 많은 기능이 IEEE 802.11i에 포함되게 됩니다. 시스코가 자체적으로 넣은 대표적인 기능은 아래와 같습니다.
  • 동적으로 키 교환: WEP과 달리 키를 동적으로 교환. 이는 향후 WPA에 포함된 TKIP(Temporal Key Integrity Protocol)와 유사하지만 시스코는 TKIP의 독자적인 버전을 사용.
  • 짧아진 키 사용 기간: 동적으로 키 교환이 가능해짐에 매 패킷마다 암호 키를 자동으로 바꾸고 클라이언트에게도 전달함으로서 키가 바뀌기 전에 공격자는 크랙에 필요한 데이터를 모으기가 힘들다.(참고: 이렇게 일정량의 데이터를 보내거나 시간이 흐른 후 자동으로 암호 키를 바꾸는 것을 Rekeying이라고 한다.)
  • 802.1x를 이용한 사용자 인증: 기존의 '키 값을 이용해 장비를 인증'하는 방식 대신 '사용자명과 비밀번호를 이용해 사용자를 인증'하는 방식을 사용한다.(따로 RADIUS 같은 인증 서버를 사용해야 함.)

  한편, 여러 벤더끼리 호환이 가능한 WLAN 표준을 만들던 Wi-Fi 연합은 시스코와 마찬가지로 재정 중인 802.11i 표준의 여러 사항을 채택해서 WPA(Wi-Fi Protected Access)라는 사실상 산업 표준을 만들어 벤더들의 장비와 이 표준의 호환성을 검증하는 작업을 하기 시작합니다. WPA는 기본적으로 시스코가 독자적으로 사용했던 기능과 비슷한 기능들을 갖추고 있었는데 암호화에는 TKIP(시스코는 TKIP와 비슷한 별도의 프로토콜을 사용)를 사용하며, 시스코가 802.1x를 이용한 동적 키 분배 방식만 지원했던 것에 비해 WPA는 WEP에서 사용한 것과 같은 정적 키 분배 방식도 지원하여 별도의 인증 서버 없이 일반 가정 환경의 사용자도 손쉽게 강도 높은 보안 기능을 이용할 수 있게 됩니다.

  2005년에 IEEE는 802.11i 표준을 제정하고 이후 지속적으로 업데이트를 합니다. 이전에 나온 표준과 비교해 주목할 만한 점을 꼽자면 암호화 알고리즘에 AES(Advanced Encryption Standard)를 포함시켜 보안을 월등히 향상시켰다는 겁니다. 장비 인증을 담당하는 Wi-Fi 연합은 이 표준을 자신들이 이전에 만든 표준인 WPA의 이름을 따서 WPA2로 명명합니다. 실제로 시장에서도 802.11i라는 명칭보다는 WPA2라는 명칭을 많이 사용합니다. 아래 표는 지금까지의 내용을 요약한 겁니다.

사용자 삽입 이미지


참고 도서: CCENT / CCNA ICND1 Official Exam Certification Guide
2010/08/17 19:49 2010/08/17 19:49
Posted
Filed under 네트워크
WLAN이란 Wireless LAN의 약자로서 무선을 이용한 데이터 통신 중 하나입니다. WLAN을 이용하려면 AP(Access Point)를 이용해야 하는데 이것은 유선 이더넷 통신의 허브 장비와 유사한 역할을 합니다. 이 AP는 다시 유선으로 허브나 스위치 같은 장비에 연결되어 다른 장비나 인터넷과 통신을 하게 됩니다.

AP의 예

  무선의 경우 한 번에 한 대 이상의 장비가 동일 공간에서 같은 주파수 대역을 사용하여 전파를 전송하면 신호의 구분에 문제가 있기 때문에 반드시 반이중(HDX: Half-Duplex) 메커니즘을 사용해야 합니다. 이때 WLAN은 CSMA/CA(Carrier Sense Multiple Access/Collision Avoidance) 알고리즘을 이용하여 반이중 로직을 사용합니다.

  각각의 WLAN 망은 SSID(Service Set ID)라는 값을 가지고 있습니다. 이 값은 WLAN 망을 구분 및 식별에 사용하는 값으로 32개의 ASCII 문자로 이뤄집니다. 일반적으로 대부분의 운영체제에서는 탐지 가능한 범위 내에 있는 AP의 SSID를 자동으로 수집하는 등 사용자가 특별한 조작을 하지 않고도 WLAN을 쉽게 이용하도록 도와주는 프로그램(예: MS윈도우의 ZCF-Zero Configuration Utility-)을 제공합니다. 또한 이와 별도로 대부분의 NIC 생산 업체는 자신들의 제품을 위한 전용 제어 프로그램을 제공합니다.

  WLAN에는 2가지 모드가 있습니다. 하나는 애드 혹 모드(Ad Hoc Mode)라는 것으로 소수의 장비가 서로 직접 통신하는 방법입니다. 다른 하나는 인프라스트럭처 모드(Infrastructure Mode)라는 것으로 각 장비가 AP를 경유하여 통신하는 방법입니다. 처음 나왔던 그림의 모습이 이 바로 인프라스트럭처 모드입니다.

  인프라스트럭처 모드는 다시 서비스 세트(Service Set)라는 기준으로 BSS(Basic Service Set)와 ESS(Extended Service Set)로 나눠집니다. 처음 나왔던 그림처럼 하나의 AP를 사용하여 WLAN을 구성하는 것을 BSS라고 하며, 아래 그림처럼 2개 이상의 AP를 사용하여 셀을 중첩시키는 것을 ESS라고 합니다. 참고로 ESS를 구성할 때는 각 AP와 연결된 스위치의 포트들이 같은 VLAN에 속해야 합니다. 소속된 VLAN이 다르면 서로 통신이 불가능하기 때문에 AP끼리 서로 연결하여 하나의 WLAN을 만드는 ESS의 특성이 성립되지 않기 때문이죠. 참고로 ESS는 여러 AP로 하나의 WLAN 망을 만드는 것이기 때문에 AP마다 모두 동일한 SSID 값을 가지며 이로 인해 AP 사이의 로밍이 가능합니다.

ESS

  애드 혹과 인프라스트럭처에 대한 내용을 간단히 요약하면 다음과 같습니다.

사용자 삽입 이미지

  WLAN 표준을 제정하거나 영향을 미치는 큰 조직들은 아래와 같습니다.
  • ITU-R: 복사 에너지를 사용하는 통신의 표준화를 주도하는 국제 조직. 주파수 할당을 관리한다. UN의 통제를 받음.
  • IEEE: WLAN(802.11) 표준을 제정.
  • Wi-Fi Alliance: 산업 컨소시엄. 자체 Wi-Fi 인증 프로그램을 통해 WLAN 표준을 제정할 때 장비 사이의 상호 호환성을 점검.
  • FCC(Federal Communications Commission): 미국 정부의 다양한 통신 주파수 사용을 법제화.
    이더넷 LAN의 표준이 IEEE 802.3인 것처럼 WLAN도 표준이 있으며 이름은 IEEE 802.11입니다. IEEE는 1997년에 802.11 표준을 만들었으며 최초에는 집미사가 없었습니다. 그 후 802.11b, 802.11a, 802.11g, 802.11n 순서로 표준을 채택합니다. 아래는 각 표준에 따른 사항들입니다.

  위의 표를 보면 전송 속도가 여러 개가 있는 것을 볼 수 있습니다. 이것은 약한 무선 신호는 고속으로 데이터를 전달할 수 없지만 저속으로는 가능하다는 것과 관련이 있습니다. AP에 가까운 장비는 강한 신호를 수신하기 때문에 고속으로 통신이 가능하지만 멀리 떨어진 장비는 수신하는 신호가 약하기 때문에 저속으로 데이터를 송수신하게 됩니다. 즉, 표에 나온 전송 속도는 AP에서 가장 먼 곳부터 가장 가까운 곳까지 적용되는 각 속도들을 적은 겁니다.

  또한 표에는 나와 있지 않지만 각 표준에는 비중복 채널 수라는 것이 있습니다. 이것은 해당 표준을 기준으로 같은 공간 안에 서로 간섭하지 않는 신호 채널의 숫자를 뜻하는데 예를 들어 802.11b는 이런 채널이 3개입니다. 이것은 ESS를 구성할 때 최대 AP의 개수에도 영향을 줍니다. 802.11b로 ESS를 구성할 경우 같은 공간에 최대 3개의 AP 커버리지 영역이 이어질 수 있다는 것을 의미합니다. 클라이언트들은 WLAN 표준에 맞는 모든 주파수 채널을 수신하면서 AP를 탐색합니다. 만약 3개의 AP가 서로 다른 채널을 지원하고 있을 경우 3개의 AP를 모두 찾아낸 후 가장 신호가 강한 AP에 연결을 합니다. 또한 동일 WLAN 내에 존재하는 채널의 개수는 동시 총 전송량에도 영향을 끼칩니다. 예를 들어 802.11b의 최대 전송 속도는 54 Mbps지만 세 개의 AP로 구성된 ESS에서 각 AP에 PC가 1대씩 있다면 PC들은 각자 하나씩 채널을 점유하여 각자 54 Mbps의 속도로 데이터를 전송할 수 있습니다. 즉, 이론상 해당 WLAN은 3 X 54 = 162 Mbps의 처리량을 지원한다는 것이 됩니다.


  미국의 FCC나 이와 비슷한 각국의 기관은 정해진 몇몇 주파수 대역에 대한 사용에 라이센스를 통해 관리하고 있으며 일부 주파수 대역은 라이센스를 부여하지 않고 공용으로 남기는데 우리가 WLAN에 사용하는 대역대도 바로 이런 공용 대역대에 포함됩니다. 이렇게 라이센스를 부여하지 않는 공용 대역대는 모든 기기가 공유해서 사용합니다. 예를 들어 전자레인지는 2.4GHz 대역의 주파수를 발산하는데 이 대역은 무선 전화기나 WLAN의 일부 표준에서 이용하는 것과 같은 대역이기 때문에 누군가 전자레인지를 사용하면 무선 전화기나 WLAN이 잘 작동하지 않을 수 있습니다. 미국의 FCC는 라이센스를 부여하지 않는 주파수 대역대를 3개 정의했습니다. 아래는 그 주파수 대역대를 정리한 겁니다.

  AP나 WLAN NIC의 전송 능력은 FCC(미국의 경우) 같은 법제화 위원회에서 정한 규정 이상을 초과하면 안 됩니다. 왜냐하면 같은 공용 주파수 대역대를 사용하는 장비들이 공정하게 경쟁할 수 있어야 하기 때문이죠. 예를 들어 두 집에서 무선 공유기를 쓰고 있는데 한 집의 공유기의 전송 능력이 너무 뛰어나서 커버리지 영역(두 WLAN 장비가 성공적으로 데이터를 전송할 수 있는 공간)이 다른 집을 덮어버릴 경우 다른 집이 신호의 간섭 때문에 AP를 쓸 수 없는 사태가 일어날 수 있기 때문입니다.

  마지막으로 엔지니어가 WLAN을 설치하기 전이나 설치 후 제대로 작동하지 않을 경우 사이트 서베이(Site Survey)라는 작업을 수행합니다. 이 작업을 하는 동안 적절한 AP 위치 결정, 주변을 돌아다니며 신호 세기 측정, 데드 스팟(WLAN이 작동하지 않는 지역) 존재 확인, 클라이언트가 AP로부터 신호 수신에 문제 여부 같은 사항을 확인하며 특히 사이트 서베이 시 노트북에 WLAN 카드를 장착하고 직접 돌아다니며 확인하는 방법이 유용합니다. 이 과정을 통해 아래와 같은 항목을 점검합니다.
  • 클라이언트가 위치한 영역의 중앙 지점에 AP가 있는가?
  • AP나 클라이언트 장비 주변에 금속 재질의 물건이 있는가?
  • AP나 클라이언트 장비 주변에 전자레인지나 비디오 게임기 등의 장애물이 있는가?
  • AP의 커버리지 영역이 충분한 크기인가?

참고 도서: CCENT / CCNA ICND1 Official Exam Certification Guide
2010/08/14 22:08 2010/08/14 22:08
Posted
Filed under 네트워크
인터페이스의 연결 상태가 up/up이지만 제대로 통신이 되지 않을 경우 보통 3계층 이상의 문제이지만 항상 그런 것은 아닙니다. 'show interfaces type number' 명령어를 사용하면 이런 문제를 발견할 수 있습니다. 아래는 명령어의 출력 결과와 지금 설명할 주목할 만한 사항을 보여줍니다.
Switch#show interfaces fastethernet 0/1
(출력 결과 일부 생략)
     Received 956 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     0 watchdog, 0 multicast, 0 pause input
     0 input packets with dribble condition detected
     2357 packets output, 263570 bytes, 0 underruns
     0 output errors, 0 collisions, 10 interface resets
     0 babbles, 0 late collision, 0 deferred
     0 lost carrier, 0 no carrier
     0 output buffer failures, 0 output buffers swapped out
  예를 들어 케이블의 부분적 손상이나 EMI(Electromagnetic Interference: 전자 방해)로 인해 전기 신호가 변경되면 그 신호를 수신해서 만든 프레임도 변경되므로 프레임의 트레일러에 있는 FCS 필드로 프레임을 검사할 때 프레임을 폐기하고 입력 에러(input errors)와 CRC 값이 같이 증가합니다.참고로 CRC(Cyclic Redundancy Check)는 FCS(Frame Check Sequence)의 예전 용어입니다.

  케이블링 지침을 준수했다면 모든 충돌은 프레임의 64번째 바이트의 마지막 부분에 의해 발생해야 합니다. 그래서 스위치가 프레임의 64바이트를 이미 전송했는데 같은 인터페이스로 수신이 들어온다면 late collisions 값이 증가하며 CSMA/CD의 동작대로 jam 신호를 전송하고 무작위의 시간 동안 대기하며 수신을 기다립니다. 이런 일은 주로 한쪽이 인터페이스가 전이중으로 작동하고 반대쪽 인터페이스가 반이중으로 작동할 때 발생하며 'show interfaces type number' 명령어를 통해 확인할 수 있습니다. 만약 late collisions 값의 증가 원인이 그것이라면 전이중으로 설정된 인터페이스는 계속해서 프레임을 전송할 것이므로 collision 값도 증가할 겁니다. 또한 케이블의 길이가 너무 긴 경우에도 late collisions 값이 증가합니다.

  또한 재버(jabber)라는 문제도 있는데 기본적인 사전적 정의는 불량 신호를 계속해서 보내는 것을 뜻하며 IEEE 802.3에서는 '최대 프레임 크기보다 큰 프레임'을 뜻합니다. 이더넷의 경우 1518 바이트(오버헤드로 18바이트, 페이로드로 1500바이트)로 정의되어 있습니다. 보통은 망가진 NIC가 이더넷 망에 있을 때 이 문제가 발생하며 collisions과 late collisions 값이 계속 증가합니다. 만약 모든 프레임 중 0.1% 이상이 충돌했다면 문제가 심각한 겁니다. 충돌 비율은 'collisions / packets output'로 계산할 수 있습니다.

  아래 표는 지금까지 설명한 1계층 문제의 증상과 원인을 정리한 것입니다.

사용자 삽입 이미지

참고 도서: CCENT / CCNA ICND1 Official Exam Certification Guide
2010/08/13 19:31 2010/08/13 19:31
Posted
Filed under 네트워크
구리선을 사용하는 인터페이스는 보통 IEEE 802.3X 표준인 자동 협상을 거쳐 자동으로 스피드와 듀플렉스를 설정합니다. 당연하지만 스피드와 듀플렉스를 모두 수동으로 설정하면 자동 협상 기능을 비활성화가 됩니다. 스위치나 라우터의 인터페이스 설정 모드에 들어간 상태라면 'speed { 10 | 100 | 1000 | auto }' 명령어와 'duplex { half | full | auto }' 명령어로 각각 스피드와 듀플렉스를 설정할 수 있습니다. auto는 자동 협상을 사용하는 것이고 나머지는 수동으로 해당 인터페이스의 스피드와 듀플렉스를 설정하는 겁니다.

  스위치에서 현재 설정 상태를 출력하는 명령어는 'show interfaces status'입니다. 출력 결과에서 스피드와 듀플렉스에 'a-'라는 접두사가 붙어 있으면 자동 협상으로 설정이 된 겁니다. 예를 들어 듀플렉스 필드에 'a-full'이라고 돼 있으면 자동 협상으로 전이중 설정이 된 것이고 'full'이라고 돼 있으면 수동으로 설정한 겁니다. 'show interfaces type number' 명령어로도 설정 상태를 볼 수 있지만 이 명령어로는 협상 결과가 자동 협상에 의한 결과인지 수동으로 설정한 결과인지 알 수가 없습니다. 참고로 'show interfaces status' 명령어는 패킷 트레이서 프로그램에서 사용이 불가능하므로 공부할 때 참고하시기 바랍니다.

  그럼 이제 자동 협상의 과정에 대해 알아보겠습니다. 서로 연결된 두 장비 모두 자동 협상이 설정돼 있을 경우 스피드는 두 장비 모두 지원하는 최고 스피드, 듀플렉스는 두 장비 모두 전이중을 지원할 경우 전이중(full)으로 협상을 맺습니다.

  문제는 한쪽이 자동 협상을 사용하고 다른 한쪽이 수동으로 설정했을 경우 일어납니다. 이 경우 자동 협상을 사용하는 장비는 상대의 스피드를 기준으로 듀플렉스를 결정하는데 그 기준이 아래와 같습니다.
  • 스피드를 알 수 없을 경우 10 Mbps, 듀플렉스는 반이중(half)을 사용.
  • 스피드를 10이나 100 Mbps로 인식하면 반이중(half)을 사용.
  • 스피드를 1000 Mbps로 인식하면 전이중(full)을 사용.
  참고로 1000 Mbps 이상의 이더넷 인터페이스는 전이중 듀플렉스만 지원합니다. 위의 기준을 토대로 아래의 그림을 보겠습니다.

사용자 삽입 이미지
  스위치1의 Gi0/1 포트는 스피드와 듀플렉스를 수동으로 설정했고 스위치2의 Gi0/2 포트는 스피드와 듀플렉스를 자동 협상으로 설정한 상태입니다. 스위치2는 스위치1이 스피드를 100으로 설정했기 때문에 자동 협상을 통해 자신도 스피드를 100으로 맞춥니다. 그런데 스피드가 100이기 때문에 듀플렉스를 반이중으로 설정하게 되므로 문제가 발생합니다. 이렇게 듀플렉스가 불일치하면 성능 저하나 일시적인 작동이 중단되는 등 문제가 발생하지만 동작을 하기는 하며 'show interfaces gi0/1' 명령어로 연결 상태를 봐도 라인과 프로토콜 모두 '업/업(up/up)으로 나오기 때문에 문제를 찾기가 더 어렵습니다.

  듀플렉스가 서로 다를 경우 실제 통신에 문제가 일어나는 이유는 반이중 듀플렉스로 설정된 포트가 CSMA/CD를 사용하기 때문입니다. 전이중으로 설정된 포트는 수신과 동시에 송신을 하는 반면, 반이중으로 설정된 포트는 수신을 받으면 수신이 끝날 때까지 송신을 하지 않고 기다리며 만약 송신 중 수신을 받으면 충돌이 일어났다고 인식하여 CSMA/CD를 사용하기 때문에 문제가 발생합니다.

  이러한 문제는 각 장비의 듀플렉스 설정을 확인하고 'show interfaces type number' 명령어로 인터페이스의 충돌(collision) 값과 지연 충돌(late collision) 값이 증가하는지 확인을 통해 알 수 있습니다.


참고 도서: CCENT / CCNA ICND1 Official Exam Certification Guide
2010/08/13 17:10 2010/08/13 17:10
Posted
Filed under 네트워크
시스코 스위치의 모든 인터페이스는 액세스 인터페이스와 트렁크 인터페이스 중 하나로 동작합니다. 액세스 인터페이스는 하나의 VLAN 내의 프레임을 송수신합니다. 이에 비해 트렁크 인터페이스는 모든 VLAN의 프레임을 자신과 연결된 반대편의 트렁크 인터페이스와 서로 교환합니다. 시스코 스위치들은 기본적으로 모든 인터페이스가 VLAN 1에 속해 있습니다. 모든 인터페이스가 같은 VLAN에 속해 있기 때문에 서로 통신이 가능한 겁니다. 새로운 VLAN을 생성하고 거기에 포트를 할당하는 절차는 아래와 같습니다.
  1. 전역 설정 모드에서 'vlan id' 명령어를 통해 원하는 번호의 VLAN을 생성한다. id에는 원하는 VLAN 번호를 쓴다.
  2. 만약 해당 VLAN에 이름을 지정하고 싶다면 위 상태에서 'name name' 명령어를 통해 해당 VLAN에 이름을 정해줄 수 있다. 정해주지 않으면 'VLAN????' 형식의 이름이 디폴트로 배정되며 물음표(?)에는 위에서 지정한 번호가 앞에 0을 채워 4자리 수로 들어간다.(예: VLAN0010)
  3. 위 작업을 통해 VLAN을 생성했으면 해당 VLAN에 원하는 인터페이스를 할당하기 위해 'interface' 명령어를 통해 할당할 인터페이스의 설정 모드로 이동한다. 이때 'interface range type number - number' 형식의 명령어로 여러 인터페이스를 한 번에 설정할 수 있다.
  4. 해당 인터페이스를 원하는 VLAN에 할당하기 위해 'switchport access vlan id' 명령어를 사용한다. id에는 원하는 VLAN의 번호를 쓴다.
  5. 만약 해당 포트가 자동 협상을 통해 동적으로 트렁킹 모드로 변하는 것을 방지하고 싶다면 'switchport mode access' 명령어로 해당 포트를 액세스 인터페이스로 유지할 수 있다.
  다음은 10번 VLAN을 구성하고 이름을 System으로 설정한 뒤 1번부터 10번 포트를 10번 VLAN에 할당하고 혹시나 나중에 트렁크 모드로 변하는 것을 방지한 후 설정을 확인하는 예제입니다.
Switch#configure terminal
Switch(config)#vlan 10
Switch(config-vlan)#name System
Switch(config-vlan)#exit
Switch(config)#interface range fastethernet 0/1 - 10
Switch(config-if-range)#switchport access vlan 10
Switch(config-if-range)#switchport mode access
Switch(config-if-range)#^Z
Switch#show vlan brief

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa0/11, Fa0/12, Fa0/13, Fa0/14
                                                Fa0/15, Fa0/16, Fa0/17, Fa0/18
                                                Fa0/19, Fa0/20, Fa0/21, Fa0/22
                                                Fa0/23, Fa0/24
10   System                           active    Fa0/1, Fa0/2, Fa0/3, Fa0/4
                                                Fa0/5, Fa0/6, Fa0/7, Fa0/8
                                                Fa0/9, Fa0/10
(이해 출력 생략)
  특히 'interface range type number - number' 형식의 명령어는 지금처럼 다수의 인터페이스에 동일한 설정을 할 때 매우 유용하기 때문에 주의 깊게 보시기 바랍니다.


참고 도서: CCENT / CCNA ICND1 Official Exam Certification Guide
2010/08/13 00:00 2010/08/13 00:00
Posted
Filed under 네트워크
스위치의 특정 포트에 특정 MAC 주소를 가진 장비만 해당 포트를 사용할 수 있도록 보안 설정을 할 수 있습니다. 그 방법을 단계별로 설명하자면 아래와 같습니다.
  1. 설정을 원하는 포트에 인터페이스 설정 모드로 접근하여 'switchport mode access' 명령어로 해당 포트를 '액세스 인터페이스'로 만든다.
  2. 'switchport port-security' 명령어로 보안을 가동한다. 만약 해당 포트에 정적으로 MAC 주소를 설정한 것이 있다면 이 명령어를 사용할 수 없다.
  3. 'switch port-security maximum number' 명령어로 해당 포트에 연결을 허용할 최대 MAC 주소 개수를 설정한다. 설정하지 않으면 포트 당 1개의 MAC 주소만 연결을 허용한다. 아래 5, 6번을 통해 학습하는 것 이외에 평소에 동적으로 학습하는 MAC 주소들도 이 개수에 포함된다는 것에 주의.
  4. 'switchport port-security violation {protect | restruct | shutdown}' 명령어로 연결 차단 대상으로부터 프레임을 받았을 때 어떻게 할지를 설정한다. 설정하지 않으면 'shutdown'으로 동작한다.
  5. 'switchport port-security mac-address mac' 명령어로 연결을 허용할 MAC 주소를 정적으로 설정한다. 동일 포트에서 여러 번 사용하여 여러 개의 MAC 주소를 설정할 수 있다. 이렇게 설정한 주소는 수동으로 지우기 전까지 설정에 남는다.
  6. 위 명령어를 사용하는 대신(또는 함께) 'switchport port-security mac-address sticky' 명령어로 스위치를 통해 프레임 전송을 시도하는 장비들의 MAC 주소를 동적으로 학습할 수 있다. 학습은 프레임을 보내는 순서대로 이뤄진다. 이렇게 학습한 주소도 위에서 정적으로 설정하는 것과 마찬가지로 수동으로 지우기 전까지 설정에 남는다.
  특정 포트에 설정된 보안 관련 정보들은 'show port-security interface interface number' 명령어를 통해 확인할 수 있습니다.

  만약 출발지의 MAC 주소가 허용된 MAC 주소가 아닐 경우 설정한 정책에 따라 후속조치가 이뤄집니다. 위에서 4번의 명령어로 정책을 설정할 수 있으며 세 가지 모두 프레임을 버리지만 약간씩 차이가 있습니다. 먼저 protect로 설정할 경우 해당 프레임을 폐기만 할 뿐 다른 동작은 하지 않습니다. restrict로 설정하면 거기에 더하여 콘솔에 메시지를 뿌리고 SNMP 트랩 메시지를 전송합니다. shutdown은 여기에 더하여 해당 인터페이스를 비활성화시킵니다. 아래는 허가되지 않은 MAC 주소가 스위치로 프레임 전송을 하여 인터페이스가 인터페이스가 비활성화된 상태에서 'show port-security interface interface number' 명령어로 Port Status 부분을 보면 'Secure-shutdown'이라고 된 것을 볼 수 있습니다. 이렇게 된 인터페이스를 복구하려면 'shutdown' 명령어로 인터페이스를 중지시킨 후 'no shutdown' 명령어로 다시 활성화시켜야 합니다.


참고 도서: CCENT / CCNA ICND1 Official Exam Certification Guide
2010/08/11 23:51 2010/08/11 23:51
Posted
Filed under 네트워크
스위치는 별도의 설정을 하지 않아도 전원을 연결하고 포트에 선만 꼽으면 잘 작동하지만 텔넷이나 SSH를 이용한 원격 접속이나 SNMP(Simple Network Management Protocol)를 이용한 관리를 하려면 IP 주소를 설정해야 합니다.

  스위치는 하나의 이더넷 인터페이스가 있는 장비처럼 작동합니다. 당연하지만 일단 IP 주소, 서브넷 마스크, 디폴트 게이트웨이 주소를 설정해줘야 합니다. 설정은 평범하게 정적인 방법으로 할 수도 있고 DHCP를 사용할 수도 있습니다. 어느 쪽이든 스위치에서 IP 설정을 할 때는 VLAN 1 가상 인터페이스에 설정합니다. 이때 중요한 것은 'VLAN 1'과 'VLAN 1 가상 인터페이스'는 별개라는 겁니다. 이 인터페이스는 이더넷 인터페이스와 같은 방식으로 사용됩니다. 먼저 정적으로 IP를 설정하는 과정부터 알아보겠습니다.
  1. 전역 설정 모드에서 'interface vlan 1' 명령어로 VLAN 1 설정 모드로 진입.
  2. 'ip address ip mask' 명령어로 IP 주소와 서브넷 마스크 설정.
  3. 'no shutdown' 명령어로 VLAN 1 가상 인터페이스 활성화.
  4. 전역 설정 모드로 빠져나와 'ip default-gateway ip' 명령어로 디폴트 게이트웨이 주소를 설정.
  다음은 위 내용을 실제로 적용한 예입니다.
Switch#configure terminal
Switch(config)#interface vlan 1
Switch(config-if)#ip address 192.168.1.2 255.255.255.0
Switch(config-if)#no shutdown
Switch(config-if)#exit
Switch(config)#ip default-gateway 192.168.1.1
  다음으로 DHCP를 이용하여 설정하는 방법을 보겠습니다.
  1. 전역 설정 모드에서 'interface vlan 1' 명령어로 VLAN 1 설정 모드로 진입.
  2. 'ip address dhcp 명령어로 IP 주소와 서브넷 마스크 설정.
  3. 'no shutdown' 명령어로 VLAN 1 가상 인터페이스 활성화.
  정적으로 구성하는 것과 매우 유사하며 2번 단계의 명령어가 ip와 서브넷 마스크 설정에서 dhcp 설정으로 바뀌고 4번이었던 디폴트 게이트웨이 설정을 하지 않는다는 것이 차이점입니다. 한 가지 알아야 할 점은 dhcp로 IP 주소를 설정할 경우 'show running-config' 명령어로는 IP 주소를 볼 수 없다는 것입니다. 이때는 'show dhcp lease' 명령어나 'show interface vlan 1' 명령어를 통해 IP 주소를 확인할 수 있습니다. 특히 'show dhcp lease' 명령어의 경우 디폴트 게이트웨이의 주소나 임대 관련 정보들도 볼 수 있습니다.


참고 도서: CCENT / CCNA ICND1 Official Exam Certification Guide
2010/08/11 18:04 2010/08/11 18:04
Posted
Filed under 네트워크

  아무 설정을 하지 않은 시스코 스위치나 라우터 제품에 접근하는 방법은 콘솔 포트를 이용하는 것 뿐입니다. 그렇기 때문에 설정 전에는 텔넷, SSH 같은 방법을 통해 스위치나 라우터에 접속할 수 없습니다. 물론 이것이 보안에는 도움이 되지만 관리적 측면에 있어서 불편한 것은 사실입니다. 게다가 기본적으로는 아무런 인증 절차 없이 접근할 수 있기 때문에 물리적으로 접근만 할 수 있다면 누구나 스위치나 라우터를 제어할 수 있다는 문제도 있기 때문에 인증에 대해 따로 설정해주는 것이 좋습니다.

  먼저 Privileged EXEC Mode로 넘어갈 때 인증을 요구하는 설정에 대해 알아보겠습니다. 처음 콘솔로 스위치나 라우터에 접근하면 User EXEC Mode 상태가 됩니다. 이 상태에서 'enable' 명령어를 내리면 Privileged EXEC Mode로 바뀝니다. 이 상태가 되면 장비를 제어할 수 있는 권한이 생깁니다. 아무 설정도 하지 않은 상태에서는 별다른 인증 절차 없이 Privileged EXEC Mode로 갈 수 있습니다. 만약 암호를 요구하게 만들고 싶으면 'configure terminal' 명령어를 사용해서 전역 설정 모드로 넘어가서 다음 명령어를 통해 설정할 수 있습니다.

Switch(config)#enable secret pass    <- 'pass'를 해쉬해서 저장
Switch(config)#enable password pass <- 'pass'를 평문으로 저장

  'pass' 부분에 원하는 패스워드를 넣으면 됩니다. 두 명령어 모두 User EXEC Mode에서 Privileged EXEC Mode로 넘어갈 때 패스워드를 요구하게 만드는 명령어임은 동일합니다. 차이가 있다면 위 명령어는 패스워드를 MD5 해쉬 알고리즘으로 해쉬하여 저장하고 아래 명령어는 평문으로 저장한다는 것입니다. 그러므로 아래 명령어를 사용한다면 이미 Privileged EXEC Mode에 있는 상태에서는 누구나 'show running-config' 명령어를 통해 패스워드가 무엇인지 확인할 수 있습니다. 만약 두 명령어를 모두 사용하면 'enable secret' 명령어로 설정한 패스워드만 적용됩니다.

  이제 콘솔로 접근할 때 패스워드를 요구하도록 만들어보겠습니다. 패스워드를 요구하는 방법은 총 2가지로서 하나는 패스워드만 요구하는 것이고 다른 하나는 유저명과 패스워드를 모두 요구하는 겁니다. 먼저 패스워드만 요구하도록 설정하는 방법을 보겠습니다.

Switch(config)#line console 0
Switch(config-line)#password pass
Switch(config-line)#login
  먼저 'line console 0' 명령어를 통해 '콘솔 라인 설정 모드'로 들어갑니다. 그 다음 'pass' 명령어 뒤에 설정할 패스워드를 적습니다. 마지막으로 'login' 명령어를 통해 콘솔 접속자에게 패스워드를 요구하게 만듭니다.

  유저명과 패스워드를 모두 요구하도록 설정하는 방법은 다음과 같습니다.
Switch(config)#line console 0
Switch(config-line)#username user password pass
Switch(config-line)#login
  텔넷으로 접근할 때 패스워드를 요구하도록 만드는 방법도 위와 동일하며 'line console 0'을 'line vty 0 15'로 바꿔주면 됩니다. 또한 텔넷은 콘솔과 다르게 패스워드를 설정하지 않으면 접속 자체를 할 수 없습니다. 'line vty 0 15'라는 명령어는  vty(Virtual Terminal: 터미널 에뮬레이터를 뜻하는 예전 이름) 라인 0번~15번까지 총 16개의 세션을 동시에 허용한다는 의미입니다. 그런데 'show running-config' 명령어를 통해 설정을 확인해보면 이상하게도 'line vty 0 15'로 설정했던 항목이 'line vty 0 4'와 'line vty 5 15'로 나눠져 있음을 확인할 수 있습니다. 이것은 옛날 버전의 IOS(Internetwork Operating System-시스코 제품 운영체제)에는 vty가 0번부터 4번까지만 있었으며 향후 나머지가 추가됐기 때문에 2개의 vty 라인으로 나눠져 보이는 겁니다.

  그런데 중요한 점은 텔넷의 경우 위 설정만으로는 접속만 되고 'enable' 명령어는 쓸 수 없다는 것입니다. 접속 후 'enable' 명령어를 쓰기 위해서는 enable 패스워드가 걸려 있어야 합니다. 그러므로 텔넷을 통해 원격으로 스위치나 라우터에 접속해서 제대로 이용하려면 vty 접속 패스워드와 enable 패스워드를 모두 설정해야 합니다.

  또한 당연히 텔넷이나 SSH로 스위치나 라우터에 접속하려면 IP도 설정해야 합니다. 특히 스위치의 IP 설정 방법은 독특하기 때문에 미리 알아두도록 합시다.

  텔넷과 달리 전송하는 데이터를 모두 암호화해서 보내는 SSH는 앞서 설명한 콘솔, 텔넷 방식보다 설정이 더 복잡합니다. 또한 지금까지는 패스워드만 설정했었지만 SSH는 유저명도 설정해줘야 합니다. 유저와 패스워드를 인증하는 방법은 2가지로 로컬 장비 내에 정보를 저장하는 방법과 AAA 서버(Authentication, Authorization, Accounting server)라는 외부 인증 서버를 이용하는 방식이 있는데 여기에서는 로컬 장비에 저장하는 방식만 알아보겠습니다. 아래는 SSH 설정을 하는 방법을 순서대로 나열한 것입니다.
  1. 라인 설정 모드에서 'login local' 명령어로 접속시 유저명을 요구하도록 만든다.
  2. 라인 설정 모드에서 'transport input ssh' 명령어로 텔넷과 SSH 접속 시도를 받아들이도록 만든다. 기본 값은 'transport input telnet'이기 때문에 이 설정을 하지 않으면 외부로부터 들어온 SSH 접속 시도를 무시한다. CCNA 공식 교재에는 'transport input telnet ssh' 명령어로 텔넷과 SSH 모두 접속을 받을 수 있다고 되어 있지만 패킷 트레이서 시뮬레이터에서는 불가능한 것을 확인.
  3. 만약 라우터의 이름이 디폴트 이름이라면 전역 설정 모드에서 'hostname name' 명령어로 이름을 바꿔준다. 디폴트 이름인 상태에서는 키를 생성할 수 없다.
  4. 전역 설정 모드에서 'username name password pass' 명령어로 유저명과 패스워드를 설정한다. 필요한 만큼 사용하여 여러 유저를 추가할 수 있다.
  5. 전역 설정 모드에서 'ip domain-name name' 명령어로 DNS 도메인을 설정한다.
  6. 전역 설정 모드에서 'crypto key generate rsa' 명령어로 공개 키와 비밀 키를 생성한다.
  위 과정을 실제 적용하면 아래와 같습니다.
Router#configure terminal
Router(config)#line vty 0 15
Router(config-line)#login local
Router(config-line)#transport input ssh
Router(config-line)#exit
Router(config)#hostname R
R(config)#username cisco password cisco
R(config)#ip domain-name test.com
R(config)#crypto key generate rsa
  지금까지의 설정으로도 인증 기능이 정상으로 작동하지만 'show running-config' 같은 명령어로 설정 내용을 보면 'enable secret pass' 명령어로 설정한 패스워드를 제외한 모든 패스워드가 평문으로 저장된 것을 볼 수 있습니다. 전역 설정 모드에서 'service password-encryption' 명령어를 사용하면 평문으로 저장된 모든 패스워드가 암호화됩니다. 이 명령어가 설정되어 있으면 이후 설정하는 모든 패스워드들도 자동으로 암호화되어 저장됩니다. 'no service password-encryption' 명령어를 사용해도 기존에 설정된 패스워드들은 암호화된 상태로 유지되며 패스워드를 바꿀 때 평문으로 저장됩니다.

  참고로 'show running-config' 같은 명령어로 설정 내용을 보다 보면 아래와 같은 몇 가지 형식의 패스워드 설정 상태를 보실 수 있습니다.
enable password cisco   <-- 평문 저장
password 0 cisco   <-- 평문 저장
enable secret 5 $1$mERr$ZqHM/gUoQmKsxk7GZ4Y2E/   <-- MD5 해쉬 저장(보안 수준 강력)
password 7 08710C4F0B1A   <-- 일반 암호화 저장(보안 수준 취약)
  평문으로 저장된 패스워드들은 그 앞에 숫자 '0'이 있거나 아무 숫자도 없는 것을 볼 수 있습니다. 'enable secret pass' 명령어로 설정한 패스워드는 앞에 숫자 '5'가 있는 것을 볼 수 있는데 이것은 MD5 해쉬 알고리즘을 이용한 해쉬 값임을 뜻합니다. 해쉬 함수는 역함수가 존재하지 않기 때문에 사실상 패스워드를 복호화하는 것이 불가능하므로 보안 강도가 높습니다. 마지막으로 'service password-encryption' 명령어 등으로 암호화된 패스워드들은 앞에 숫자 '7'이 있습니다. 이 암호화에 사용된 알고리즘은 취약한 알고리즘이라서 패스워드를 쉽게 복호화할 수 있습니다. 그런데 MD5 해쉬 알고리즘은 'enable secret pass' 명령어를 통해서만 적용할 수 있기 때문에 일반 패스워드는 숫자 '7'의 암호화만 가능합니다.

  패스워드를 변경할 때는 기존의 패스워드를 삭제할 필요 없이 그냥 이전에 패스워드를 설정할 때랑 같은 명령어에 패스워드만 새롭게 주면 됩니다. 또한 패스워드를 삭제할 때는 설정했을 때 썼던 명령어 앞에 'no'만 붙여주면 되며 뒷부분에 패스워드를 적을 필요가 없습니다. 예를 들어 'username cisco password abc'라는 패스워드 항목이 있다면 지울 때는 'no username cisco'라고만 써주면 됩니다.


참고 도서: CCENT / CCNA ICND1 Official Exam Certification Guide
2010/08/09 15:51 2010/08/09 15:51
Posted
Filed under 네트워크
허브라는 장비는 받은 프레임을 그대로 자신에게 연결된 모든 장비에 전달합니다. 즉, 프레임의 헤더를 참조하지 않고 전기적인 신호를 그대로 연결된 모든 포트에 뿌립니다. 그렇기 때문에 허브는 OSI 모델을 기준으로 2계층 장비가 될 수 없습니다. 이에 반해 이번에 설명할 스위치라는 장비는 직접 프레임의 헤더를 읽고 분석하여 적절한 포트에만 프레임을 전달합니다. 본격적인 설명에 앞서 허브랑 스위치를 한마디로 비교하자면

  "허브가 그냥 커피라면 스위치는 T.O.P야"

  ......죄송합니다. 두 장비는 비슷하면서도 능력상으로 상대가 안 됩니다. 스위치는 자신과 연결된 장비의 MAC 주소를 학습하는데 이렇게 주소를 기록하는 공간을 스위칭 테이블(Switching Table)이나 브릿징 테이블(Bridging Table)이라고 부릅니다. 그렇다면 MAC 주소를 어떻게 학습할까요? 스위치는 자신에게 프레임이 왔을 때 어느 포트로 들어왔는지, 프레임의 헤더를 보고 출발지 MAC 주소는 어디인지를 살펴봅니다. 만약 출발지 MAC 주소가 자신의 테이블에 없다면 해당 MAC 주소가 어느 포트로 들어왔는지 테이블에 기록합니다. 그 포트에 그 프레임을 보낸 장비가 있다는 것을 학습하는 것이죠.

  보내려는 프레임의 목적지가 어느 포트에 있는지 이미 학습한 상태라면 해당 포트에만 프레임을 보냅니다. 이렇게 한 포트에서 온 프레임을 다른 포트로 전달하는 것을 Forwarding이라고 합니다. 그런데 출발지와 목적지가 같은 포트에 있는 경우가 있습니다. 이럴 때는 해당 프레임을 무시하며 이것을 Filtering이라고 합니다. 이런 일은 아래 그림과 같은 상황에서 발생합니다.

사용자 삽입 이미지

  그림의 상황에서는 PC0과 PC1이 서로 통신하는데 스위치의 도움이 전혀 필요 없습니다. 하지만 허브는 무식하므로 스위치에게 PC0과 PC1의 통신 내용을 그대로 전달합니다. 하지만 스위치는 자신의 한 포트 안에 PC0과 PC1이 모두 있다는 사실을 학습하므로 해당 프레임을 무시합니다.

  그렇다면 학습한 적이 없는 MAC 주소가 목적지로 적힌 프레임을 받으면 어떻게 할까요? 이럴 때는 마치 허브처럼 해당 프레임이 들어온 포트를 제외한 모든 포트에 프레임을 전달합니다. 어딘가에는 해당 MAC 주소를 가진 장비가 있을 거라고 기대하는 거죠. 이렇게 들어온 곳을 제외한 모든 포트에 프레임을 뿌리는 것을 Flooding이라고 합니다.

사용자 삽입 이미지

  스위치가 아무런 주소도 학습하지 않은 상태라는 가정하에 PC0이 PC1을 대상으로 프레임을 전송하면 스위치는 일단 PC0이 자신의 어느 포트에 연결되어 있는지 학습합니다. 그런데 PC1이 자신의 어느 포트에 있는지는 알지 못하므로 다른 모든 포트(PC2와 PC1)에 자신이 받은 프레임을 Flooding 합니다. PC2는 이 프레임을 무시하지만 PC1은 해당 프레임이 자신에게 온 것을 알고 그에 대한 응답으로 PC0에게 프레임을 보내겠죠? 스위치는 그 프레임의 출발지를 보고 PC1이 자신의 어느 포트에 있다는 것을 학습합니다. 이제 스위치는 PC0과 PC1이 어느 포트에 있는지 학습했기 때문에 두 호스트 간에 오가는 프레임을 다른 곳에 흘리지 않습니다.

  마지막으로 스위치가 학습한 각각의 엔트리에는 비활성 타이머(Inactivity Timer)라는 것이 있습니다. 일단 학습으로 엔트리가 생기면 해당 엔트리의 타이머를 0으로 설정합니다. 시간이 지날 때마다 타이머의 값이 올라가며 엔트리의 MAC 주소와 동일한 MAC 주소가 출발지로 적힌 프레임을 받으면 해당 엔트리의 타이머 값은 다시 0이 됩니다. 그렇기 때문에 가장 오랫동안 참조하지 않은 엔트리가 어떤 것인지 알 수 있습니다. 만약 테이블에 엔트리를 새로 추가할 공간이 없다면 비활성 타이머 값이 가장 높은 엔트리를 테이블에서 삭제하고 새로운 엔트리를 추가합니다.


참고 도서: CCENT / CCNA ICND1 Official Exam Certification Guide
2010/08/08 21:23 2010/08/08 21:23
Posted
Filed under 네트워크
충돌 도메인(Collision Domain)이라는 것은 이더넷 네트워크에서 장치들이 프레임을 전송할 때 서로 충돌할 수 있는 하나의 구역을 뜻합니다. 이것을 이해하기 위해서는 먼저 CSMA/CD(Carrier Sense Multiple Access with Collision Detection)라는 것을 알아야 합니다.

  여러 장치가 공유하는 하나의 회선에 2개 이상의 신호가 동시에 전송되면 신호가 중복되거나 충돌하여 쓰레기 데이터가 되버립니다. 그렇기 때문에 한 번에 하나의 장비만 회선을 통해 데이터를 전송할 수 있습니다. 이러한 일을 가능하게 해주는 알고리즘을 CSMA/CD라고 합니다. 이 알고리즘의 특징은 프레임을 전송하려는 장비는 회선에 아무 트래픽이 흐르지 않을 때까지 기다린다는 것과 충돌이 발생하면 그것을 일으킨 장비는 약간 동안 기다린 후에 다시 전송을 시도한다는 것입니다.

  이렇게 프레임을 보내면 그 프레임이 지나가는 동안 다른 장비가 프레임을 보내지 못하는 하나의 구간을 바로 충돌 도메인이라고 부릅니다. 근대의 이더넷 네트워크 상에서 충돌 도메인을 구분하는 일은 사실 매우 쉽습니다. 허브를 제외한 대부분의 장비는 충돌 도메인을 나눕니다. 아래의 그림을 봅시다.

사용자 삽입 이미지

  그림에서 원이 하나의 충돌 도메인을 나타내고 있습니다. 보시다시피 허브에 연결된 장비들은 트래픽을 모두 공유하고 있다는 것을 알 수 있습니다. 즉, 논리적으로 하나의 회선(=Bus)를 사용하고 있다고 보시면 되겠습니다. 예를 들어 첫 번째 그림에서 PC0과 PC1이 동시에 프레임을 보내려고 하면 충돌이 일어나고 두 PC는 서로 프레임을 전송하려고 눈치를 보며 잠시 동안 기다립니다. 반면 허브가 아닌 장비들은 각 연결마다 별도의 충돌 도메인을 가집니다. 충돌 도메인이 많으면 그 만큼 충돌이 발생할 가능성은 낮아집니다. 충돌 발생 가능성이 낮아진다는 것은 충돌로 인한 전송 지연 발생이 적어진다는 것이므로 네트워크의 성능이 증가함을 뜻합니다.

  하나의 충돌 도메인 속에 두 장비만 있는 것을 마이크로단편화(Microsegmentation)라고 부르는데 위의 예를 보면 중간에 허브가 끼지 않은 모든 구간은 모두 마이크로단편화된 구간이라고 할 수 있습니다. 이렇게 되면 두 장비 사이에 충돌이 생기지 않고 전이중(Full-Duplex) 통신을 사용할 수 있어 송신과 동시에 수신을 할 수 있습니다. 아까는 두 장비가 동시에 프레임을 못 보낸다고 해놓고 이제와서 어떻게 두 장비가 동시에 통신을 할 수 있냐고요? 그것이 가능한 이유는 나의 송신용 선이 반대쪽의 수신용 선과 연결되어 있고 나의 수신용 선이 반대쪽의 송신용 선과 연결되어 있기 때문입니다. 즉, 1:1로 연결된 상태에서는 두 장치가 동시에 송신한다고 해서 두 프레임이 같은 선 위에서 서로 만날 일이 없으며 송수신을 동시에 하므로 이론적으로 대역폭이 2배가 됩니다. 충돌 도메인이라는 것이 프레임이 서로 충돌할 수 있는 범위를 지칭하는데 서로 충돌할 일이 없는 두 장비 사이를 하나의 충돌 도메인이라고 하는 게 모순되어 있지만 그냥 그러려니 하고 넘어갑시다.


  지금까지 충돌 도메인에 관해 알아봤는데요. 이번에는 이름도 비슷한 브로드캐스트 도메인이라는 것에 대해서 알아보겠습니다. 브로드캐스트 도메인은 어떤 네트워크 안에 있는 한 장비가 브로드캐스트를 전송했을 때 그 브로드캐스트가 퍼지는 전체 범위를 뜻합니다. 브로드캐스트 도메인을 구분하는 것도 매우 쉽습니다. 브로드캐스트 도메인은 라우터만이 나눌 수 있습니다. 아까 봤던 네트워크 토폴로지에서 그대로 브로드캐스트 도메인을 나눠보겠습니다.

사용자 삽입 이미지

  보시다시피 브로드캐스트를 나눌 수 있는 것은 라우터 뿐입니다. 브로드캐스트 도메인의 수가 많으면 그 안에 있는 장비들은 더 높은 성능을 낼 수 있습니다. 그 이유는 브로드캐스트를 수신한 장비는 그 프레임을 처리해야 하며 그러기 위해서는 이더넷 카드가 컴퓨터의 CPU를 사용해야 하기때문입니다. 만약 200대의 일반 PC가 같은 브로드캐스트 도메인에 있다고 가정해봅시다. 각 PC들이 브로드캐스트를 하나씩 보낸다면 각 PC들은 199개의 프레임을 받아 CPU를 써서 프레임들을 조사하고 처리할 것입니다. 반면 100대의 PC만 있었다면 99개의 프레임만 처리했을 겁니다. 게다가 브로드캐스트 도메인의 크기가 작을수록 그 이더넷 망에 흐르는 브로드캐스트 프레임을 지켜볼 수 있는 장비의 수가 줄어들기 때문에 보안상으로도 이득이 됩니다.


참고 도서: CCENT / CCNA ICND1 Official Exam Certification Guide
2010/08/08 17:30 2010/08/08 17:30