■ 河南 郭建偉
編者按:對于DNS域名服務來說,大家都比較熟悉,DNS其實基于單播的UDP協議,使用的端口號是53,其主要功能是對域名進行解析,幫助用戶獲取實際的IP。DNS主要針對靜態IP發揮作用,很適用于傳統網絡。但是在有些情況下,網絡設備的IP是由DHCP服務器動態分配的,當移動設備接入物聯網絡后,其中的程序就會要發送廣播或者組播的方式,來探測網絡中相關設備的域名和IP信息,這就需要使用到mDNS技術。
mDNS(Multicast DNS,即多播DNS)可以在沒有傳統DNS服務器的情況下,使用組播的方法,讓網絡中的設備之間可以相互發現和發送數據,其使用的端口為UDP 5353。mDNS其實本基于單播的DNS服務的作用幾乎相同,其遵從DNS協議,使用現有的DNS信息結構和資源記錄類型。mDNS可以在IP和主機名之間雙向解析,更重要的是,利用mDNS技術,可以發現網絡中目標設備提供了哪些服務
mDNS使用的是D類的地址進行組播,具體的地址范圍從222.0.0.0到239.255.255.255,通常使用的組播地址為224.0.0.254。
mDNS是不能跨越網段的,只能工作在局域網內部,設備名稱必須以“.local”結尾,當開啟了mDNS服務后,當設備接入網絡后,會自動向局域網中的所有主機組播一個消息,告知自己的名稱和IP地址。其他使用了mDNS的主機也會進行應答,告知自己的域名和IP。
當需要使用目標主機提供的服務時,可以通過mDNS查詢對應主機域名的IP,目標設備收到報文后會以組播方式進行應答,告知自身提供的服務類型。在彼此應答過程中,其他的主機也會據此進行記錄,更新自身的DNS緩存信息。
對于某些企業來說,會基于mDNS進行來發,例如蘋果公司就在mDNS協議的基礎上開發了名為Bonjour的私有協議,在mDNS協議的基礎上進行了相應的擴展,可以在局域網中發現對應的蘋果設備。
使用Bonjour協議,設備之間可以自動組播各自的服務信息,并監聽其他蘋果設備的服務器信息,可以更加智能化的在局域網中發現所需的系統和服務。
當一個蘋果設備接入網絡后,會向全網通告自己的設備信息(例如域名,IP地址,在特定端口開放的服務,認證方式等),當某設備需要使用某種服務時,會向全網發起查詢,來探測是否存在自己所需的服務,并要求相關設備反饋其主機名和IP,以及服務類型和端口號等信息。
Bonjour支持的常用的應用包括AirPlay(提供視頻服務),iPhoto(圖片服務),Safari(瀏覽服務),iTunes(音頻服務)等。
例如,對于Bonjour查詢來說,在數據包會使用諸如“_raop._tcp.local”,“airp lay.tcp.local”之類的特定字符串,在通告數據包中顯示諸如“_roap”的協議類型和與之對應的端口號,以及主機名和IP等信息。
了解目標設備的開放的端口后,發起者就會和該端口建立TCP連接,來進行Apple私有的非標準的RTSP協商,這有些類似于HTTP協商,并在協商的端口上進行進行數據的傳輸。
如果網絡中存在諸如思科控制設備(例如無線控制器等)的話,那么情況就會發生變化。控制器會監聽網絡中所有mDNS的通告信息,并將其全部收集下來。這樣,當iPhone等設備發起查詢時,實際上是由控制器進行回應的。
在控制器的協調下,可以有效解決Bonjour協議無法跨網段的問題。正常情況下,Bonjour協議只能運作在一個VLAN的直連網絡中,因為組播是無法跨網的。
在控制器的幫助下,會將不同VLAN中的信息(例如目標設備的IP等)推送給客戶。有了這些信息,客戶就可以順利訪問其他VLAN中的設備提供的的服務了。更重要的是,控制器還可以根據實際情況,對客戶訪問進行有效控制。當多個設備分別提供不同的服務時,控制器可以使用授權的方法決定哪些服務可以提供給客戶使用,哪些服務是禁止提供給客戶的。這樣,大大提高了操作的安全性和靈活性。
這里就以實際的例子,來說明如何對客戶進行授權管理,使其只能發現和使用指定設備上的特定服務。例如在網絡中存在AP,WLC無線控制器,ISE等思科設備,對某個VLAN(例如VLAN 100)進行管控,在該VLAN中存在名為“SSID1”和“SSID2”的兩個熱點,分別連接智能電視和Apple平板設備。登錄到WLC控制器,在其管理界面工具欄上點擊“SECURITY”項,在左側點擊“AAA”→“RADIUS”→“Authen tication”項,在右側點擊“N ew…”按鈕,在打開窗口中的“Server IP Address(Ipv4/Ipv6)”欄中輸入ISE設備的管理口IP,在“Shared Secret”欄輸入其管理密碼。
在“Support for CoA”列表中選擇“Enable”項,激活CoA授權改變功能。這是為了適應ISE自動識別機制,當新設備接入后,可能剛開始并無有效識別,而將其分配到隔離網絡中。因為和自動識別關聯的掃描操作可能較慢,這樣當稍后將其識別后,ISE判斷其滿足入網條件后,會要求其重新認證,并發送COA信息修改授權,允許其正常接入網絡。點擊“Apply”按鈕保存配置。在左側點擊“RADIUS”→“Accounting”項,在右側輸入ISE的管理端口IP和管理密碼,激活審計功能。
在工具欄上點擊“WLANs”項,在列表中選擇“Create New”項,點擊“Go”按鈕,在“Type”列表中選擇“WLAN”項,輸入其名稱和SSID號(例如“SSID1”),點擊“Apply”按鈕,在其屬性窗口中的“General”面板中的“Status”欄中 選擇“Enabled”項將其激活,在“Security”面板中的“Layer 2”標簽中的“layer 2 Security”列表中選擇“WPA+WPA2”箱,激活該認證功能。在“Authentication Key Management”欄中選擇“PSK”項,在“PSK Format”欄中輸入預共享密鑰。
點擊“Apply”按鈕,創建該WLAN項目。同理,創建另一個WLAN項目,對應的SSID名稱為“SSID2”,在其屬性窗口中的“Security”面板中的“AAA Server”標簽中的“Server1”欄中輸入ISE設備的管理口IP。在“Advanced”面板中 的“Allow AAA Override”欄中 選 擇“Enabled”項,激活3A認證服務。在“DHCP Addr.Assignment”欄中選擇“Required”項,激活DHCP地址自動分配功能。在“NAC State”列表中選擇“ISE NAC”項,點擊“Apply”按鈕,保存保存配置信息。
登錄到ISE的管理界面,點擊工具欄中的“Administration”→“Netwo rk Devices”項。
在左側選擇“Network Devices”項。
在右側點擊“Generate PAC”按鈕,在打開界面中點擊“Add”按鈕,輸入設備的名稱(例如“Dev1”)。
這里針對的是無線控制器,在“IP Address”輸入其管理端口的IP地址。
在“RADIUS Authenticat ion Settings”面板中的“*Shared Secret”欄中輸入WLC設備的管理員密碼。點擊“Submit”按鈕提交操作。
點擊工具欄上的“Administr
ation”→“Indentities”項,點擊“Add”按鈕,分別創建名 為“guanli”和“User1”的用戶。

