Overview
IP 통신에서는 크게 3가지 Unicast (one-to-one), Broadcast (one-to-all), Multicast (one-to-many) 방식 중의 하나를 이용해 통신한다. Multicast는 네트워크의 대역폭 이용을 최적화하고 시스템의 자원을 아끼도록 고안된 기술이다. 크게 두 가지 프로토콜이 사용되며 L2 네트워크에서 사용하는 Internet Group Management Protocol (IGMP)와 L3 네트워크에서 사용되는 Protocol Independent Multicast (PIM)이 그 예이다.
방식별 비교
먼저 살펴볼 방법은 Unicast를 이용한 streaming 서비스이다. Unicast를 이용할 경우 좌측의 Video server와 우측의workstation은 streaming이 되는동안 session을 형성하고 있어야 한다. 쉽게 말해서, 하나의 화살표를 10 Mbps라고 하면 R2까지는 50 Mbps의 대역폭이 사용된다. 만약 workstation F도 동일한 streaming 서비스를 이용한다면 사용되어지는 대역폭은 요청에 비례하여 증가한다.
[Unicast 방식]
앞선 Unicast의 방식을 해결하기 위해 생각해 볼 수 있는 방식은 directed boradcast를 통해서 하나의 stream만 서버에서 전송하는 방법이다. 사설을 덧붙이면 broadcast는 directed broadcast와 limited boradcast로 나뉜다. 로컬 네트워크에서 255.255.255.255의 주소로 브로드캐스팅 하는 것을 limited broadcast라 로컬 네트워크 밖에서 특정 내부 네트워크에 있는 호스트에게 보내는 경우를 directed broadcast라 하며 63.1.3.255와 같은 형태의 주소를 갖는다 (해당 subnet의 브로드캐스팅 주소). 언뜻 보면 Unicast의 방식보다 효율적으로 보이지만 두 가지 단점이 존재한다. 첫째는, 시스코 라우터에서는 directed broadcast는 기본값으로 disable 되어있다. 그 이유는 해당 기능을 enable하는 경우 smurf 공격이라고 하는 DDoS 공격에 노출되게 된다.
[Broadcast 방식]
smurf 어택은 ICMP 프로토콜의 특성을 이용한 공격 방법이며 아래 그림을 보면 이해하기 쉽다. 예를 들어, 내 PC에서 ping을 구글의 public DNS인 8.8.8.8 보내면 (ICMP echo request) 해당 서버는 ICMP echo reply를 내 PC로 보낸다. Attacker는 src의 IP는 우측에 있는 Target으로 spoofing 한 후, dst IP는 해당 네트워크의 브로드캐스팅 주소를 사용해 ping (ICMP echo request)을 보낸다. 그럼 echo request를 받은 모든 호스트들은 Target으로 수 많은 echo reply를 전달하고 결국은 Target은 뻗어버리게 되는 것. 이러한 이유로 시스코 라우터는 기본적으로 directed broadcast는 disable 되어있다.
브로드캐스팅을 이용한 스트리밍 서비스에서 두 번째 단점은 workstation F는 불필요한 패킷을 처리해야 한다는 것. 브로드캐스팅 패킷을 받으면 NIC에서 해당 패킷을 drop하는 것이 아니라 CPU까지 보내야 되기에 resource 사용 측면으로는 불필요한 낭비가 발생된다.
[Multicast 방식]
멀티캐스팅을 이용하게 되면 아래 그림과 같이 링크에는 하나의 stream만 흐른다. 이 stream은 group address를 이용하고 서버에서는 하나의 stream session만 관리하게 되며 end device에서 선택적으로 해당 stream을 수신할지 여부를 결정하게 되는 구조이다. 앞서 설명한 unicast 방식은 동일한 stream이라 할지라도 one-to-one 구조로 서비스하기에 사용되어지는 대역폭은 end device에서 stream을 요청하는 건수에 비례해 증가한다. 또한, broadcast 방식은 불필요한 resource 사용과 해킹 공격에 노출되어 있다. multicast 방식을 사용하게 될 경우 이 resource 낭비 역시 보완이 된다. NIC 카드에서 multicast 트래픽 처리 여부를 결정할 수 있기 때문에 workstation F는 multicast 트래픽을 수신하게 되면 바로 drop한다. (참고: IGMP snooping 기능을 사용하면 workstation F는 multicast 트래픽 자체를 수신안함)
Multicast Addressing
Internet Assigned Number Authority (IANA)에서는 IP Class D를 멀티캐스팅을 위한 IP 주소로 지정했다 (224.0.0.0/4).
이 중에서도 크게 두 가지 control block은 알아둘 필요가 있다.
[Local network control block (224.0.0.0/24)]
broadcast 도메인 밖으로 패킷이 전달되지 않고 protocol을 control하기 위한 트래픽을 사용할 때 해당 서브넷의 지정된 IP가 사용된다. 간단한 예로 서브넷 내 모든 호스트들 (224.0.0.1), 서브넷 내 모든 라우터들 (224.0.0.2)이 있다.
[Internetwork control block (224.0.1.0/24)]
반대로 protocol control traffic이 인터넷으로 forwarding 될 수도 있는 경우 사용되는 멀티캐스트 IP 블록이다. 쉽게, NTP (224.0.1.1)를 떠올리면 된다.
[Source Specific Multicast block (232.0.0.0/8)]
SSM이 사용하는 주소 범위다. 조금 사설을 붙이면 멀티캐스트의 서비스 모델은 Any-Source Multicast (ASM)과 SSM 두 가지가 있다.
1) ASM: Multicast streaming을 이용하는 host는 multicast traffic을 수신할 때 multicast source의 위치를 상관하지 않는다. 다시 말하면, 멀티캐스트 source가 Rendezvous Point (RP)로 모이면 멀티캐스트 host는 이 RP를 통해 multicast traffic을 전달하거나 수신할 수 있는 것이다. 즉, host가 multicast router로 multicast traffic 수신을 위해서 request를 보낼때 multicast source를 명시하지 않는다. 따라서, multicast routing table에서 (*, G)로 표현된다.
2) SSM: Multicast에 대한 source의 위치를 host들이 아래 그림처럼 알고 있는 경우이다. 즉, host는 multicast traffic reqeust를 보낼 때, multicast source를 명시적으로 지목하며 routing table에는 (S, G)로 표현된다.
위의 두 그림에서 보는 것 처럼 ASM과 SSM 서비스 모델에는 각각 장단점이 존재한다. ASM에서는 RP가 필요하고 RP간의 정보 교류를 위한 별도의 프로토콜이 필요하다 (MSDP). IGMPv2를 일반적으로 사용한다. 반대로 SSM에서는 host에서 source를 지정하기 때문에 RP가 필요없고 IGMPv3를 사용한다. 관리적인 측면으로 보면 SSM에서는 채널이 증가할 때마다 운영자가 source list를 추가해주어야 하는 반면 ASM에서는 RP에서 traffic을 수신하기 때문에 운영자 측면에는 별다른 설정이 필요없다.
[GLOP block (233.0.0.0/8)]
AS별로 부여되는 고유주소이다. 233.x.y.0 ~ 233.x.y.255 가 전체 주소가 되는데 AS번호에 따라서 x와 y값이 변하게 되는 것이다. 예를 들어, AS 5662라 가정해보자. 5662를 16진수로 표기하면 161E가 되는데 이 것을 x와 y octect으로 변환해주면 233.22.30.0/24가 된다.
[Administartively scoped block (239.0.0.0/8)]
10.0.0.0/8과 같이 사설망에서 사용할 수 있는 multicast IP 주소 대역이다. 앞서 설명한 SSM이 232.0.0.0/8의 대역으로 예약이 되어있으나 통산적으로 239.0.0.0/8을 사용한다.
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=nackji80&logNo=221036403927
CCNP and CCIE Enterprise Core ENCORE 350-401 Guide
'<개인공부> - IT > [Network&Security]' 카테고리의 다른 글
멀티캐스트 정리 #3 (PIM) (0) | 2022.01.08 |
---|---|
멀티캐스트 정리 #2 (IGMPv2 & IGMPv3) (0) | 2022.01.06 |
스패닝 트리 프로토콜 (Spanning Tree Protocol, STP) (0) | 2021.10.15 |
Port-security overview (0) | 2021.06.30 |
게이트웨이 이중화 (HSRP) #1 (4) | 2021.04.27 |