本申請涉及通信,尤其涉及一種通信方法及裝置。
背景技術:
1、跨設備鏈路聚合(英文:multichassis?link?aggregation,簡稱:mlag)是指將兩臺物理設備在聚合層面虛擬為一臺網絡設備,進而實現跨設備鏈路聚合。mlag提供了設備級冗余保護和流量負載分擔。
2、參見圖1,圖1為現有mlag組網模型示意圖。在圖1中,網絡設備(device)1與網絡設備2之間形成負載分擔,共同進行業務流量轉發。當mlag組網中的任一一臺網絡設備故障時,業務流量可快速切換至另一臺網絡設備,保證業務的正常運行。
3、作為一種應用場景,mlag組網可部署域名系統(英文:domain?name?system,簡稱:dns)代理技術。形成mlag組網中的兩臺網絡設備均可部署為dns代理或者dns透明代理。如圖1所示,當dns客戶端發起dns請求host.com域名時,dns請求報文到達交換機(switch)b上。由于switchb與網絡設備1、網絡設備2之間的鏈路聚合形成負載分擔,因此,dns請求報文可被哈希至任意一臺網絡設備中。
4、當網絡設備1接收到dns請求報文后,網絡設備1通過switcha向dns服務器發送dns請求報文。dns服務器對dns請求報文進行處理,并向switcha發送dns應答報文,該dns應答報文包括host.com域名對應的ip地址。同樣的,由于switcha與網絡設備1、網絡設備2之間的鏈路聚合形成負載分擔,因此,dns應答報文可被哈希至任意一臺網絡設備中。
5、當網絡設備2接收到dns應答報文后,由于dns請求報文不是網絡設備2發送,因此,網絡設備2內未存在對應的dns請求報文的相關信息,導致網絡設備2無法正確解析dns應答報文,也無法生成對應的dns域名解析表項。網絡設備2也無法繼續向dns客戶端發送dns應答報文。
6、進一步地,當網絡設備1接收到dns應答報文后,由于dns請求報文是網絡設備1發送,因此,網絡設備1內存在對應的dns請求報文的相關信息。根據dns請求報文的相關信息,網絡設備1解析dns應答報文,并根據dns請求報文以及dns應答報文生成對應的dns域名解析表項。網絡設備1向dns客戶端發送dns應答報文,以使得dns客戶端根據dns應答報文包括的ip地址對主機(host)發起訪問。
7、當dns客戶端發送的業務報文被switchb發送至網絡設備2后,若網絡設備2內配置了主機名為host.com的對象組,且該對象組被安全策略或者訪問控制列表(英文:accesscontrol?lists,簡稱:acl)引用。從前述過程可知,dns域名解析表項由網絡設備1生成,網絡設備2內并未存在dns域名解析表項,對象組也無法獲取host.com對應的網際互連協議(英文:internet?protocol,簡稱:ip)地址,導致網絡設備丟棄業務報文,dns客戶端訪問host失敗。
8、綜上,mlag組網內部署dns代理技術時,將暴露出下述問題:1)路徑不一致,導致dns客戶端無法獲取域名對應的ip地址;2)對象組無法獲取域名對應的ip地址,導致dns客戶端無法訪問域名。
技術實現思路
1、有鑒于此,本申請提供了一種通信方法及裝置,用以解決現有mlag組網內部署dns代理技術時,出現的路徑不一致,導致dns客戶端無法獲取域名對應的ip地址以及對象組無法獲取域名對應的ip地址,導致dns客戶端無法訪問域名的問題。
2、第一方面,本申請提供了一種通信方法,所述方法應用于第一網絡設備,所述第一網絡設備處于mlag組網內,所述mlag組網還包括第二網絡設備,所述第二網絡設備已通過第三網絡設備向dns服務器發送第一dns請求報文,所述方法包括:
3、接收所述第三網絡設備發送的第一dns響應報文,所述第一dns響應報文包括源端口號以及目的mac地址;
4、若本地未存在所述第一dns請求報文的緩存記錄,則識別所述源端口號是否為第一值且所述目的mac地址是否與所述第一網絡設備包括的第一接口的mac地址相同;
5、若所述源端口號為第一值且所述目的mac地址與所述第一接口的mac地址相同,則通過peer?link鏈路,向所述第二網絡設備發送所述第一dns響應報文,以使得所述第二網絡設備通過第四網絡設備向dns客戶端發送第二dns響應報文。
6、第二方面,本申請提供了一種通信裝置,所述裝置應用于第一網絡設備,所述第一網絡設備處于mlag組網內,所述mlag組網還包括第二網絡設備,所述第二網絡設備已通過第三網絡設備向dns服務器發送第一dns請求報文,所述裝置包括:
7、接收單元,用于接收所述第三網絡設備發送的第一dns響應報文,所述第一dns響應報文包括源端口號以及目的mac地址;
8、識別單元,用于若本地未存在所述第一dns請求報文的緩存記錄,則識別所述源端口號是否為第一值且所述目的mac地址是否與所述第一網絡設備包括的第一接口的mac地址相同;
9、發送單元,用于若所述源端口號為第一值且所述目的mac地址與所述第一接口的mac地址相同,則通過peer?link鏈路,向所述第二網絡設備發送所述第一dns響應報文,以使得所述第二網絡設備通過第四網絡設備向dns客戶端發送第二dns響應報文。
10、第三方面,本申請提供了一種網絡設備,包括處理器和機器可讀存儲介質,機器可讀存儲介質存儲有能夠被處理器執行的機器可執行指令,處理器被機器可執行指令促使執行本申請第一方面所提供的方法。
11、因此,通過應用本申請提供的通信方法及裝置,第一網絡設備接收第三網絡設備發送的第一dns響應報文,該第一dns響應報文包括源端口號以及目的mac地址;若本地未存在第一dns請求報文的緩存記錄,則第一網絡設備識別源端口號是否為第一值且目的mac地址是否與第一網絡設備包括的第一接口的mac地址相同;若源端口號為第一值且目的mac地址與第一接口的mac地址相同,則通過peer?link鏈路,第一網絡設備向第二網絡設備發送第一dns響應報文,以使得第二網絡設備通過第四網絡設備向dns客戶端發送第二dns響應報文。
12、如此,mlag組網內未接收到dns請求報文且接收到dns響應報文的一個網絡設備通過對源端口號、目的mac地址進行識別,將滿足條件的dns響應報文同步至接收過dns請求報文的另一網絡設備處,以使得另一網絡設備向dns客戶端發送dns響應報文。實現了將mlag組網與dns代理技術結合,形成的網絡架構也可實現更高效的運作,還確保了dns服務的可靠性和性能提升。同時,也解決了現有mlag內部署dns代理技術時,出現的路徑不一致,導致dns客戶端無法獲取域名對應的ip地址以及對象組無法獲取域名對應的ip地址,導致dns客戶端無法訪問域名的問題。
1.一種通信方法,其特征在于,所述方法應用于第一網絡設備,所述第一網絡設備處于mlag組網內,所述mlag組網還包括第二網絡設備,所述第二網絡設備已通過第三網絡設備向dns服務器發送第一dns請求報文,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述第一網絡設備內已配置對象組,所述方法還包括:
3.根據權利要求2所述的方法,其特征在于,所述方法還包括:
4.根據權利要求1所述的方法,其特征在于,所述方法還包括:
5.根據權利要求4所述的方法,其特征在于,所述方法還包括:
6.一種通信裝置,其特征在于,所述裝置應用于第一網絡設備,所述第一網絡設備處于mlag組網內,所述mlag組網還包括第二網絡設備,所述第二網絡設備已通過第三網絡設備向dns服務器發送第一dns請求報文,所述裝置包括:
7.根據權利要求6所述的裝置,其特征在于,所述第一網絡設備內已配置對象組;
8.根據權利要求7所述的裝置,其特征在于,所述接收單元還用于,接收所述第四網絡設備發送的業務報文,所述業務報文包括的目的地址為所述第一ip地址;
9.根據權利要求6所述的裝置,其特征在于,所述接收單元還用于,接收所述第四網絡設備發送的第二dns請求報文,所述第二dns請求報文包括第二域名;
10.根據權利要求9所述的裝置,其特征在于,所述發送單元還用于,向所述第四網絡設備發送第四dns響應報文,以使得所述第四網絡設備向所述dns客戶端發送所述第四dns響應報文,所述第四dns響應報文包括所述第二域名以及所述第二ip地址。