圖1 激活組播功能
在智能電視上搜索到名為“SSID”的熱點,輸入對應的密鑰加入進來。在Apple平板設備上搜索到名為“SSID2”的熱點,在認證窗口中輸入預設的賬戶(例如“guanli”)和密碼鍵入進來。在默認情況下,平板是無法發現智能電視以及其中的諸如AirPlay等服務的。在WLC控制器管理界面工具欄上點擊“CONTROLLER”項,在左側選擇“Multicast”項,在右側選擇“Enable Global Multicast Mode”,“Enable MLD Snooping”和“Enable IGMP Snooping”項,激活組播功能(如圖1)。在左側選擇“General”項,在右側的“Broadcast Forwarding”列表中選擇“Enabled”項,啟用廣播發送功能。
在“AP Multicast Mode”列表中選擇“Multicast”項,選擇AP組播模式,并輸入合適的組播地址(例如“239.1.1.1”)。 在“DNS Server IP”欄中輸入合適的DNS服務器地址,點擊“Apply”按鈕保存配置信息。在左側左側選擇“mDNS”→“Gereral”項,在右側選擇“mDNS Global Snooping”項,激活嗅探功能,可以讓設備探測到網絡中存在哪些服務。并且在發送請求時,控制器會對其進行回應。在“Server Name”欄中可以選擇所需的服務,包括AirTunes,Airplay,Googlecast,HP Photosmart Print,HomeSharing,Printer-IPP,Printer-LPD等。點擊左側的“mDNS”-“Domain Names”項,可以發現已經顯示電視設備。之后蘋果平板上忽略網絡并重新連接,就可以發現該設備了。
在左側點擊“mDNS”→“Profiles”項,在右側顯示名為“defaultmdns-profile”的默認配置項目。為了便于使用,這里創建自定義的配置文件。點擊“New…”按鈕,輸入自定義項目名稱(例如“Custprofile1”)項,在其屬性窗口(如圖2)中的“Service Name”列表中只選擇所需的服務(例如“Airplay”等),點擊“Add”按鈕將其添加進來。按照同樣的方法,可以添加多個服務。同理,可以創建其他的配置項目(例如“Custprofile2”),為其指定所需的服務。

