[ACSA 교육#19] Domain

지난 포스팅에서 AOS-CX 스위치의 기본 명령어들에 대해 확인해보았습니다.

이번에는 Layer 2 개념에 대한 이해를 높이기 위한 설계, 배포, 구성 및 트러블슈팅에 대해 알아보고자 합니다.
가장 먼저로 Layer 2의 도메인에 대한 개념을 알아보도록 하겠습니다.

Collision Domain

Alice와 Bob이 대화를 하고 있다고 생각해볼까요.

Alice는 하고 싶은 말이 있어도, Bob이 얘기하는 동안 귀를 기울이며 말하는 것을 듣고 자신의 차례를 기다립니다.
만약 Alice가 하고 싶은 말을 바로 말해 버리면 Bob의 목소리와 섞이면서 서로 무슨 말을 하는지 이해하기 어려울 것입니다.

둘이 각자 말하면서 서로의 목소리가 충돌하는 것을 깨닫게 되면 멈추고 이렇게 말할 것입니다.

Bob: “미안해요. 말씀하세요”

Alice: “아니요. 제가 죄송합니다. 계속 말씀하세요.”

이런식으로 둘 다 물러섰다가 다시 대화를 시작할 것입니다.

이더넷 네트워크도 마찬가지입니다. 특정 세그먼트 상에서 하나의 이더넷 호스트만이 한 번에 데이터를 전송할 수 있습니다. 이것은 모든 NIC에서 실행되는 알고리즘, CSMA/CD(Carrier Sense Muliple Access / Collision Domain)에 의해 제어됩니다. 이것은 위의 Alice와 Bob의 대화 예시와 유사하게 동작합니다.

여러 명의 사람이 하나의 방 안에 있을 때 언제든 우리는 원할 때 말할 수 있습니다.
하지만, 우리는 말하기 전에 다른 사람이 혹시 말하고 있는지 확인합니다.
이것이 이더넷의 Carrier Sense 메커니즘과 동일하다고 생각하면 됩니다.
이더넷 카드는 현재 전송하고 있는 NIC를 식별하는 “Carrier Sense”의 상태를 감지합니다.

두 장치가 동시에 전송하면 전기신호가 충돌하게 되어 손상됩니다. 이것을 “Collision“이라고 얘기합니다.
이 상태가 감지되면 각 스테인션은 물러나고 다시 시도하게 됩니다.
앞서 이야기 했던 Alice와 Bob이 서로 얘기하던 상황을 깨닫고 멈추는 것과 같은 상황인 것입니다.

이더넷 충돌은 네트워크에 허브를 사용할 때 발생합니다. 허브는 디지털 신호 1과 0을 수신하고, 바로 다른 모든 포트에서 반복하는 Layer 1 장치입니다. 이 문에 허브는 다중 포트 리피터(Multi-port Repeater)라고도 불립니다.

16포트 허브에 연결된 모든 16개 장치는 동일한 Collision Domain에 위치합니다. 한 장치가 전송하면 나머지 15개의 다른 장치들은 모두 대기해야 합니다. 만약 두 개의 호스트가 동시에 전송하면 충돌(Collision)이 발생하게 되고, 모두가 물러나고 몇 밀리초(ms)동안 대기했다가 다시 시도하게 됩니다.

다행히도 요즘에 허브는 사용하지 않는 장치입니다. 많은 곳에서 Layer 1의 허브 대신 좀 더 지능적인 Layer 2 스위치로 대체되고 있습니다. 정상적인 상황에서 제대로 배포되고 구성되어 있는 스위치의 경우에는 충돌이 발생하지 않습니다.

※ 마찬가지로, Wi-Fi 역시 CSMA / CA (Carrier Sense Multiple Access / Collision Avoidance)라는 알고리즘을 사용합니다. 이는 이더넷의 CSMA/CD와 유사하지만, 충돌을 사전에 방지하기 위한 별도의 매커니즘이 추가되어 있습니다.

동일한 무선 액세스포인트(AP) 채널에 연결된 모든 기기는 동일한 충돌 도메인(Collision Domain)에 있기 때문에 한 번에 하나만 전송할 수 있게 됩니다.

Collision Domain과 네트워크 성능

Collision Domain을 이해하면 네트워크 성능을 최적화 할 수도 있습니다.

방 안에 두 명이 있을 때와 8명, 10명, 50명이 있을 때와 비교해볼까요? 당연히 두 명이 있을 때 대화가 빠르고 쉽고 효율적입니다. 사람이 많아질수록 여러 대화가 발생하면서 산만해지고 “충돌(Collison)”이 발생할 가능성이 높아집니다. 서로의 커뮤니케이션을 개선하고 사람들이 너무 오래 기다리지 않도록 다른 방으로 분리할 수 있습니다.

동일하게, 8포트 허브가 있다고 가정해볼까요? 한 호스트가 전송하는 동안 나머지 일곱개의 호스트는 대기해야 합니다. 48포트 허브라면 47개의 호스트가 대기해야 합니다. 이런 상황에서 여러 개의 도메인(Collision Domain)으로 분리하는 것이 좋을 것입니다.

물론 앞서 얘기한대로 Layer 1 장치인 허브는 더 이상 사용하지 않고 Layer 2 스위치로 대체되고 있어
정상적인 상황에서 Collision은 발생하지 않을 것입니다.

마찬가지로 1개의 AP가 있다고 생각해볼까요? 출력을 최대로 설정하면 커버리지 영역을 늘릴 수 있고 그 만큼 비용을 절약할 수 있을 것입니다. 하나의 AP로 주변 75명 모든 사람에게 무선 서비스를 제공합니다. 그러나 1개의 단말이 전송하는 동안 나머지 74명은 기다려야 하고, 사람들은 무선이 느리다고 불평할 것입니다.

문제를 해결하기 위해서 더 많은 AP를 구입하고 출력을 낮게 설정한 다음 각각 고유한 채널로 설정합니다.
각 AP에 25명 정도만 연결하도록 설정합니다. 각각의 AP는 서로 다른 충돌 도메인(Collision Domain)입니다. 이제 3명이 동시에 전송할 수 있고, 무선 네트워크의 성능은 크게 향상될 것입니다.

무작정 AP에 가능한 한 많은 사용자를 붙이기보다 하나의 AP에 적정의 숫자(10~25)만 연결하도록 하여 성능을 최적화 하는 것이 바람직합니다.

Broadcast Domain

브로드캐스트 도메인(Broadcast Domain)은 모든 장치에서 브로드캐스트 프레임을 수신하고, 응답할 수 있는 동일한 네트워크에 있는 장치 그룹입니다.

앞서 설명했던 것처럼, 브로드캐스트는 하나의 장치가 다른 모든 장치와 연결하는 통신 유형입니다.

  • Layer 2에서는 FF:FF:FF:FF:FF:FF
  • Layer 3에서는 255.255.255.255

를 사용하여 브로드 캐스트 메시지를 전달합니다.

Layer 2 스위치는 브로드캐스트를 보낸 포트(ingress port)를 제외하고 모든 포트로 브로드캐스트 프레임을 전달합니다.

위 그림에서 Host A는 브로드캐스트 주소를 전송합니다.

안녕하세요! 혹시 누가 IP주소 10.1.1.1을 갖고 있습니까?

Host A

스위치는 다른 모든 포트로 전달하기 때문에 Host B와 Host C 모두 이 메시지를 받습니다. 하지만, 브로드캐스트 도메인 2에 위치한 호스트는 이 메시지를 받을 수 없습니다. (서로 다른 도메인이기 때문)
마찬가지로, Host D가 브로드캐스트 메시지를 보내도 브로드캐스트 도메인 1의 호스트는 받을 수 없습니다.

이제 이 두 개의 네트워크를 하나의 인터네트워크(Internetwork)로 연결해보겠습니다.
어떤 장치를 사용할까요? 네. 라우터를 사용합니다. 이제 두 네트워크가 연결되었습니다. 그렇지만, Layer 2 스위치와 달리 Layer 3 라우터는 브로드캐스트를 전달하지 않습니다.

즉, 브로드케스트 도메인의 경계, 가장자리(Edge)를 정의합니다. 따라서 두 개의 네트워크가 서로 연결이 되더라도 브로드캐스트 트래픽은 이전과 동일하게 이동합니다. 도메인 1의 호스트는 도메인 1에서 발생하는 브로드캐스트 메시지를 수신하지만, 도메인 2의 브로드캐스트 트래픽은 받지 않습니다. 하지만, 네트워크가 연결되었기 때문에 도메인간 유니캐스트, 멀티캐스트의 트래픽으로 통신할 수 있습니다.

브로드캐스트 도메인과 네트워크 성능의 연관 관계

라우터를 제거하고 네트워크를 단순화하지 않는 이유는 무엇일까요? 단일 브로드캐스트 도메인을 통해 모든 호스트를 함께 연결하게 되면 라우터 구매할 필요도 없고 비용이 절감될텐데 말이죠.

이것은 네트워크 성능의 문제와 연결됩니다.
Collision Domain과 마찬가지로 대형의 브로드캐스트 도메인은 성능 문제를 야기합니다.

유니캐스트 트래픽의 경우 Host A에서 Host F로 통신할 때, 두 스테이션만 패킷을 처리하게 됩니다.
반면에, 브로드캐스트 프레임에서는 모든 스테이션이 해당 트래픽을 처리해야 합니다. 스위치는 모든 포트(ingress 포트 제외)로 브로드캐스트 프레임을 전달해야 합니다. 이는 스위치의 사용량과 부하를 높이고, 대역폭 사용량도 늘어나게 됩니다. 모든 스위치 링크는 모든 브로드캐스트를 전달해야만 하기 때문입니다.

이를 이용하여, 해커는 프로그램을 통해 수백만개의 브로드캐스트 패킷을 생성하고 네트워크상에 흘려서 정작 필요한 네트워크 트래픽을 위한 리소스를 없애 버리기도 합니다. 이를 서비스거부(DoS, Denial of Service)공격이라고 합니다. 따라서, 브로드캐스트 도메인이 작을 수록 네트워크 성능이 향상됩니다.

자, 이렇게 도메인에 대한 내용을 이해했으니, 이제 VLAN에 대해 알아보도록 하겠습니다.