2013-07-18 31 views
6

tôi đang tìm cách để cải thiện vào thư viện Go cho mDNS: https://github.com/davecheney/mdns/bán phá giá Avahi & Bonjour, DNS-SD Khu tập tin

Tôi đã nói chuyện với tác giả, người chỉ đơn giản nói: "Tôi đã nhận nó đến một điểm nơi nó làm việc cho tôi ", và đó là tốt, cũng trong tinh thần của nguồn mở.

Ông đã đề cập một số vấn đề về khả năng tương tác với các công cụ khám phá Avahi, Bonjour và dns-sd không tìm thấy các dịch vụ mà ông đã xuất.

Tôi đang tìm hiểu xem bản ghi nào được Avahi xuất bản khi thực hiện dịch vụ đơn giản với cổng và tên đơn giản.

tôi đã mong đợi một phiên bản thích hợp:

dig @localhost .local -t AXFR 

Có thể có Avahi xuất khẩu đó là khu vực, nhưng nó đã không làm việc cho tôi (! Cue "bạn đang làm nó sai") - Tôi muốn để hiểu các bản ghi tối thiểu được xuất bởi dịch vụ Avahi điển hình và kiểm tra tương tự từ việc xuất khẩu tự động Lee-Hambleys-Macbook.local từ việc triển khai Apple trên sổ ghi chép của tôi mà tôi có thể cải thiện hỗ trợ Go lang cho mDNS.

Khi người khác đang làm việc với Avahi/Bonjour/mDNS, họ sử dụng công cụ gì để khai thác và kiểm tra xem mọi thứ có hoạt động như mong đợi không?

Các loại folks của #avahi là loại đủ để cho tôi mũi sau:

killall -USR1 avahi-daemon 

Đó gây avahi-daemon để đổ nó khu tập tin vào syslog.

Nhưng lý tưởng tôi muốn biết làm thế nào tốt nhất để truy vấn các máy chủ, tcpdump cũng có vẻ đầy hứa hẹn, nhưng nó vẫn chỉ hiển thị hồ sơ mà có được lookedup, không một bãi chứa đầy đủ về tất cả mọi thứ đó là trong vùng:

sudo tcpdump dst port 53 
Password: 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 
listening on en0, link-type EN10MB (Ethernet), capture size 65535 bytes 
09:43:28.883763 IP 192.168.178.41.50916 > resolver2.opendns.com.domain: 50479+ A? e3191.c.akamaiedge.net. (40) 
09:43:29.046201 IP 192.168.178.41.61989 > resolver2.opendns.com.domain: 55378+ PTR? 251.0.0.224.in-addr.arpa. (42) 
09:43:29.123784 IP 192.168.178.41.56659 > resolver2.opendns.com.domain: 26471+ A? p05-btmmdns.icloud.com.akadns.net. (51) 
09:43:29.819277 IP 192.168.178.41.53504 > resolver2.opendns.com.domain: 32010+ PTR? 220.220.67.208.in-addr.arpa. (45) 
09:43:47.379251 IP 192.168.178.41.50916 > resolver2.opendns.com.domain: 50479+ A? e3191.c.akamaiedge.net. (40) 
09:43:55.900406 IP 192.168.178.41.60511 > resolver2.opendns.com.domain: 32846+ AAAA? lc22.prod.livefyre.com. (40) 
09:44:04.115159 IP 192.168.178.41.50916 > resolver2.opendns.com.domain: 50479+ A? e3191.c.akamaiedge.net. (40) 
^C 
7 packets captured 
3187 packets received by filter 
0 packets dropped by kernel 
+2

mDNS hoạt động trên cổng 5353 do đó bạn phải lọc cho điều đó, không phải cổng 53. :-) –

+2

Tôi không nghĩ rằng chuyển vùng được cho là hoạt động với mDNS. Tôi nghĩ rằng bạn đang nhầm lẫn mDNS/DNS-SD với Avahi một chút, có lẽ? Có thể mất một vài giờ để lướt qua các RFC: http://tools.ietf.org/html/rfc6762 và http://tools.ietf.org/html/rfc6763 –

+0

Cảm ơn, tôi gần như chắc chắn đã trộn lẫn điều khoản lên, theo như tôi biết dns-sd dự kiến ​​các bản ghi DNS sẽ được xuất sang DNS chuẩn và mDNS hoạt động trên một cổng khác, nhưng các bản ghi trông giống như bản ghi DNS? –

Trả lời

1

mDNS chỉ đơn giản là không hỗ trợ chuyển vùng do cách thức giao thức hoạt động. Theo như tôi có thể nói có hai cách tiếp cận có thể có:

1) Thử phương pháp bạo lực, bằng cách truy vấn đích (máy chủ/mạng con). Bạn có thể làm điều này bằng cách đào, chỉ cần gửi truy vấn đến địa chỉ multicast và truy vấn cho mục tiêu của bạn, ví dụ.

đào -x 192.168.0.10 -p 5353 @ 224.0.0.251

Ngoài ra còn có một vài kịch bản sẵn sàng và công cụ hỗ trợ cho việc liệt kê mDNS mục tiêu.Một số ví dụ bao gồm

2) Buộc daemon để đổ khu tập tin của nó (hoặc cài đặt). Bạn đã phát hiện ra rằng Avahi tuân

killall -USR1 avahi-daemon

của Apple Bonjour bao gồm mDNSResponder mà không thực hiện thông tin múi bán phá giá. Tuy nhiên bạn có thể thêm ghi nhiều hơn cho lợi ích tương tự

tín hiệu A SIGUSR1 Toggles đăng nhập bổ sung, với cảnh báo và thông báo kích hoạt theo mặc định:

% sudo killall -USR1 mDNSResponder 

Khi khai thác gỗ này được kích hoạt, người dùng có thể bổ sung sử dụng syslog (1) để thay đổi bộ lọc nhật ký cho quy trình. Ví dụ, để kích hoạt tính năng đăng nhập mức khẩn cấp - Debug:

% sudo syslog -c mDNSResponder -d 

tín hiệu A SIGUSR2 Toggles gói logging:

tín hiệu
% sudo killall -USR2 mDNSResponder 

Một SIGINFO sẽ đổ một bản tóm tắt bản chụp của tình trạng nội đến/var/log/system.log:

% sudo killall -INFO mDNSResponder 

Ngoài ra, Wireshark có thể được sử dụng để d lỗi giao thức ebug. Điều này là đủ để giải quyết các lỗi khả năng tương tác.

+0

Tôi đã không thử điều này, nhưng tất cả dường như là lời khuyên vững chắc, đặc biệt là 'dig'ing địa chỉ multicast –

Các vấn đề liên quan