圖2 mDNS授權管理窗口
為了實現授權管理,需要在ISE管理界面工具欄上點擊“Policy”→“Results”項。
在左側點擊“Authorization”→“Au thorization Profiles”項,在右側點擊“Add”按鈕。
在打開界面中輸入授權項目的名稱(例如“Auth1”),在“Advanced Attribtes Settings”面板中的第一行中的第二列中輸入“mDNS-pr ofile-name=Custprofile”,在第二行的第二列中輸入“role= Custprofile1”,授權了mDNS的配置文件為上述“Custprofile1”項目。
對應的,點擊ISE管理界面中的“Policy”→“Authorizatio n”項,創建對應的認證策略(例如名稱為“Auguanli”),將上述“Auth1”授權項目和“guanli”賬戶綁定起來。同理,可以創建其他的授權項目(例如“Auth2”),使其指向“Custprofile2”,同 時創建名為“Auyonghu”的認證項目,將“Auth2”授權項目和“user1”賬戶綁定起來。在WLC的管理界面工具欄上點擊“MONITOR”項,在左側點擊“Clients”項,在右側點擊上述平板設備,在其屬性窗口中的“General”面板中的“mDNS Profile Name”欄中顯示名為“Custprofile1”的授權項目。
經過上述操作,是能夠發現網絡的相關設備以及其提供的服務的。在有些情況下,出于安全性的考慮,希望對其進行更加深入的控制,例如只能讓客戶使用指定的服務。就需要使用控制策略加以實現。在左側點擊“mDNS”→“Policies”項,在右側選擇“mdns Plocy”項,激活控制策略功能。雖然WLC設備提供了默認的Policy策略,但是其無法滿足我們的實際需求。
在左側點擊“mDNS”→“mDNS Policies”項,在右側點擊“Add Group”按鈕,輸入新的Policy策略的名稱(例 如“Policy1”),在其屬性窗口中的“MAC ADDRES”欄中輸入目標設備(例如智能電視)的MAC地址,輸入其設備名稱,點擊“Add”按鈕將其添加到列表中。在“LOCATION TYPE”列表中可以選擇“AP Group”,“AP Name”,“AP Location”等項,來設置該設備所屬AP組/AP名稱以及AP的位置等信息。
在“Role name”欄 中輸入合適的授權項目(例如“Custprofile1”),這需要和在ISE中的授權配置信息一致。點擊“Apply”按鈕,保存策略信息。這樣,在規定的授權條件下,當存在多臺網絡時,設備客戶就只能發現和訪問指定的設備。
注意:在協議級別可以使用mDNS Profile進行控制,在設備級別可以使用mDNS Policy進行控制。