2010년 7월 15일 목요일

윈도우 비스타, 7 환경에서 많이 보이는 LLMNR 프로토콜 정체는?

이전 포스팅에서 살짝 언급된 LLMNR 프로토콜에 대해서 소개해 볼까 한다.

LLMNR(Link Local Multicast Name Resolution)은 DNS 패킷 포맷형태로 로컬 링크상에서 호스트들의 이름을 조회하는데 이용되는 프로토콜이다. 윈도우 비스트, 윈도우 7, 윈도우 서버 2008 에 기본으로 포함되어 있다.
그렇기 때문에 같은 서브넷 상에 이런 호스트가 존재하면 LLMNR 프로토콜이 많이 나타난다. 윈도우 7 출시 이후로는 로컬 네트워크 상에서 패킷 캡쳐시 LLMNR 형태가 많이 보이는데, 그 많큼 앞서 언급한 운영체제가 증가하고 있는 것으로도 간접적 추측이 가능하다.

LLMNR은 UDP 5355 포트를 사용하며 멀티캐스트 주소이다.

IPv4 - 224.0.0.252 이고 맥 주소는 01-00-5E-00-00-FC
IPv6 - FF02:0:0:0:0:0:1:3 (이 주소는 줄여서 -> FF02::1:3 표현이 가능하다)

아래 그림은 와이어샤크에서 패킷 캡쳐된 것으로 주소를 확인할 수 있다.

LLMNR 의 헤더 포맷은 아래와 같다. DNS 의 헤더 포맷과 크게 다르지는 않다.
QR 은 Query/Response 로 1비트 필드를 사용하며 설정되어 있을 경우 LLMNR 의 응답,설정되어 있지 않을 경우 LLMNR 쿼리이다. OPCODE 는 4비트로 쿼리 타입의 형태를 가리킨다.

                                      1  1  1  1  1  1
        0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                      ID                       |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |QR|   Opcode  | C|TC| T| Z| Z| Z| Z|   RCODE   |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                    QDCOUNT                    |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                    ANCOUNT                    |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                    NSCOUNT                    |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
      |                    ARCOUNT                    |
      +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

세부적인 사항은 RFC 4795 를 살펴보기 바란다. 아래 이미지는 IPv6 의 LLMNR 세부 정보로 목적지 포트가 5355 임을 알 수 있고, Questions 필드가 1로 Set 되어 있다.

그런데, 이제 LLMNR 은 알겠는데. 왜 이게 사용되어야 하는 것일까?
IPv4 호스트에서는 네트워크 상 주변에 있는 컴퓨터 이름을 Resolving 하기 위해서 NetBIOS 를 이용하여 네임쿼리를 요청하는 메시지를 브로드캐스팅한다. 이때 노드상에 요청한 쿼리에 해당하는 호스트가 있다면 네임쿼리를 응답하게 된다. 이런 형태가 일반적인 네트워크 상에서 많이 보는 형태이다. 그런데, NetBIOS 가 IPv4 환경에서만 동작한다. 그러므로 양 환경에서 모두 이용될 수 있는 LLMNR 프로토콜이 요구되었다. 얻을 수 있는 이점에 대해서는 다음 글을 참고해 보길 바란다.


실 환경에서는 LLMNR 로 인한 네트워크 트래픽 폭주를 경험했다는 사례를 들었다.(초당 2만개) IPv4,IPv6 로 함께 요청되다 보니 Request 되는게 NetBIOS 보다 많은 경우가 있다. 만약 악성코드에 감염되었는데, 이것이 Name Query 가 많은 형태라면 아무래도 영향을 미칠수도 있을 것이다. 어찌되었든 이것은 참고하시고, 만약 LLMNR 을 중지하기 위해서는 다음과 같은 방법을 이용하면 된다.

<윈도우7의 경우>
제어판->네트워크 및 인터넷 -> 네트워크 및 공유센터 -> 고급공유 설정 -> 홈 또는 회사 선택 후
네트워크 검색 끄기를 설정.


[참고]
1. RFC 4795
http://tools.ietf.org/html/rfc4795
2. The Cable Guy - Link-Local Multicast Name Resolution
http://technet.microsoft.com/en-us/library/bb878128.aspx

댓글 없음:

댓글 쓰기