본문 바로가기

Network

MDNS (Multicast DNS)

반응형


근거리 네트워크에서 LAN에서 기기를 찾기 위한 방법.

주로 카페, 도서관, 공공기관내에 근거리 네트워크가 구성 되어 있을 때 찾을 수 있는 패킷.


인터넷에 접속하든 안하든 네트워크 안에 있는 기기들은 서로 식별되어야 한다.


알 수 없는 네트워크내의 호스트로 인한 브로드캐스트 패킷방출의 줄임을 이유를 들 수 있고, 


서로를 식별 해놓는게 네트워크 내에서 패킷을 어디로보낼지 바로 알 수 있기 때문에 효율성을 위해선 중요하다.


그 중 나는 그냥 특별한 이유는 없고 MDNS라는 프로토콜을 봤고 궁금해서 찿아 봤다.


Multicast Domain Name System(mDNS)는 zero configuration 없이 호스트 이름을 찾기 위해 사용하는 서비스이다.


 * 여기서 zero configuration은 사람손에 의한 조작없이, 또한 특별한 설정서버를 사용하지 않고 네트워크를 만드는 기법이다.

 * 장치를 zeroconf가 없는경우 네트워크 관리자가 DHCP나 DNS 서버를 설정할 필요가 있다.

 

 * zeroconf 는 3가지 기술을 기반으로 한다.


1. 네트워크 장치로의 네트워크 주소 할당

2. 컴퓨터 hostname의 자동 해석과 자동 배포

3. 프린터와 같은 네트워크 장치의 위치를 자동 감지


다시금 MDNS로 돌아가면,


Unicast Domain Name System 줄여서 DNS와 유사한 프로그래밍 인터페이스와 패킷 형식을 사용한다.


 * 애플의 Bonjour와 리눅스의 nss-mdns 서비스가 MDNS를 사용


전송할 때 자신의 호스트이름, IP 주소 등 자기 자신을 확인 할 수 있는 정보를 함께 전송한다.

같은 네트워크 상 멀티캐스트 채널에 있던 모든 호스트들은 이 정보를 수신해서 'mDNS 캐쉬'에 업데이트 한다.


mDNS 구조는 UDP 패킷.

UDP 포트는 5353을 사용.

IPv4 멀티캐스트 주소는 224.0.0.251 이고 IPv6 멀티캐스트 주소는 FF0::FB 이다.




ID (Transaction ID) 클라이언트가 보낸 요청과 수신한 응답의 일치를 확인하기 위해서 사용한다. 일종의 시퀀스

Flags : 패킷의 타입 "00 00" 질의 "84 00"은 응답




반응형

'Network' 카테고리의 다른 글

GNS3/장비/ASAv의 NAT 설정  (0) 2017.10.25
OSI 7 계층 정리  (0) 2017.08.23
Ethernet 설계시 고려사항  (0) 2017.03.31
VMware의 Bridge 설정 및 외부 연결 문제 해결  (1) 2017.03.27
거리벡터 라우팅 프로토콜  (0) 2016.12.21