本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種探測路徑最大傳輸單元(英文:Maximum Transmission Unit,簡稱MTU)的方法、裝置和系統(tǒng)。
背景技術(shù):
路徑MTU是指在源設(shè)備到目的設(shè)備之間的路徑上能通過的最大的數(shù)據(jù)包長度。實(shí)際應(yīng)用中,為了響應(yīng)各種各樣的事件,源設(shè)備到目的設(shè)備之間的路徑可能會被動態(tài)地修改,路徑MTU也會相應(yīng)地改變。
虛擬化網(wǎng)絡(luò)中的交換機(jī)配置有隧道端點(diǎn),通過配置的隧道端點(diǎn)與其他交換機(jī)實(shí)現(xiàn)隧道互通,而任意兩個(gè)虛擬機(jī)之間的通信是通過所接入的交換機(jī)之間的隧道來實(shí)現(xiàn)的,即任意兩個(gè)虛擬機(jī)之間的路徑包括交換機(jī)之間的隧道。那么,當(dāng)源虛擬機(jī)要向目的虛擬機(jī)發(fā)送報(bào)文時(shí),先向源交換機(jī)發(fā)送該報(bào)文,源交換機(jī)接收到該報(bào)文時(shí),會按照隧道協(xié)議為該報(bào)文封裝一個(gè)以源交換機(jī)為源設(shè)備、以目的交換機(jī)為目的設(shè)備的外層頭,從而得到封裝報(bào)文,并向該目的交換機(jī)發(fā)送該封裝報(bào)文。如果該封裝報(bào)文的長度不大于該源交換機(jī)與該目的交換機(jī)之間的路徑MTU,則該封裝報(bào)文會通過該路徑傳輸至該目的交換機(jī)。該目的交換機(jī)會按照隧道協(xié)議對該封裝報(bào)文進(jìn)行解封裝,并將該解封裝后得到的報(bào)文發(fā)送給該目的虛擬機(jī),該目的虛擬機(jī)即可向源虛擬機(jī)返回發(fā)送成功的響應(yīng)報(bào)文。而如果該封裝報(bào)文的長度大于路徑MTU,隧道中的中間設(shè)備會將該封裝報(bào)文丟棄,并返回?cái)?shù)據(jù)包過大報(bào)文,以提示該封裝報(bào)文的長度過大。由于該封裝報(bào)文的外層頭中的源交換機(jī)為源設(shè)備,則該數(shù)據(jù)包過大報(bào)文會發(fā)送至源交換機(jī),而不能發(fā)送至源虛擬機(jī)。
在上述發(fā)送報(bào)文的過程中,源交換機(jī)并不能探測到與目的交換機(jī)之間的路徑MTU,源虛擬機(jī)也不能探測到與目的虛擬機(jī)之間的路徑MTU。而且,在后續(xù)過程中,源虛擬機(jī)仍可能會發(fā)送長度大于源虛擬機(jī)與目的虛擬機(jī)之間的路徑MTU的報(bào)文,而導(dǎo)致報(bào)文發(fā)送失敗。因此,需要提出一種方法,以探測源虛擬 機(jī)與目的虛擬機(jī)之間的路徑MTU,解決報(bào)文發(fā)送失敗的問題。
技術(shù)實(shí)現(xiàn)要素:
為克服現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種探測路徑MTU的方法、裝置及系統(tǒng)。
第一方面,本發(fā)明提供了一種探測路徑MTU的方法,所述方法包括:
根據(jù)目的交換機(jī)的地址和預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探測報(bào)文,并獲取與所述至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,所述至少一個(gè)響應(yīng)報(bào)文包括第一響應(yīng)報(bào)文和第二響應(yīng)報(bào)文中的至少一個(gè),所述第一響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU大于源交換機(jī)與所述目的交換機(jī)之間的第一路徑MTU,所述第二響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU不大于所述第一路徑MTU;
根據(jù)接收到所述第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定所述第一路徑MTU;
根據(jù)所述第一路徑MTU及預(yù)設(shè)封裝長度,確定接入所述源交換機(jī)的源虛擬機(jī)與接入所述目的交換機(jī)的目的虛擬機(jī)之間的第二路徑MTU。
結(jié)合第一方面,在第一方面的第一種可能實(shí)現(xiàn)方式中,所述根據(jù)所述第一路徑MTU及預(yù)設(shè)封裝長度,確定接入所述源交換機(jī)的源虛擬機(jī)與接入所述目的交換機(jī)的目的虛擬機(jī)之間的第二路徑MTU之后,所述方法還包括:
獲取所述源虛擬機(jī)發(fā)往所述目的虛擬機(jī)的數(shù)據(jù)報(bào)文;
當(dāng)確定所述數(shù)據(jù)報(bào)文的長度大于所述第二路徑MTU時(shí),向所述源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,所述第三響應(yīng)報(bào)文用于指示所述報(bào)文的長度大于所述第二路徑MTU。
結(jié)合第一方面的上述任一種可能實(shí)現(xiàn)方式,在第一方面的第二種可能實(shí)現(xiàn)方式中,所述根據(jù)目的交換機(jī)的地址和預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探測報(bào)文,包括:
根據(jù)預(yù)設(shè)交換機(jī)地址列表,確定多個(gè)目的交換機(jī)的地址;
根據(jù)每個(gè)目的交換機(jī)的地址以及所述預(yù)設(shè)路徑MTU,向每個(gè)目的交換機(jī)發(fā)送至少一個(gè)探測報(bào)文。
結(jié)合第一方面的上述任一種可能實(shí)現(xiàn)方式,在第一方面的第三種可能實(shí)現(xiàn)方式中,所述根據(jù)目的交換機(jī)的地址和預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探測報(bào)文, 并獲取與所述至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,包括:
根據(jù)所述目的交換機(jī)的地址以及所述預(yù)設(shè)路徑MTU,發(fā)送第一探測報(bào)文;
當(dāng)接收到所述第一響應(yīng)報(bào)文時(shí),減小所述預(yù)設(shè)路徑MTU,根據(jù)所述減小后的預(yù)設(shè)MTU生成第二探測報(bào)文;繼續(xù)根據(jù)所述目的交換機(jī)的地址,發(fā)送所述第二探測報(bào)文。
結(jié)合第一方面的上述任一種可能實(shí)現(xiàn)方式,在第一方面的第四種可能實(shí)現(xiàn)方式中,所述根據(jù)目的交換機(jī)的地址以及所述預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探測報(bào)文,并獲取與所述至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,包括:
遍歷配置的每個(gè)端口;
根據(jù)所述目的交換機(jī)的地址以及所述預(yù)設(shè)路徑MTU,基于遍歷到的每個(gè)端口發(fā)送至少一個(gè)探測報(bào)文;
通過所述遍歷到的端口,接收與所述至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文。
結(jié)合第一方面的上述任一種可能實(shí)現(xiàn)方式,在第一方面的第五種可能實(shí)現(xiàn)方式中,所述根據(jù)接收到所述第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定所述第一路徑MTU,包括:
根據(jù)每個(gè)端口接收到所述第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定每個(gè)端口對應(yīng)的路徑MTU;
根據(jù)每個(gè)端口對應(yīng)的路徑MTU,確定所述第一路徑MTU。
結(jié)合第一方面的上述任一種可能實(shí)現(xiàn)方式,在第一方面的第六種可能實(shí)現(xiàn)方式中,所述根據(jù)所述第一路徑MTU及預(yù)設(shè)封裝長度,確定接入所述源交換機(jī)的源虛擬機(jī)與接入所述目的交換機(jī)的目的虛擬機(jī)之間的第二路徑MTU,包括:
計(jì)算所述第一路徑MTU與所述預(yù)設(shè)封裝長度之間的差值;
將所述差值確定為所述第二路徑MTU。
結(jié)合第一方面的上述任一種可能實(shí)現(xiàn)方式,在第一方面的第七種可能實(shí)現(xiàn)方式中,所述根據(jù)所述第一路徑MTU及預(yù)設(shè)封裝長度,確定接入所述源交換機(jī)的源虛擬機(jī)與接入所述目的交換機(jī)的目的虛擬機(jī)之間的第二路徑MTU之后,所述方法還包括:
向控制器發(fā)送所述第二路徑MTU,使得所述控制器監(jiān)聽所述源虛擬機(jī)發(fā)送給所述源交換機(jī)的數(shù)據(jù)報(bào)文,根據(jù)所述第二路徑MTU對監(jiān)聽到的數(shù)據(jù)報(bào)文進(jìn)行 響應(yīng)。
結(jié)合第一方面的上述任一種可能實(shí)現(xiàn)方式,在第一方面的第八種可能實(shí)現(xiàn)方式中,所述獲取所述源虛擬機(jī)發(fā)往所述目的虛擬機(jī)的數(shù)據(jù)報(bào)文,包括:
對所述源虛擬機(jī)發(fā)往所述目的虛擬機(jī)的數(shù)據(jù)報(bào)文進(jìn)行采樣,獲取采樣得到的數(shù)據(jù)報(bào)文。
結(jié)合第一方面的上述任一種可能實(shí)現(xiàn)方式,在第一方面的第九種可能實(shí)現(xiàn)方式中,所述根據(jù)每個(gè)端口對應(yīng)的路徑MTU,確定所述第一路徑MTU,包括:
獲取所述每個(gè)端口對應(yīng)的路徑MTU中的最小路徑MTU,將所述最小路徑MTU作為所述第一路徑MTU。
第二方面,提供了一種探測路徑MTU的方法,所述方法包括:
獲取源交換機(jī)發(fā)送的第二路徑MTU,所述第二路徑MTU為接入所述源交換機(jī)的源虛擬機(jī)與目的虛擬機(jī)之間的路徑MTU;
監(jiān)聽所述源虛擬機(jī)發(fā)送給所述源交換機(jī)的數(shù)據(jù)報(bào)文;
當(dāng)確定所述數(shù)據(jù)報(bào)文的長度大于所述第二路徑MTU時(shí),向所述源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,所述第三響應(yīng)報(bào)文用于指示所述數(shù)據(jù)報(bào)文的長度大于所述第二路徑MTU。
結(jié)合第二方面,在第二方面的第一種可能實(shí)現(xiàn)方式中,所述第二路徑MTU由所述源交換機(jī)根據(jù)所述源交換機(jī)與所述目的虛擬機(jī)接入的目的交換機(jī)之間的第一路徑MTU以及預(yù)設(shè)封裝長度確定,所述第一路徑MTU由所述源交換機(jī)根據(jù)所述目的交換機(jī)的地址和預(yù)設(shè)路徑MTU發(fā)送至少一個(gè)探測報(bào)文,獲取與所述至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,并根據(jù)接收到第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU確定,所述至少一個(gè)響應(yīng)報(bào)文包括第一響應(yīng)報(bào)文和所述第二響應(yīng)報(bào)文中的至少一個(gè)。
結(jié)合第二方面的上述任一種可能實(shí)現(xiàn)方式,在第二方面的第二種可能實(shí)現(xiàn)方式中,所述監(jiān)聽源虛擬機(jī)發(fā)送給所述源交換機(jī)的數(shù)據(jù)報(bào)文,包括:
對所述源虛擬機(jī)發(fā)送給所述源交換機(jī)的數(shù)據(jù)報(bào)文進(jìn)行采樣,獲取采樣得到的數(shù)據(jù)報(bào)文。
第三方面,提供了一種探測路徑MTU的裝置,所述裝置包括:
發(fā)送模塊,用于根據(jù)目的交換機(jī)的地址和預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探測報(bào)文;
接收模塊,用于獲取與所述至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,所述至少一個(gè)響應(yīng)報(bào)文包括第一響應(yīng)報(bào)文和第二響應(yīng)報(bào)文中的至少一個(gè),所述第一響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU大于源交換機(jī)與所述目的交換機(jī)之間的第一路徑MTU,所述第二響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU不大于所述第一路徑MTU;
第一確定模塊,用于根據(jù)接收到所述第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定所述第一路徑MTU;
第二確定模塊,用于根據(jù)所述第一路徑MTU及預(yù)設(shè)封裝長度,確定接入所述源交換機(jī)的源虛擬機(jī)與接入所述目的交換機(jī)的目的虛擬機(jī)之間的第二路徑MTU。
結(jié)合第三方面,在第三方面的第一種可能實(shí)現(xiàn)方式中,所述接收模塊,還用于獲取所述源虛擬機(jī)發(fā)往所述目的虛擬機(jī)的數(shù)據(jù)報(bào)文;
所述發(fā)送模塊,還用于當(dāng)確定所述數(shù)據(jù)報(bào)文的長度大于所述第二路徑MTU時(shí),向所述源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,所述第三響應(yīng)報(bào)文用于指示所述報(bào)文的長度大于所述第二路徑MTU。
結(jié)合第三方面的上述任一種可能實(shí)現(xiàn)方式,在第三方面的第二種可能實(shí)現(xiàn)方式中,所述發(fā)送模塊還用于根據(jù)預(yù)設(shè)交換機(jī)地址列表,確定多個(gè)目的交換機(jī)的地址;根據(jù)每個(gè)目的交換機(jī)的地址以及所述預(yù)設(shè)路徑MTU,向每個(gè)目的交換機(jī)發(fā)送至少一個(gè)探測報(bào)文。
結(jié)合第三方面的上述任一種可能實(shí)現(xiàn)方式,在第三方面的第三種可能實(shí)現(xiàn)方式中,所述發(fā)送模塊還用于根據(jù)所述目的交換機(jī)的地址以及所述預(yù)設(shè)路徑MTU,發(fā)送第一探測報(bào)文;
所述接收模塊還用于當(dāng)接收到所述第一響應(yīng)報(bào)文時(shí),減小所述預(yù)設(shè)路徑MTU,根據(jù)所述減小后的預(yù)設(shè)MTU生成第二探測報(bào)文;
所述發(fā)送模塊還用于繼續(xù)根據(jù)所述目的交換機(jī)的地址,發(fā)送所述第二探測報(bào)文。
結(jié)合第三方面的上述任一種可能實(shí)現(xiàn)方式,在第三方面的第四種可能實(shí)現(xiàn)方式中,所述發(fā)送模塊還用于遍歷配置的每個(gè)端口;根據(jù)所述目的交換機(jī)的地 址以及所述預(yù)設(shè)路徑MTU,基于遍歷到的端口發(fā)送至少一個(gè)探測報(bào)文;
所述接收模塊還用于通過所述遍歷到的端口,接收與所述至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文。
結(jié)合第三方面的上述任一種可能實(shí)現(xiàn)方式,在第三方面的第五種可能實(shí)現(xiàn)方式中,所述第一確定模塊還用于根據(jù)每個(gè)端口接收到所述第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定每個(gè)端口對應(yīng)的路徑MTU;根據(jù)每個(gè)端口對應(yīng)的路徑MTU,確定所述第一路徑MTU。
結(jié)合第三方面的上述任一種可能實(shí)現(xiàn)方式,在第三方面的第六種可能實(shí)現(xiàn)方式中,所述第二確定模塊還用于計(jì)算所述第一路徑MTU與所述預(yù)設(shè)封裝長度之間的差值;將所述差值確定為所述第二路徑MTU。
結(jié)合第三方面的上述任一種可能實(shí)現(xiàn)方式,在第三方面的第七種可能實(shí)現(xiàn)方式中,所述發(fā)送模塊還用于向控制器發(fā)送所述第二路徑MTU,使得所述控制器監(jiān)聽所述源虛擬機(jī)發(fā)送給所述源交換機(jī)的數(shù)據(jù)報(bào)文,根據(jù)所述第二路徑MTU對監(jiān)聽到的數(shù)據(jù)報(bào)文進(jìn)行響應(yīng)。
結(jié)合第三方面的上述任一種可能實(shí)現(xiàn)方式,在第三方面的第八種可能實(shí)現(xiàn)方式中,所述接收模塊還用于對所述源虛擬機(jī)發(fā)往所述目的虛擬機(jī)的數(shù)據(jù)報(bào)文進(jìn)行采樣,獲取采樣得到的數(shù)據(jù)報(bào)文。
結(jié)合第三方面的上述任一種可能實(shí)現(xiàn)方式,在第三方面的第九種可能實(shí)現(xiàn)方式中,所述確定模塊還用于獲取所述每個(gè)端口對應(yīng)的路徑MTU中的最小路徑MTU,將所述最小路徑MTU作為所述第一路徑MTU。
第四方面,提供了一種探測路徑MTU的裝置,所述裝置包括:
獲取模塊,用于獲取源交換機(jī)發(fā)送的第二路徑MTU,所述第二路徑MTU為接入所述源交換機(jī)的源虛擬機(jī)與目的虛擬機(jī)之間的路徑MTU;
監(jiān)聽模塊,用于監(jiān)聽所述源虛擬機(jī)發(fā)送給所述源交換機(jī)的數(shù)據(jù)報(bào)文;
響應(yīng)模塊,用于當(dāng)確定所述數(shù)據(jù)報(bào)文的長度大于所述第二路徑MTU時(shí),向所述源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,所述第三響應(yīng)報(bào)文用于指示所述數(shù)據(jù)報(bào)文的長度大于所述第二路徑MTU。
結(jié)合第四方面,在第四方面的第一種可能實(shí)現(xiàn)方式中,所述第二路徑MTU由所述源交換機(jī)根據(jù)所述源交換機(jī)與所述目的虛擬機(jī)接入的目的交換機(jī)之間的 第一路徑MTU以及預(yù)設(shè)封裝長度確定,所述第一路徑MTU由所述源交換機(jī)根據(jù)所述目的交換機(jī)的地址和預(yù)設(shè)路徑MTU發(fā)送至少一個(gè)探測報(bào)文,獲取與所述至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,并根據(jù)接收到第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU確定,所述至少一個(gè)響應(yīng)報(bào)文包括第一響應(yīng)報(bào)文和所述第二響應(yīng)報(bào)文中的至少一個(gè)。
結(jié)合第四方面的上述任一種可能實(shí)現(xiàn)方式,在第四方面的第二種可能實(shí)現(xiàn)方式中,所述監(jiān)聽模塊還用于對所述源虛擬機(jī)發(fā)送給所述源交換機(jī)的數(shù)據(jù)報(bào)文進(jìn)行采樣,獲取采樣得到的數(shù)據(jù)報(bào)文。
第五方面,提供了一種探測路徑MTU的系統(tǒng),所述系統(tǒng)包括:源虛擬機(jī)、源交換機(jī)、目的虛擬機(jī)和目的交換機(jī),所述源虛擬機(jī)接入所述源交換機(jī),所述目的虛擬機(jī)接入所述目的交換機(jī);
所述源交換機(jī)用于根據(jù)所述目的交換機(jī)的地址和預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探測報(bào)文,并獲取與所述至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,所述至少一個(gè)響應(yīng)報(bào)文包括第一響應(yīng)報(bào)文和第二響應(yīng)報(bào)文中的至少一個(gè),所述第一響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU大于所述源交換機(jī)與所述目的交換機(jī)之間的第一路徑MTU,所述第二響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU不大于所述第一路徑MTU;根據(jù)接收到所述第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定所述第一路徑MTU;根據(jù)所述第一路徑MTU及預(yù)設(shè)封裝長度,確定接入所述源交換機(jī)的源虛擬機(jī)與接入所述目的交換機(jī)的目的虛擬機(jī)之間的第二路徑MTU;
所述源虛擬機(jī)用于通過所述源交換機(jī)向所述目的虛擬機(jī)發(fā)送至少一個(gè)數(shù)據(jù)報(bào)文,使得所述源交換機(jī)根據(jù)探測到的第二路徑MTU,返回與所述至少一個(gè)數(shù)據(jù)報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文;根據(jù)所述至少一個(gè)響應(yīng)報(bào)文,確定所述第二路徑MTU。
結(jié)合第五方面,在第五方面的第一種可能實(shí)現(xiàn)方式中,所述系統(tǒng)還包括控制器;
所述源交換機(jī)還用于向所述控制器發(fā)送所述第二路徑MTU;
所述源虛擬機(jī)用于通過所述源交換機(jī)向所述目的虛擬機(jī)發(fā)送至少一個(gè)數(shù)據(jù)報(bào)文;
所述控制器用于獲取所述源交換機(jī)發(fā)送的第二路徑MTU,所述第二路徑MTU為所述源交換機(jī)接入的所述源虛擬機(jī)與所述目的虛擬機(jī)之間的路徑MTU;監(jiān)聽所述源虛擬機(jī)發(fā)送給所述源交換機(jī)的數(shù)據(jù)報(bào)文;當(dāng)確定所述數(shù)據(jù)報(bào)文的長度大于所述第二路徑MTU時(shí),向所述源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,所述第三響應(yīng)報(bào)文用于指示所述數(shù)據(jù)報(bào)文的長度大于所述第二路徑MTU。
本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:
通過發(fā)送至少一個(gè)探測報(bào)文的方式進(jìn)行學(xué)習(xí),從而探測到源交換機(jī)與目的交換機(jī)之間的第一路徑MTU,并確定源虛擬機(jī)與目的虛擬機(jī)之間的第二路徑MTU,以便根據(jù)第二路徑MTU控制源虛擬機(jī)所發(fā)送報(bào)文的長度,避免了報(bào)文發(fā)送失敗的問題,提高了發(fā)送報(bào)文的成功率。
進(jìn)一步地,通過獲取源虛擬機(jī)發(fā)往目的虛擬機(jī)的數(shù)據(jù)報(bào)文,當(dāng)確定該數(shù)據(jù)報(bào)文的長度大于第二路徑MTU時(shí),向源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,該第三響應(yīng)報(bào)文用于指示該數(shù)據(jù)報(bào)文的長度大于第二路徑MTU,通過對源虛擬機(jī)所發(fā)送的數(shù)據(jù)報(bào)文進(jìn)行響應(yīng),以便對該源虛擬機(jī)進(jìn)行預(yù)警,從而使得源虛擬機(jī)可以根據(jù)響應(yīng)的報(bào)文探測到第二路徑MTU,從而控制所發(fā)送報(bào)文的長度,提高了控制效率。
進(jìn)一步地,通過根據(jù)預(yù)設(shè)交換機(jī)地址列表,確定多個(gè)目的交換機(jī)的地址,提高了獲取目的交換機(jī)地址的效率和準(zhǔn)確性,通過根據(jù)每個(gè)目的交換機(jī)的地址以及預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探測報(bào)文,便于探測源交換機(jī)與多個(gè)目的交換機(jī)之間的路徑MTU。
進(jìn)一步地,通過當(dāng)接收到第一響應(yīng)報(bào)文時(shí),減小該預(yù)設(shè)路徑MTU,根據(jù)該減小后的預(yù)設(shè)MTU生成第二探測報(bào)文,第二探測報(bào)文的長度小于第一探測報(bào)文的長度,并繼續(xù)根據(jù)目的交換機(jī)的地址,發(fā)送該第二探測報(bào)文,直至接收到第二響應(yīng)報(bào)文時(shí),根據(jù)接收到第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU確定第一路徑MTU,即通過多次發(fā)送探測報(bào)文,對該多個(gè)探測報(bào)文對應(yīng)的響應(yīng)報(bào)文進(jìn)行學(xué)習(xí),實(shí)現(xiàn)了對第一路徑MTU的探測,便于根據(jù)該第一路徑MTU確定源虛擬機(jī)與目的虛擬機(jī)之間的第二路徑MTU。
進(jìn)一步地,通過遍歷配置的每個(gè)端口,根據(jù)目的交換機(jī)的地址以及預(yù)設(shè)路徑MTU,基于遍歷到的每個(gè)端口發(fā)送至少一個(gè)探測報(bào)文,并通過遍歷到的端口, 接收與至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,便于探測出每個(gè)端口對應(yīng)的路徑MTU。
進(jìn)一步地,通過根據(jù)每個(gè)端口接收到第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定每個(gè)端口對應(yīng)的路徑MTU,再根據(jù)每個(gè)端口對應(yīng)的路徑MTU,確定第一路徑MTU,確保根據(jù)第一路徑MTU控制的報(bào)文能夠通過每個(gè)端口,提高了可靠性以及發(fā)送報(bào)文的成功率。
進(jìn)一步地,考慮到對源虛擬機(jī)所發(fā)送的報(bào)文進(jìn)行轉(zhuǎn)發(fā)時(shí)會對該報(bào)文進(jìn)行封裝,報(bào)文的長度會增加預(yù)設(shè)封裝長度,則確定第一路徑MTU后,計(jì)算第一路徑MTU與預(yù)設(shè)封裝長度之間的差值,將差值確定為第二路徑MTU,從而根據(jù)第二路徑MTU控制源虛擬機(jī)所發(fā)送報(bào)文的長度,避免了報(bào)文發(fā)送失敗的問題,提高了發(fā)送報(bào)文的成功率。
進(jìn)一步地,通過向控制器發(fā)送第二路徑MTU,使得控制器監(jiān)聽源虛擬機(jī)發(fā)送給源交換機(jī)的數(shù)據(jù)報(bào)文,并根據(jù)第二路徑MTU對監(jiān)聽到的數(shù)據(jù)報(bào)文進(jìn)行響應(yīng),通過由處理能力較強(qiáng)的控制器對源虛擬機(jī)發(fā)送的數(shù)據(jù)報(bào)文進(jìn)行響應(yīng),提高了響應(yīng)效率,無需耗費(fèi)源交換機(jī)的硬件資源,減小了源交換機(jī)的壓力,且能夠防止源交換機(jī)被探測攻擊,提高了網(wǎng)絡(luò)系統(tǒng)的安全性。
進(jìn)一步地,通過對源虛擬機(jī)發(fā)送的數(shù)據(jù)報(bào)文進(jìn)行采樣,獲取采樣得到的數(shù)據(jù)報(bào)文,并對采樣得到的數(shù)據(jù)報(bào)文進(jìn)行響應(yīng),保證了源虛擬機(jī)根據(jù)源交換機(jī)返回的響應(yīng)報(bào)文學(xué)習(xí)到第二路徑MTU,而且,無需對源虛擬機(jī)發(fā)送的每個(gè)報(bào)文進(jìn)行響應(yīng),減小了源交換機(jī)或者控制器的壓力。
進(jìn)一步地,通過選取每個(gè)端口對應(yīng)的路徑MTU中的最小路徑MTU,將最小路徑MTU作為第一路徑MTU,確保了根據(jù)第一路徑MTU控制的報(bào)文能夠通過每個(gè)端口,提高了可靠性以及發(fā)送報(bào)文的成功率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1A是本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)系統(tǒng)的結(jié)構(gòu)示意圖;
圖1B是本發(fā)明實(shí)施例提供的另一種網(wǎng)絡(luò)系統(tǒng)的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實(shí)施例提供的一種VXLAN的結(jié)構(gòu)示意圖;
圖3是本發(fā)明實(shí)施例提供的一種源交換機(jī)的結(jié)構(gòu)示意圖;
圖4是本發(fā)明實(shí)施例提供的一種源虛擬機(jī)的結(jié)構(gòu)示意圖;
圖5是本發(fā)明實(shí)施例提供的一種控制器的結(jié)構(gòu)示意圖;
圖6是本發(fā)明實(shí)施例提供的一種探測路徑MTU的方法流程圖;
圖7是本發(fā)明實(shí)施例提供的一種探測路徑MTU的方法流程圖;
圖8是本發(fā)明實(shí)施例提供的一種探測路徑MTU的方法流程圖;
圖9是本發(fā)明實(shí)施例提供的一種探測路徑MTU的方法流程圖;
圖10是本發(fā)明實(shí)施例提供的一種探測路徑MTU的方法流程圖;
圖11是本發(fā)明實(shí)施例提供的一種探測路徑MTU的裝置結(jié)構(gòu)示意圖;
圖12是本發(fā)明實(shí)施例提供的一種探測路徑MTU的裝置結(jié)構(gòu)示意圖;
圖13是本發(fā)明實(shí)施例提供的一種探測路徑MTU的裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
圖1A是本發(fā)明實(shí)施例提供的一種網(wǎng)絡(luò)系統(tǒng)的結(jié)構(gòu)示意圖,參見圖1A,該網(wǎng)絡(luò)系統(tǒng)包括源虛擬機(jī)101、源交換機(jī)102、目的虛擬機(jī)103和目的交換機(jī)104。其中,該源虛擬機(jī)101接入該源交換機(jī)102,該目的虛擬機(jī)103接入該目的交換機(jī)104,該源交換機(jī)102與該目的交換機(jī)104之間通過多條路徑連接,每條路徑上包括至少一個(gè)中間交換機(jī)。
源交換機(jī)102用于根據(jù)目的交換機(jī)104的地址和預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探測報(bào)文,并獲取與該至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,該至少一個(gè)響應(yīng)報(bào)文為包括第一響應(yīng)報(bào)文和第二響應(yīng)報(bào)文中的至少一個(gè),該第一響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU大于該源交換機(jī)與該目的交換機(jī)之間的第一路徑MTU,該第二響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU不大于該第一路徑MTU;根據(jù)接收到第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定該第一路徑MTU;根據(jù)該第一路徑MTU及預(yù)設(shè)封裝長度,確定接入該源交換機(jī)的源虛擬機(jī)與接入該目的交換機(jī)的目的虛擬機(jī)之間的第二路徑MTU。
源虛擬機(jī)101用于通過該源交換機(jī)102向該目的虛擬機(jī)103發(fā)送至少一個(gè)數(shù)據(jù)報(bào)文,使得該源交換機(jī)根據(jù)探測到的第二路徑MTU,返回與該至少一個(gè)數(shù)據(jù)報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文;根據(jù)該至少一個(gè)響應(yīng)報(bào)文,獲取該第二路徑MTU。
參見圖1B,可選地,該系統(tǒng)還包括控制器105。
該源交換機(jī)102還用于向該控制器105發(fā)送該第二路徑MTU。該控制器105用于獲取該源交換機(jī)發(fā)送的第二路徑MTU,該第二路徑MTU為該源交換機(jī)接入的該源虛擬機(jī)與該目的虛擬機(jī)之間的路徑MTU;監(jiān)聽該源虛擬機(jī)發(fā)送給該源交換機(jī)的數(shù)據(jù)報(bào)文;當(dāng)確定該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU時(shí),向該源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,該第三響應(yīng)報(bào)文用于指示該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU。
進(jìn)一步地,該網(wǎng)絡(luò)系統(tǒng)可以為虛擬可擴(kuò)展局域網(wǎng)(英文:Virtual Extensible Local Area Network,簡稱:VXLAN),所述VXLAN包括多個(gè)數(shù)據(jù)中心以及多個(gè)虛擬機(jī),不同數(shù)據(jù)中心之間通過廣域網(wǎng)(英文:Wide Area Network,簡稱:WAN)連接。
每個(gè)數(shù)據(jù)中心中包括多個(gè)交換機(jī),至少一個(gè)交換機(jī)配置有VXLAN隧道端點(diǎn)(英文:VXLAN Tunnel Endpoint,簡稱:VTEP),通過配置的VTEP,與同一數(shù)據(jù)中心內(nèi)的其他交換機(jī)或者其他數(shù)據(jù)中心內(nèi)的交換機(jī)實(shí)現(xiàn)隧道互通。任一虛擬機(jī)可以接入交換機(jī),通過任兩個(gè)交換機(jī)之間的隧道,與接入另一交換機(jī)的虛擬機(jī)實(shí)現(xiàn)通信。另外,數(shù)據(jù)中心中還可以包括控制器,控制器可以與交換機(jī)連接,為交換機(jī)或者接入交換機(jī)的虛擬機(jī)提供服務(wù)。
圖2是本發(fā)明實(shí)施例提供的一種VXLAN的結(jié)構(gòu)示意圖,參見圖2,該VXLAN包括:數(shù)據(jù)中心(英文:Data Center)DC1、WAN和數(shù)據(jù)中心DC2。其中,數(shù)據(jù)中心DC1包括虛擬機(jī)(英文:Virtual Machine)VM1、架頂交換機(jī)(英文:Top of Rack)ToR1、架頂交換機(jī)ToR2、核心交換機(jī)Spine1、核心交換機(jī)Spine2、控制器Controller1,數(shù)據(jù)中心DC2包括虛擬機(jī)VM2、架頂交換機(jī)ToR3、核心交換機(jī)Spine3和控制器Controller2,數(shù)據(jù)中心DC1與數(shù)據(jù)中心DC2之間可通過WAN連接。所述Controller1和Controller2可以是網(wǎng)絡(luò)管理系統(tǒng)。
ToR1配置有隧道端點(diǎn)VTEP1,ToR3配置有隧道端點(diǎn)VTEP3,隧道端點(diǎn)VTEP1與隧道端點(diǎn)VTEP3之間通過隧道進(jìn)行通信,該隧道至少包括一個(gè)Spine。 且,VM1接入ToR1,VM2接入ToR3,VM1與VM2之間的路徑包括從VM1到VTEP1之間的路徑、VTEP1與VTEP3之間的隧道以及VTEP3到VM2之間的路徑。
ToR1可以多次向ToR3發(fā)送探測報(bào)文,從而探測到ToR1與ToR3之間的路徑MTU,并確定VM1與VM2之間的路徑MTU。之后,ToR1可以根據(jù)VM1與VM2之間的路徑MTU,控制虛擬機(jī)VM1所發(fā)送的報(bào)文的長度?;蛘?,ToR1還可以向Controller1發(fā)送VM1與VM2之間的路徑MTU,由Controller1控制虛擬機(jī)VM1所發(fā)送的報(bào)文的長度。
圖3是本發(fā)明實(shí)施例提供的一種源交換機(jī)的結(jié)構(gòu)示意圖,參見圖3,包括:收發(fā)器301、存儲器302和處理器303,收發(fā)器301配置有至少一個(gè)VTEP3011,通過配置的VTEP3011,與其他交換機(jī)配置的VTEP進(jìn)行通信。該收發(fā)器301和該存儲器302分別與該處理器303連接,該存儲器302存儲有程序代碼,該處理器303用于調(diào)用該程序代碼,執(zhí)行以下操作:
通過收發(fā)器301,根據(jù)目的交換機(jī)的地址和預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探測報(bào)文,并獲取與該至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,該至少一個(gè)響應(yīng)報(bào)文包括第一響應(yīng)報(bào)文和第二響應(yīng)報(bào)文中的至少一個(gè),該第一響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU大于源交換機(jī)與該目的交換機(jī)之間的第一路徑MTU,該第二響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU不大于該第一路徑MTU;
根據(jù)接收到該第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定該第一路徑MTU;
根據(jù)該第一路徑MTU及預(yù)設(shè)封裝長度,確定接入該源交換機(jī)的源虛擬機(jī)與接入該目的交換機(jī)的目的虛擬機(jī)之間的第二路徑MTU。
可選地,該處理器303還用于調(diào)用該程序代碼,執(zhí)行以下操作:
向控制器發(fā)送該第二路徑MTU,使得該控制器監(jiān)聽該源虛擬機(jī)發(fā)送給該源交換機(jī)的數(shù)據(jù)報(bào)文,并根據(jù)該第二路徑MTU對監(jiān)聽到的數(shù)據(jù)報(bào)文進(jìn)行響應(yīng)。
基于圖2所示的網(wǎng)絡(luò)系統(tǒng),該源交換機(jī)可以為圖2中的交換機(jī)ToR。如,該源交換機(jī)為ToR1,目的交換機(jī)為ToR3,則ToR1根據(jù)ToR3的地址和預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探測報(bào)文,并獲取到與該至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,從而根據(jù)該至少一個(gè)響應(yīng)報(bào)文和對應(yīng)的預(yù)設(shè)路徑MTU,確定ToR1與ToR3之間的第一路徑MTU,根據(jù)第一路徑MTU和預(yù)設(shè)封裝長度確定 VM1與VM2之間的第二路徑MTU。
圖4是本發(fā)明實(shí)施例提供的一種源虛擬機(jī)的結(jié)構(gòu)示意圖,參見圖4,包括:接收器401、發(fā)射器402、存儲器403和處理器404,該接收器401、該發(fā)射器402和該存儲器403分別與該處理器404連接,該存儲器403存儲有程序代碼,該處理器404用于調(diào)用該程序代碼,執(zhí)行以下操作:
通過發(fā)射器402,向源交換機(jī)發(fā)送發(fā)往目的虛擬機(jī)的至少一個(gè)數(shù)據(jù)報(bào)文,使得該源交換機(jī)或控制器根據(jù)探測到的第二路徑MTU,返回與該至少一個(gè)數(shù)據(jù)報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文;
通過接收器401,接收該至少一個(gè)響應(yīng)報(bào)文;
根據(jù)該至少一個(gè)響應(yīng)報(bào)文,確定該第二路徑MTU;
其中,該第二路徑MTU由該源交換機(jī)根據(jù)探測到的第一路徑MTU及預(yù)設(shè)封裝長度確定,該第一路徑MTU為該源交換機(jī)與該目的虛擬機(jī)接入的目的交換機(jī)之間的路徑MTU,該第二路徑MTU為該源虛擬機(jī)與該目的虛擬機(jī)之間的路徑MTU;
該響應(yīng)報(bào)文為第三響應(yīng)報(bào)文或第四響應(yīng)報(bào)文,該第三響應(yīng)報(bào)文用于指示對應(yīng)數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU,該第四響應(yīng)報(bào)文用于指示對應(yīng)數(shù)據(jù)報(bào)文的長度不大于該第二路徑MTU。
基于圖2所示的網(wǎng)絡(luò)系統(tǒng),該源交換機(jī)可以為圖2中的虛擬機(jī)VM。如,該源虛擬機(jī)為VM1,目的虛擬機(jī)為VM2,則VM1通過ToR1向VM2發(fā)送至少一個(gè)數(shù)據(jù)報(bào)文,使得該ToR1或控制器根據(jù)探測到的第二路徑MTU,返回與該至少一個(gè)數(shù)據(jù)報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,則該VM1可根據(jù)該至少一個(gè)響應(yīng)報(bào)文,確定該第二路徑MTU。
圖5是本發(fā)明實(shí)施例提供的一種控制器的結(jié)構(gòu)示意圖,參見圖4,包括:接收器501、發(fā)射器502、存儲器503和處理器504,該接收器501、該發(fā)射器502和該存儲器503分別與該處理器504連接,該存儲器503存儲有程序代碼,該處理器504用于調(diào)用該程序代碼,執(zhí)行以下操作:
通過接收器501,獲取源交換機(jī)發(fā)送的第二路徑MTU,該第二路徑MTU為接入該源交換機(jī)的源虛擬機(jī)與目的虛擬機(jī)之間的路徑MTU;
監(jiān)聽該源虛擬機(jī)發(fā)送給該源交換機(jī)的數(shù)據(jù)報(bào)文;
當(dāng)確定該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU時(shí),通過發(fā)射器502,向該源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,該第三響應(yīng)報(bào)文用于指示該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU。
基于圖2所示的網(wǎng)絡(luò)系統(tǒng),該控制器可以為圖2中的控制器Controller。如,該控制器為Controller1,則在ToR1確定第二路徑MTU后,Controller1獲取ToR1發(fā)送的第二路徑MTU,并監(jiān)聽VM1發(fā)送給ToR1的數(shù)據(jù)報(bào)文,當(dāng)確定該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU時(shí),向虛擬機(jī)VM1發(fā)送第三響應(yīng)報(bào)文,以指示該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU。
圖6是本發(fā)明實(shí)施例提供的一種探測路徑MTU的方法流程圖,如圖6所示,該探測路徑MTU的方法的交互主體為源虛擬機(jī)和源交換機(jī),包括以下步驟:
601、源交換機(jī)根據(jù)目的交換機(jī)的地址和預(yù)設(shè)路徑MTU,發(fā)送第一探測報(bào)文,并獲取與該探測報(bào)文對應(yīng)的響應(yīng)報(bào)文。
本發(fā)明實(shí)施例中,將源交換機(jī)與目的交換機(jī)之間的路徑MTU稱為第一路徑MTU,實(shí)際應(yīng)用時(shí),源交換機(jī)與目的交換機(jī)之間的路徑可能會發(fā)生動態(tài)變化,相應(yīng)的,該第一路徑MTU也會發(fā)生變化,則為了確定源交換機(jī)與目的交換機(jī)之間當(dāng)前的第一路徑MTU,源交換機(jī)可以采用發(fā)送探測報(bào)文的方式進(jìn)行探測。
具體地,源交換機(jī)可以根據(jù)目的交換機(jī)的地址和預(yù)設(shè)路徑MTU,生成第一探測報(bào)文,使得第一探測報(bào)文的長度等于預(yù)設(shè)路徑MTU,并向目的交換機(jī)發(fā)送該第一探測報(bào)文。其中,該預(yù)設(shè)MTU可由源交換機(jī)預(yù)先根據(jù)一般的路徑MTU的大小設(shè)置,本發(fā)明實(shí)施例對此不做限定。
例如,源交換機(jī)的預(yù)設(shè)路徑MTU為1600字節(jié),則向目的交換機(jī)發(fā)送的第一探測報(bào)文的長度為1600字節(jié)。
進(jìn)一步地,源交換機(jī)可以根據(jù)預(yù)設(shè)交換機(jī)地址列表,確定目的交換機(jī)的地址,根據(jù)目的交換機(jī)的地址,對待發(fā)送的原始報(bào)文進(jìn)行封裝,即為原始報(bào)文封裝一層以源交換機(jī)的地址為源設(shè)備地址、以該目的交換機(jī)的地址為目標(biāo)設(shè)備地址的外層頭,使得封裝后的長度等于預(yù)設(shè)路徑MTU,將封裝后的報(bào)文作為第一探測報(bào)文。
其中,該預(yù)設(shè)交換機(jī)地址列表中包括多個(gè)交換機(jī)的地址,網(wǎng)絡(luò)系統(tǒng)中的每 個(gè)交換機(jī)均可獲取該預(yù)設(shè)交換機(jī)地址列表,并對該預(yù)設(shè)交換機(jī)地址列表進(jìn)行動態(tài)更新。
源交換機(jī)向目的交換機(jī)發(fā)送第一探測報(bào)文后,可以獲取與該探測報(bào)文對應(yīng)的響應(yīng)報(bào)文。其中,該響應(yīng)報(bào)文用于對該第一探測報(bào)文進(jìn)行響應(yīng),可以為第一響應(yīng)報(bào)文或第二響應(yīng)報(bào)文,該第一響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU大于該源交換機(jī)與該目的交換機(jī)之間的第一路徑MTU,該第二響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU不大于該源交換機(jī)與該目的交換機(jī)之間的第一路徑MTU。其中,該第一響應(yīng)報(bào)文可以為ICMP(Internet Control Message Protocol,因特網(wǎng)控制報(bào)文協(xié)議)too big報(bào)文等,本發(fā)明實(shí)施例對此不做限定。
具體地,源交換機(jī)發(fā)送第一探測報(bào)文,并獲取與該第一探測報(bào)文對應(yīng)的響應(yīng)報(bào)文的過程可以包括以下步驟1或2:
1、源交換機(jī)根據(jù)當(dāng)前的預(yù)設(shè)路徑MTU生成第一探測報(bào)文,發(fā)送第一探測報(bào)文后,第一探測報(bào)文會在源交換機(jī)與目的交換機(jī)之間的路徑中傳輸。如果第一探測報(bào)文的長度大于路徑中的某一中間設(shè)備的MTU,則該第一探測報(bào)文將無法通過該中間設(shè)備發(fā)送至目的交換機(jī),此時(shí),該中間設(shè)備將根據(jù)該第一探測報(bào)文中的源設(shè)備地址,即該源交換機(jī)的地址,向該源交換機(jī)發(fā)送第一響應(yīng)報(bào)文,以指示該探測報(bào)文的長度過大,則該源交換機(jī)接收該第一響應(yīng)報(bào)文。
由于路徑MTU為路徑上所有設(shè)備的MTU的最小值,該第一探測報(bào)文的長度大于該中間設(shè)備的MTU,則必然大于該源交換機(jī)與該目的交換機(jī)之間的第一路徑MTU。因此,該第一響應(yīng)報(bào)文可以用于指示該探測報(bào)文的長度大于該第一路徑MTU,也即是,當(dāng)前的預(yù)設(shè)路徑MTU大于第一路徑MTU。
2、源交換機(jī)根據(jù)當(dāng)前的預(yù)設(shè)路徑MTU生成第一探測報(bào)文,發(fā)送第一探測報(bào)文后,第一探測報(bào)文在源交換機(jī)與目的交換機(jī)之間的路徑中傳輸。如果第一探測報(bào)文的長度不大于路徑中任一中間設(shè)備的MTU,則該第一探測報(bào)文可通過路徑中的全部中間設(shè)備,成功發(fā)送至目的交換機(jī),該目的交換機(jī)接收到該第一探測報(bào)文時(shí),將根據(jù)該第一探測報(bào)文中的源設(shè)備地址,即該源交換機(jī)的地址,向源交換機(jī)發(fā)送第二響應(yīng)報(bào)文,以指示成功接收到該第一探測報(bào)文,則該源交換機(jī)接收該第二響應(yīng)報(bào)文。
由于該第一探測報(bào)文能夠通過全部中間設(shè)備,到達(dá)目的交換機(jī),則該第一探測報(bào)文的長度必然不大于路徑中任一中間設(shè)備的MTU,因此,該第二響應(yīng)報(bào) 文可以用于指示該第一探測報(bào)文的長度不大于該第一路徑MTU,也即是,當(dāng)前的預(yù)設(shè)路徑MTU不大于該第一路徑MTU。。
需要說明的一點(diǎn)是,發(fā)送該第一探測報(bào)文的目的在于根據(jù)該第一探測報(bào)文對應(yīng)的響應(yīng)報(bào)文,確定第一探測報(bào)文的長度是大于源交換機(jī)與目的交換機(jī)之間的路徑MTU,還是不大于源交換機(jī)與目的交換機(jī)之間的路徑MTU,從而確定當(dāng)前的預(yù)設(shè)路徑MTU是大于源交換機(jī)與目的交換機(jī)之間的路徑MTU,還是不大于源交換機(jī)與目的交換機(jī)之間的路徑MTU。因此,本發(fā)明實(shí)施例僅關(guān)注于該第一探測報(bào)文的長度,而無需關(guān)注該第一探測報(bào)文的內(nèi)容。實(shí)際上,該第一探測報(bào)文可以攜帶長度信息、協(xié)議類型等相關(guān)內(nèi)容,本發(fā)明實(shí)施例對該第一探測報(bào)文的內(nèi)容不做限定。
需要說明的另一點(diǎn)是,本發(fā)明實(shí)施例僅是以源交換機(jī)對與一個(gè)目的交換機(jī)之間的路徑MTU進(jìn)行探測為例,而實(shí)際應(yīng)用中,源交換機(jī)還可以根據(jù)預(yù)設(shè)交換機(jī)地址列表,確定多個(gè)目的交換機(jī)的地址,并根據(jù)每個(gè)目的交換機(jī)的地址,向每個(gè)目的交換機(jī)分別發(fā)送至少一個(gè)探測報(bào)文,以便對該源交換機(jī)與每個(gè)目的交換機(jī)之間的路徑MTU進(jìn)行探測,具體過程在此不再贅述。
602、當(dāng)源交換機(jī)接收到第一響應(yīng)報(bào)文時(shí),減小該預(yù)設(shè)路徑MTU,根據(jù)減小后的預(yù)設(shè)MTU生成第二探測報(bào)文,并繼續(xù)根據(jù)目的交換機(jī)的地址,發(fā)送該第二探測報(bào)文。
當(dāng)接收到該源交換機(jī)與該目的交換機(jī)之間路徑上的任一中間設(shè)備發(fā)送的第一響應(yīng)報(bào)文時(shí),源交換機(jī)將在該預(yù)設(shè)路徑MTU的基礎(chǔ)上,將該預(yù)設(shè)路徑MTU減去預(yù)設(shè)值,得到減小后的預(yù)設(shè)路徑MTU,根據(jù)減小后的預(yù)設(shè)路徑MTU生成第二探測報(bào)文,并繼續(xù)根據(jù)目的交換機(jī)的地址,向目的交換機(jī)發(fā)送該第二探測報(bào)文,接收與該第二探測報(bào)文對應(yīng)的響應(yīng)報(bào)文。
其中,該預(yù)設(shè)值可由源交換機(jī)預(yù)先確定,也可隨機(jī)確定,本發(fā)明實(shí)施例對此不做限定。
另外,減小預(yù)設(shè)路徑MTU后,生成第二探測報(bào)文時(shí),該源交換機(jī)可以在第一探測報(bào)文的基礎(chǔ)上,將該第一探測報(bào)文的長度減小,使得減小后得到的報(bào)文長度等于減小后的預(yù)設(shè)MTU,將長度減小后的報(bào)文作為第二探測報(bào)文?;蛘?,該源交換機(jī)也可以重新生成長度等于減小后的預(yù)設(shè)路徑MTU的報(bào)文,作為第二探測報(bào)文。本發(fā)明實(shí)施例對生成第二探測報(bào)文的方式不做限定。
后續(xù)過程中,當(dāng)與該第二探測報(bào)文對應(yīng)的響應(yīng)報(bào)文仍為第一響應(yīng)報(bào)文時(shí),源交換機(jī)繼續(xù)減小預(yù)設(shè)路徑MTU,并根據(jù)減小后的預(yù)設(shè)MTU生成第三探測報(bào)文,繼續(xù)向目的交換機(jī)發(fā)送該第三探測報(bào)文,以此類推,直至源交換機(jī)接收到第二響應(yīng)報(bào)文為止。
603、源交換機(jī)根據(jù)接收到第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定該第一路徑MTU。
當(dāng)源交換機(jī)接收到目的交換機(jī)發(fā)送的第二響應(yīng)報(bào)文時(shí),表示與該第二響應(yīng)報(bào)文對應(yīng)的探測報(bào)文已成功發(fā)送至該目的交換機(jī),則可以確定,本次發(fā)送的、與該第二響應(yīng)報(bào)文對應(yīng)的探測報(bào)文的長度不大于第一路徑MTU,也即是當(dāng)前的預(yù)設(shè)路徑MTU不大于第一路徑MTU,而與上一次發(fā)送的探測報(bào)文的長度對應(yīng)的預(yù)設(shè)路徑MTU大于第一路徑MTU。此時(shí),可將當(dāng)前的預(yù)設(shè)路徑MTU作為該第一路徑MTU。
例如,如果當(dāng)前的預(yù)設(shè)路徑MTU為1450字節(jié),向目的交換機(jī)發(fā)送根據(jù)當(dāng)前的預(yù)設(shè)路徑MTU生成的探測報(bào)文后,接收到目的交換機(jī)發(fā)送的第二響應(yīng)報(bào)文,則源交換機(jī)即可將該源交換機(jī)與該目的交換機(jī)之間的第一路徑MTU確定為1450字節(jié)。
源交換機(jī)通過多次根據(jù)預(yù)設(shè)路徑MTU發(fā)送探測報(bào)文,并依次減小預(yù)設(shè)路徑MTU,根據(jù)減小后的預(yù)設(shè)路徑MTU生成長度減小后的探測報(bào)文,直至接收到目的交換機(jī)發(fā)送的第二響應(yīng)報(bào)文時(shí),將最后一次發(fā)送的探測報(bào)文,即多個(gè)探測報(bào)文中的長度最小的探測報(bào)文對應(yīng)的預(yù)設(shè)路徑MTU作為第一路徑MTU。也即是,源交換機(jī)引入了學(xué)習(xí)機(jī)制,通過多次發(fā)送探測報(bào)文,并根據(jù)多個(gè)探測報(bào)文對應(yīng)的響應(yīng)報(bào)文進(jìn)行學(xué)習(xí),探測出第一路徑MTU,以便根據(jù)第一路徑MTU確定第二路徑MTU。
需要說明的一點(diǎn)是,本發(fā)明實(shí)施例僅是以探測源交換機(jī)與目的交換機(jī)之間的一條路徑的MTU的過程為例,而在實(shí)際應(yīng)用中,源交換機(jī)可以配置多個(gè)端口,通過每個(gè)端口與目的交換機(jī)進(jìn)行通信,且源交換機(jī)配置的不同端口與目的交換機(jī)之間的路徑可以相同,也可以不同。
那么,為了更加準(zhǔn)確地確定源交換機(jī)與目的交換機(jī)之間的第一路徑MTU,源交換機(jī)還可以基于源交換機(jī)的多個(gè)端口和預(yù)設(shè)路徑MTU分別發(fā)送探測報(bào)文,進(jìn)而確定每個(gè)端口對應(yīng)的路徑MTU,再根據(jù)每個(gè)端口對應(yīng)的路徑MTU,確定 第一路徑MTU。
具體地,該源交換機(jī)可以遍歷配置的每個(gè)端口,根據(jù)該目的交換機(jī)的地址以及預(yù)設(shè)路徑MTU,基于遍歷到的每個(gè)端口發(fā)送至少一個(gè)探測報(bào)文,并通過遍歷到的每個(gè)端口,接收與該至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,進(jìn)而根據(jù)每個(gè)端口接收到第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定每個(gè)端口對應(yīng)的路徑MTU。之后,源交換機(jī)可以從每個(gè)端口對應(yīng)的路徑MTU中,選取最小的路徑MTU作為該第一路徑MTU。
可選地,在ECMP(Equal-Cost Multipath Routing,等價(jià)路由)等網(wǎng)絡(luò)場景下,源交換機(jī)可以選取一段連續(xù)范圍內(nèi)的端口號,如[100,200]等,對該范圍所指示的每個(gè)端口進(jìn)行遍歷,確定每個(gè)端口對應(yīng)的路徑MTU。
604、源交換機(jī)根據(jù)該第一路徑MTU及預(yù)設(shè)封裝長度,確定接入該源交換機(jī)的源虛擬機(jī)與接入該目的交換機(jī)的目的虛擬機(jī)之間的第二路徑MTU。
源虛擬機(jī)與目的虛擬機(jī)之間的路徑包括從源虛擬機(jī)到源交換機(jī)之間的路徑、源交換機(jī)與目的交換機(jī)之間的路徑以及目的交換機(jī)到目的虛擬機(jī)之間的路徑。相應(yīng)的,每次源虛擬機(jī)向目的虛擬機(jī)發(fā)送數(shù)據(jù)報(bào)文時(shí),會先向源交換機(jī)發(fā)送該數(shù)據(jù)報(bào)文,源交換機(jī)接收到該數(shù)據(jù)報(bào)文時(shí),會按照隧道協(xié)議為該數(shù)據(jù)報(bào)文封裝一層以源交換機(jī)的地址為源設(shè)備地址、以目的交換機(jī)的地址為目標(biāo)設(shè)備地址的外層頭,得到封裝報(bào)文,源交換機(jī)向目的交換機(jī)發(fā)送封裝報(bào)文,目的交換機(jī)接收到該封裝報(bào)文后,會按照隧道協(xié)議對封裝報(bào)文進(jìn)行解封裝,并將解封裝后得到的報(bào)文發(fā)送給目的虛擬機(jī)。
上述發(fā)送數(shù)據(jù)報(bào)文的過程中,由于源交換機(jī)對數(shù)據(jù)報(bào)文進(jìn)行了封裝,會導(dǎo)致封裝報(bào)文的長度會比數(shù)據(jù)報(bào)文的長度多出預(yù)設(shè)封裝長度。
則為了保證每次發(fā)送的數(shù)據(jù)報(bào)文均能通過源交換機(jī)與目的交換機(jī)之間的路徑上的所有設(shè)備,源交換機(jī)確定源交換機(jī)與目的交換機(jī)之間的第一路徑MTU之后,可以計(jì)算第一路徑MTU與該預(yù)設(shè)封裝長度之間的差值,將該差值確定為源虛擬機(jī)與目的虛擬機(jī)之間的第二路徑MTU。那么,如果源虛擬機(jī)向目的虛擬機(jī)發(fā)送的數(shù)據(jù)報(bào)文的長度小于第二路徑MTU,源交換機(jī)對該數(shù)據(jù)報(bào)文進(jìn)行封裝后,所得到的封裝報(bào)文的長度就會小于第一路徑MTU,該封裝報(bào)文即可成功發(fā)送至目的交換機(jī)。
需要說明的是,本發(fā)明實(shí)施例僅是以發(fā)送多次探測報(bào)文,探測出第一路徑 MTU,并探測出第二路徑MTU為例,而在實(shí)際應(yīng)用中,源交換機(jī)還可以每隔預(yù)設(shè)時(shí)長,探測一次第一路徑MTU和第二路徑MTU,進(jìn)而實(shí)現(xiàn)周期性探測,以保證當(dāng)源交換機(jī)與目的交換機(jī)之間的路徑隨時(shí)間發(fā)生變化時(shí),也能夠準(zhǔn)確地探測出變化后的路徑MTU。
605、源虛擬機(jī)通過源交換機(jī)向目的虛擬機(jī)發(fā)送第一數(shù)據(jù)報(bào)文。
源虛擬機(jī)要向目的虛擬機(jī)發(fā)送數(shù)據(jù)時(shí),會以源虛擬機(jī)的地址為源設(shè)備地址,以目的虛擬機(jī)的地址為目標(biāo)設(shè)備地址,生成包含待發(fā)送數(shù)據(jù)的第一數(shù)據(jù)報(bào)文,通過源交換機(jī)向目的虛擬機(jī)發(fā)送該第一數(shù)據(jù)報(bào)文,由源交換機(jī)將第一數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)至目的虛擬機(jī)。
606、源交換機(jī)獲取該源虛擬機(jī)發(fā)往該目的虛擬機(jī)的第一數(shù)據(jù)報(bào)文。
源交換機(jī)接收到該第一數(shù)據(jù)報(bào)文時(shí),并不會直接對該第一數(shù)據(jù)報(bào)文進(jìn)行封裝和轉(zhuǎn)發(fā),而是先獲取該第一數(shù)據(jù)報(bào)文的長度,將該第一數(shù)據(jù)報(bào)文的長度與該第二路徑MTU進(jìn)行比較,判斷該第一數(shù)據(jù)報(bào)文的長度是否大于第二路徑MTU。
607、當(dāng)源交換機(jī)確定該第一數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU時(shí),向該源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,該第三響應(yīng)報(bào)文用于指示該第一數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU。
當(dāng)源交換機(jī)確定第一數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU時(shí),表示該第一數(shù)據(jù)報(bào)文封裝后得到的封裝報(bào)文的長度將大于該第一路徑MTU,則該第一數(shù)據(jù)報(bào)文無法成功發(fā)送至目的交換機(jī),相應(yīng)的,也無法發(fā)送至目的虛擬機(jī)。
此時(shí),該源交換機(jī)可以向該源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,指示該第一數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU。例如,該源交換機(jī)可以以目的虛擬機(jī)的地址為源地址,代為發(fā)送第三響應(yīng)報(bào)文至源虛擬機(jī)。其中,該第三響應(yīng)報(bào)文可以為ICMP too big報(bào)文等,本發(fā)明實(shí)施例對此不做限定。
在本發(fā)明實(shí)施例提供的另一實(shí)施例中,如果該第一數(shù)據(jù)報(bào)文的長度不大于第二路徑MTU,源交換機(jī)即可確定對第一數(shù)據(jù)報(bào)文進(jìn)行封裝后得到的封裝報(bào)文可以成功發(fā)送至目的交換機(jī),則源交換機(jī)可以對第一數(shù)據(jù)報(bào)文進(jìn)行封裝,封裝后發(fā)送至目的交換機(jī),且源交換機(jī)還可以向源虛擬機(jī)發(fā)送第四響應(yīng)報(bào)文,該第四響應(yīng)報(bào)文用于指示第一數(shù)據(jù)報(bào)文的長度不大于源虛擬機(jī)與目的虛擬機(jī)之間的第二路徑MTU。
608、源虛擬機(jī)接收到源交換機(jī)發(fā)送的第三響應(yīng)報(bào)文時(shí),生成第二數(shù)據(jù)報(bào)文, 該第二數(shù)據(jù)報(bào)文的長度小于該第一數(shù)據(jù)報(bào)文的長度,繼續(xù)向該源交換機(jī)發(fā)送第二數(shù)據(jù)報(bào)文,直至接收到第四響應(yīng)報(bào)文。
源虛擬機(jī)接收到該第三響應(yīng)報(bào)文時(shí),表示該第一數(shù)據(jù)報(bào)文的長度過大,不能成功發(fā)送至目的交換機(jī),則源虛擬機(jī)可以生成長度小于該第一數(shù)據(jù)報(bào)文長度的第二數(shù)據(jù)報(bào)文,繼續(xù)向該源交換機(jī)發(fā)送第二數(shù)據(jù)報(bào)文。
其中,生成第二數(shù)據(jù)報(bào)文時(shí),該源虛擬機(jī)可以將該第一數(shù)據(jù)報(bào)文劃分為多個(gè)長度較小的數(shù)據(jù)報(bào)文,將劃分得到的其中一個(gè)數(shù)據(jù)報(bào)文作為第二數(shù)據(jù)報(bào)文,發(fā)送至源交換機(jī),后續(xù)再發(fā)送劃分得到的其他數(shù)據(jù)報(bào)文。
后續(xù)過程中,當(dāng)源虛擬機(jī)接收到的與該第二數(shù)據(jù)報(bào)文對應(yīng)的響應(yīng)報(bào)文仍為第三響應(yīng)報(bào)文時(shí),繼續(xù)生成長度小于該第二數(shù)據(jù)報(bào)文的第三數(shù)據(jù)報(bào)文,并繼續(xù)向目的虛擬機(jī)發(fā)送該第三數(shù)據(jù)報(bào)文,以此類推,直至接收到第四響應(yīng)報(bào)文為止。
需要說明的一點(diǎn)是,該源虛擬機(jī)對第一數(shù)據(jù)報(bào)文進(jìn)行劃分得到的報(bào)文數(shù)目可以由源虛擬機(jī)預(yù)先確定或者隨機(jī)確定,該第一數(shù)據(jù)報(bào)文的長度與第二數(shù)據(jù)報(bào)文的長度之間的差值也可由源交換機(jī)預(yù)先確定或者隨機(jī)確定,本發(fā)明實(shí)施例對此均不做限定。
需要說明的另一點(diǎn)是,源虛擬機(jī)與源交換機(jī)之間可以通過運(yùn)行的TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議)協(xié)議棧進(jìn)行交互。例如,當(dāng)源虛擬機(jī)發(fā)送第一數(shù)據(jù)報(bào)文后,接收到第三響應(yīng)報(bào)文時(shí),會根據(jù)TCP/IP協(xié)議棧,修改第一數(shù)據(jù)報(bào)文的長度,得到第二數(shù)據(jù)報(bào)文。
609、源虛擬機(jī)根據(jù)與該第四響應(yīng)報(bào)文對應(yīng)的數(shù)據(jù)報(bào)文的長度,確定該第二路徑MTU。
當(dāng)源虛擬機(jī)接收到源交換機(jī)發(fā)送的第四響應(yīng)報(bào)文時(shí),表示與該第四響應(yīng)報(bào)文對應(yīng)的數(shù)據(jù)報(bào)文可以成功發(fā)送至該目的虛擬機(jī),則可以確定,本次發(fā)送的、與該第四響應(yīng)報(bào)文對應(yīng)的數(shù)據(jù)報(bào)文的長度不大于第二路徑MTU,而上一次發(fā)送的數(shù)據(jù)報(bào)文的長度大于第二路徑MTU。此時(shí),源虛擬機(jī)可將與該第四響應(yīng)報(bào)文對應(yīng)的數(shù)據(jù)報(bào)文的長度確定為該第二路徑MTU。
源虛擬機(jī)通過多次發(fā)送數(shù)據(jù)報(bào)文,并接收到與待發(fā)送數(shù)據(jù)報(bào)文對應(yīng)的第三響應(yīng)報(bào)文時(shí)減小數(shù)據(jù)報(bào)文的長度,直至接收到第四響應(yīng)報(bào)文為止,將最后一次發(fā)送的數(shù)據(jù)報(bào)文的長度,即多個(gè)數(shù)據(jù)報(bào)文中的最小長度作為第二路徑MTU。
本發(fā)明實(shí)施例中,通過在源交換機(jī)中定義第三響應(yīng)報(bào)文和第四響應(yīng)報(bào)文,以第三響應(yīng)報(bào)文對源虛擬機(jī)發(fā)出的長度過大的數(shù)據(jù)報(bào)文進(jìn)行預(yù)警,并在源虛擬機(jī)中引入了學(xué)習(xí)機(jī)制,使得源虛擬機(jī)能夠通過多次發(fā)送數(shù)據(jù)報(bào)文,并根據(jù)多個(gè)數(shù)據(jù)報(bào)文對應(yīng)的響應(yīng)報(bào)文進(jìn)行學(xué)習(xí),確定出第二路徑MTU。
例如,源虛擬機(jī)接收到源交換機(jī)的至少一個(gè)響應(yīng)報(bào)文后,源虛擬機(jī)的TCP/IP協(xié)議棧可根據(jù)該至少一個(gè)響應(yīng)報(bào)文,學(xué)習(xí)到第二路徑MTU。
后續(xù)過程中,源虛擬機(jī)可根據(jù)學(xué)習(xí)到的第二路徑MTU發(fā)送數(shù)據(jù)報(bào)文,保證發(fā)送的數(shù)據(jù)報(bào)文的長度不大于該第二路徑MTU,避免了報(bào)文發(fā)送失敗的問題,提高了發(fā)送報(bào)文的成功率。
需要說明的是,本發(fā)明實(shí)施例僅是以源交換機(jī)對源虛擬機(jī)發(fā)送的每個(gè)數(shù)據(jù)報(bào)文均進(jìn)行響應(yīng)為例,而在實(shí)際應(yīng)用中,源交換機(jī)還可以對源虛擬機(jī)發(fā)送的數(shù)據(jù)報(bào)文進(jìn)行采樣,根據(jù)第二路徑MTU,對采樣得到的數(shù)據(jù)報(bào)文進(jìn)行響應(yīng),而對于其他的數(shù)據(jù)報(bào)文,源交換機(jī)直接對這些數(shù)據(jù)報(bào)文進(jìn)行封裝后發(fā)送至目的虛擬機(jī)即可。其中,源交換機(jī)可以按照采樣頻率進(jìn)行采樣,源交換機(jī)的采樣頻率可以預(yù)先確定,也可以根據(jù)當(dāng)前的空閑硬件資源確定,或者源交換機(jī)還可以采用鏡像、sFlow(網(wǎng)絡(luò)監(jiān)測技術(shù))、NetStream(報(bào)文統(tǒng)計(jì)功能)等技術(shù)對數(shù)據(jù)報(bào)文進(jìn)行采樣,本發(fā)明實(shí)施例對此均不做限定。
源交換機(jī)通過對源虛擬機(jī)發(fā)送的數(shù)據(jù)報(bào)文進(jìn)行采樣,對采樣得到的數(shù)據(jù)報(bào)文進(jìn)行響應(yīng),保證了源虛擬機(jī)根據(jù)源交換機(jī)返回的響應(yīng)報(bào)文學(xué)習(xí)到第二路徑MTU,而且,無需對源虛擬機(jī)發(fā)送的每個(gè)報(bào)文進(jìn)行響應(yīng),減小了源交換機(jī)的壓力。
本發(fā)明實(shí)施例中的源交換機(jī)和目的交換機(jī)均可為網(wǎng)絡(luò)系統(tǒng)中的任一交換機(jī)??蛇x地,源交換機(jī)和目的交換機(jī)可以為位于VXLAN中同一數(shù)據(jù)中心內(nèi)的兩個(gè)交換機(jī),也可以為位于VXLAN中不同數(shù)據(jù)中心的兩個(gè)交換機(jī),或者,源交換機(jī)和目的交換機(jī)還可以為跨IP/MPLS公網(wǎng)的二層互聯(lián)網(wǎng)絡(luò)中的兩個(gè)交換機(jī),本發(fā)明實(shí)施例對該源交換機(jī)和該目的交換機(jī)不做限定。
可選地,源交換機(jī)可以根據(jù)需求,確定需要探測路徑MTU的目的交換機(jī),如源交換機(jī)可以僅探測與不同數(shù)據(jù)中心的交換機(jī)之間的路徑MTU,而無需探測同一數(shù)據(jù)中心內(nèi)的交換機(jī)之間的路徑MTU。
本發(fā)明實(shí)施例通過發(fā)送至少一個(gè)探測報(bào)文的方式進(jìn)行學(xué)習(xí),從而探測到源 交換機(jī)與目的交換機(jī)之間的第一路徑MTU,并確定源虛擬機(jī)與目的虛擬機(jī)之間的第二路徑MTU,以便根據(jù)第二路徑MTU控制源虛擬機(jī)所發(fā)送報(bào)文的長度,避免了報(bào)文發(fā)送失敗的問題,提高了發(fā)送報(bào)文的成功率。
上述實(shí)施例中,源交換機(jī)在確定第二路徑MTU以后,根據(jù)第二路徑MTU,對源虛擬機(jī)發(fā)送的報(bào)文進(jìn)行響應(yīng),而在實(shí)際應(yīng)用中,還可以由控制器監(jiān)聽源虛擬機(jī)發(fā)送給源交換機(jī)的報(bào)文,并根據(jù)該第二路徑MTU對監(jiān)聽到的報(bào)文進(jìn)行響應(yīng)。
也即是,參見圖7,在步驟604之后,該方法還包括:
610、源交換機(jī)向控制器發(fā)送該第二路徑MTU。
源交換機(jī)確定源虛擬機(jī)與目的虛擬機(jī)之間的第二路徑MTU后,可以向控制器發(fā)送該第二路徑MTU。其中,該控制器可以為堡壘機(jī)、控制器等,本發(fā)明實(shí)施例對此不做限定。
611、控制器獲取源交換機(jī)發(fā)送的第二路徑MTU,并監(jiān)聽源虛擬機(jī)發(fā)送給該源交換機(jī)的數(shù)據(jù)報(bào)文。
該控制器接收該源交換機(jī)發(fā)送的第二路徑MTU,并存儲該第二路徑MTU。后續(xù)過程中,控制器即可監(jiān)聽源虛擬機(jī)通過該源交換機(jī)發(fā)往目的虛擬機(jī)的數(shù)據(jù)報(bào)文,每當(dāng)監(jiān)聽到數(shù)據(jù)報(bào)文時(shí),確定該數(shù)據(jù)報(bào)文的長度,將該數(shù)據(jù)報(bào)文的長度與該第二路徑MTU進(jìn)行比較,判斷該數(shù)據(jù)報(bào)文的長度是否大于第二路徑MTU。
另外,該控制器還可以對源虛擬機(jī)發(fā)送給該源交換機(jī)的數(shù)據(jù)報(bào)文進(jìn)行分析,例如,分析該數(shù)據(jù)報(bào)文耗費(fèi)的流量、數(shù)據(jù)報(bào)文的長度、數(shù)據(jù)報(bào)文的目標(biāo)設(shè)備地址等,本發(fā)明實(shí)施例對此不做限定。
612、當(dāng)確定該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU時(shí),控制器向該源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,該第三響應(yīng)報(bào)文用于指示該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU。
當(dāng)控制器確定第一數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU時(shí),表示該第一數(shù)據(jù)報(bào)文封裝后得到的封裝報(bào)文的長度將大于該第一路徑MTU,則該第一數(shù)據(jù)報(bào)文無法成功發(fā)送至目的交換機(jī),相應(yīng)的,也無法發(fā)送至目的虛擬機(jī)。
此時(shí),該控制器可以向該源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,以指示該第一數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU。例如,該控制器可以以目的虛擬機(jī)的地址為 源地址,代為發(fā)送第三響應(yīng)報(bào)文至源虛擬機(jī)。
在本發(fā)明實(shí)施例提供的另一實(shí)施例中,如果該第一數(shù)據(jù)報(bào)文的長度不大于第二路徑MTU,控制器即可確定對第一數(shù)據(jù)報(bào)文進(jìn)行封裝后得到的封裝報(bào)文可以成功發(fā)送至目的交換機(jī),則控制器可以不對該第一數(shù)據(jù)報(bào)文進(jìn)行響應(yīng),也可以向源虛擬機(jī)發(fā)送第四響應(yīng)報(bào)文,該第四響應(yīng)報(bào)文用于指示第一數(shù)據(jù)報(bào)文的長度不大于源虛擬機(jī)與目的虛擬機(jī)之間的第二路徑MTU。
613、源虛擬機(jī)接收到控制器發(fā)送的第三響應(yīng)報(bào)文時(shí),生成第二數(shù)據(jù)報(bào)文,該第二數(shù)據(jù)報(bào)文的長度小于該第一數(shù)據(jù)報(bào)文的長度,繼續(xù)向該控制器發(fā)送第二數(shù)據(jù)報(bào)文,直至接收到第四響應(yīng)報(bào)文。
614、源虛擬機(jī)根據(jù)與該第四響應(yīng)報(bào)文對應(yīng)的數(shù)據(jù)報(bào)文的長度,確定該第二路徑MTU。
上述步驟613-614與上述步驟608-609類似,區(qū)別僅在于執(zhí)行主體不同,上述步驟613-614的執(zhí)行主體為控制器,而步驟608-609的執(zhí)行主體為源交換機(jī),具體過程在此不再贅述。
本發(fā)明實(shí)施例中,通過在控制器中定義第三響應(yīng)報(bào)文和第四響應(yīng)報(bào)文,以第三響應(yīng)報(bào)文對源虛擬機(jī)發(fā)出的長度過大的數(shù)據(jù)報(bào)文進(jìn)行預(yù)警,并在源虛擬機(jī)中引入了學(xué)習(xí)機(jī)制,使得源虛擬機(jī)能夠通過多次發(fā)送數(shù)據(jù)報(bào)文,并根據(jù)多個(gè)數(shù)據(jù)報(bào)文對應(yīng)的響應(yīng)報(bào)文進(jìn)行學(xué)習(xí),探測出第二路徑MTU。
后續(xù)過程中,源虛擬機(jī)可根據(jù)學(xué)習(xí)到的第二路徑MTU發(fā)送數(shù)據(jù)報(bào)文,保證發(fā)送的數(shù)據(jù)報(bào)文的長度不大于該第二路徑MTU,避免了報(bào)文發(fā)送失敗的問題,提高了發(fā)送報(bào)文的成功率。
需要說明的是,本發(fā)明實(shí)施例僅是以控制器對源虛擬機(jī)發(fā)送的每個(gè)數(shù)據(jù)報(bào)文均進(jìn)行響應(yīng)為例,而在實(shí)際應(yīng)用中,控制器還可以對源虛擬機(jī)發(fā)送的數(shù)據(jù)報(bào)文進(jìn)行采樣,根據(jù)第二路徑MTU,對采樣得到的數(shù)據(jù)報(bào)文進(jìn)行響應(yīng),而對于其他的數(shù)據(jù)報(bào)文,控制器直接對這些數(shù)據(jù)報(bào)文進(jìn)行封裝后發(fā)送至目的虛擬機(jī)即可。
控制器通過對源虛擬機(jī)發(fā)送的數(shù)據(jù)報(bào)文進(jìn)行采樣,對采樣得到的數(shù)據(jù)報(bào)文進(jìn)行響應(yīng),保證了源虛擬機(jī)根據(jù)控制器返回的響應(yīng)報(bào)文學(xué)習(xí)到第二路徑MTU,而且,無需對源虛擬機(jī)發(fā)送的每個(gè)報(bào)文進(jìn)行響應(yīng),減小了控制器的壓力。
本發(fā)明實(shí)施例通過源交換機(jī)確定第二路徑MTU后,向控制器發(fā)送第二路徑MTU,由處理能力較強(qiáng)的控制器監(jiān)聽源虛擬機(jī)發(fā)送給源交換機(jī)的報(bào)文,并代替 源交換機(jī)對監(jiān)聽到的報(bào)文進(jìn)行響應(yīng),提高了響應(yīng)效率,無需耗費(fèi)源交換機(jī)的硬件資源,減小了源交換機(jī)的壓力,且能夠防止源交換機(jī)被探測攻擊,提高了網(wǎng)絡(luò)系統(tǒng)的安全性。
圖8是本發(fā)明實(shí)施例提供的一種探測路徑MTU的方法的流程圖,本發(fā)明實(shí)施例的執(zhí)行主體為源交換機(jī),參見圖8,該方法可以包括:
801、根據(jù)目的交換機(jī)的地址和預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探測報(bào)文,并獲取與該至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,該至少一個(gè)響應(yīng)報(bào)文包括第一響應(yīng)報(bào)文和第二響應(yīng)報(bào)文中的至少一個(gè),該第一響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU大于源交換機(jī)與該目的交換機(jī)之間的第一路徑MTU,該第二響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU不大于該第一路徑MTU;
802、根據(jù)接收到第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定該第一路徑MTU;
803、根據(jù)該第一路徑MTU及預(yù)設(shè)封裝長度,確定接入該源交換機(jī)的源虛擬機(jī)與接入該目的交換機(jī)的目的虛擬機(jī)之間的第二路徑MTU。
本發(fā)明實(shí)施例提供的方法,通過發(fā)送至少一個(gè)探測報(bào)文的方式進(jìn)行學(xué)習(xí),從而探測到源交換機(jī)與目的交換機(jī)之間的第一路徑MTU,并確定源虛擬機(jī)與目的虛擬機(jī)之間的第二路徑MTU,以便根據(jù)第二路徑MTU控制源虛擬機(jī)所發(fā)送報(bào)文的長度,避免了報(bào)文發(fā)送失敗的問題,提高了發(fā)送報(bào)文的成功率。
可選地,該根據(jù)該第一路徑MTU及預(yù)設(shè)封裝長度,確定接入該源交換機(jī)的源虛擬機(jī)與接入該目的交換機(jī)的目的虛擬機(jī)之間的第二路徑MTU之后,該方法還包括:
獲取該源虛擬機(jī)發(fā)往該目的虛擬機(jī)的數(shù)據(jù)報(bào)文;
當(dāng)確定該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU時(shí),向該源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,該第三響應(yīng)報(bào)文用于指示該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU。
可選地,該根據(jù)目的交換機(jī)的地址預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探測報(bào)文,包括:
根據(jù)預(yù)設(shè)交換機(jī)地址列表,確定多個(gè)目的交換機(jī)的地址;
根據(jù)每個(gè)目的交換機(jī)的地址以及該預(yù)設(shè)路徑MTU,向每個(gè)目的交換機(jī)發(fā)送至少一個(gè)探測報(bào)文。
可選地,該根據(jù)目的交換機(jī)的地址以及該預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探 測報(bào)文,并獲取與該至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,包括:
根據(jù)該目的交換機(jī)的地址以及該預(yù)設(shè)路徑MTU,發(fā)送第一探測報(bào)文;
當(dāng)接收到該第一響應(yīng)報(bào)文時(shí),減小該預(yù)設(shè)路徑MTU,根據(jù)該減小后的預(yù)設(shè)MTU生成第二探測報(bào)文。
可選地,該根據(jù)目的交換機(jī)的地址以及該預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探測報(bào)文,并獲取與該至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,包括:
遍歷配置的每個(gè)端口;
根據(jù)該目的交換機(jī)的地址以及該預(yù)設(shè)路徑MTU,基于遍歷到的每個(gè)端口發(fā)送至少一個(gè)探測報(bào)文;
通過該遍歷到的端口,接收與該至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文。
可選地,根據(jù)接收到所述第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定所述第一路徑MTU,包括:
根據(jù)每個(gè)端口接收到所述第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定每個(gè)端口對應(yīng)的路徑MTU;
根據(jù)每個(gè)端口對應(yīng)的路徑MTU,確定該第一路徑MTU。
可選地,該根據(jù)該第一路徑MTU及預(yù)設(shè)封裝長度,確定接入該源交換機(jī)的源虛擬機(jī)與接入該目的交換機(jī)的目的虛擬機(jī)之間的第二路徑MTU,包括:
計(jì)算該第一路徑MTU與該預(yù)設(shè)封裝長度之間的差值;
將該差值確定為該第二路徑MTU。
可選地,該根據(jù)該第一路徑MTU及預(yù)設(shè)封裝長度,確定接入該源交換機(jī)的源虛擬機(jī)與接入該目的交換機(jī)的目的虛擬機(jī)之間的第二路徑MTU之后,該方法還包括:
向控制器發(fā)送該第二路徑MTU,使得該控制器監(jiān)聽該源虛擬機(jī)發(fā)送給該本端的數(shù)據(jù)報(bào)文,根據(jù)該第二路徑MTU對監(jiān)聽到的數(shù)據(jù)報(bào)文進(jìn)行響應(yīng)。
圖9是本發(fā)明實(shí)施例提供的一種探測路徑MTU的方法的流程圖,本發(fā)明實(shí)施例的執(zhí)行主體為源虛擬機(jī),參見圖9,該方法可以包括:
901、通過源交換機(jī)向目的虛擬機(jī)發(fā)送至少一個(gè)數(shù)據(jù)報(bào)文,使得該源交換機(jī)或控制器根據(jù)探測到的第二路徑MTU,返回與該至少一個(gè)數(shù)據(jù)報(bào)文對應(yīng)的至少 一個(gè)響應(yīng)報(bào)文;
902、接收該至少一個(gè)響應(yīng)報(bào)文,根據(jù)該至少一個(gè)響應(yīng)報(bào)文,確定該第二路徑MTU;
其中,該第二路徑MTU由該源交換機(jī)根據(jù)探測到的第一路徑MTU及預(yù)設(shè)封裝長度確定,該第一路徑MTU為該源交換機(jī)與該目的虛擬機(jī)接入的目的交換機(jī)之間的路徑MTU,該第二路徑MTU為該源虛擬機(jī)與該目的虛擬機(jī)之間的路徑MTU;
該響應(yīng)報(bào)文為第三響應(yīng)報(bào)文或第四響應(yīng)報(bào)文,該第三響應(yīng)報(bào)文用于指示對應(yīng)數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU,該第四響應(yīng)報(bào)文用于指示對應(yīng)數(shù)據(jù)報(bào)文的長度不大于該第二路徑MTU。
本發(fā)明實(shí)施例提供的方法,通過向源交換機(jī)發(fā)送發(fā)往目的虛擬機(jī)的至少一個(gè)數(shù)據(jù)報(bào)文,使得該源交換機(jī)或控制器根據(jù)探測到的第二路徑MTU,返回與該至少一個(gè)數(shù)據(jù)報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,并根據(jù)該至少一個(gè)響應(yīng)報(bào)文,確定該第二路徑MTU,以便根據(jù)第二路徑MTU控制所發(fā)送報(bào)文的長度,避免了報(bào)文發(fā)送失敗的問題,提高了發(fā)送報(bào)文的成功率。
可選地,該方法還包括:
向該源交換機(jī)發(fā)送發(fā)往目的虛擬機(jī)的第一數(shù)據(jù)報(bào)文;
如果接收到的與該第一數(shù)據(jù)報(bào)文對應(yīng)的響應(yīng)報(bào)文為該第三響應(yīng)報(bào)文時(shí),生成第二數(shù)據(jù)報(bào)文,該第二數(shù)據(jù)報(bào)文的長度小于該第一數(shù)據(jù)報(bào)文的長度;
繼續(xù)向該源交換機(jī)發(fā)送該第二數(shù)據(jù)報(bào)文,直至接收到該第四響應(yīng)報(bào)文時(shí),根據(jù)與該第四響應(yīng)報(bào)文對應(yīng)的數(shù)據(jù)報(bào)文的長度,確定該第二路徑MTU。
圖10是本發(fā)明實(shí)施例提供的一種探測路徑MTU的方法的流程圖,本發(fā)明實(shí)施例的執(zhí)行主體為控制器,參見圖9,該方法可以包括:
1001、獲取源交換機(jī)發(fā)送的第二路徑MTU,該第二路徑MTU為接入該源交換機(jī)的源虛擬機(jī)與目的虛擬機(jī)之間的路徑MTU;
1002、監(jiān)聽該源虛擬機(jī)發(fā)送給該源交換機(jī)的數(shù)據(jù)報(bào)文;
1003、當(dāng)確定該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU時(shí),向該源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,該第三響應(yīng)報(bào)文用于指示該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU。
本發(fā)明實(shí)施例提供的方法,通過源交換機(jī)確定第二路徑MTU后,向控制器發(fā)送第二路徑MTU,由處理能力較強(qiáng)的控制器監(jiān)聽源虛擬機(jī)發(fā)送給源交換機(jī)的報(bào)文,并代替源交換機(jī)對監(jiān)聽到的報(bào)文進(jìn)行響應(yīng),提高了響應(yīng)效率,無需耗費(fèi)源交換機(jī)的硬件資源,減小了源交換機(jī)的壓力,且能夠防止源交換機(jī)被探測攻擊,提高了網(wǎng)絡(luò)系統(tǒng)的安全性。
可選地,所述第二路徑MTU由所述源交換機(jī)根據(jù)所述源交換機(jī)與所述目的虛擬機(jī)接入的目的交換機(jī)之間的第一路徑MTU以及預(yù)設(shè)封裝長度確定,所述第一路徑MTU由所述源交換機(jī)根據(jù)所述目的交換機(jī)的地址和預(yù)設(shè)路徑MTU發(fā)送至少一個(gè)探測報(bào)文,獲取與所述至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,并根據(jù)接收到第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU確定,所述至少一個(gè)響應(yīng)報(bào)文包括第一響應(yīng)報(bào)文和所述第二響應(yīng)報(bào)文中的至少一個(gè)。
圖11是本發(fā)明實(shí)施例提供的一種探測路徑MTU的裝置結(jié)構(gòu)示意圖,參見圖11,該裝置包括:發(fā)送模塊1101、接收模塊1102、第一確定模塊1103和第二確定模塊1104。
發(fā)送模塊1101用于根據(jù)目的交換機(jī)的地址和預(yù)設(shè)路徑MTU,發(fā)送至少一個(gè)探測報(bào)文。
接收模塊1102用于獲取與該至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,該至少一個(gè)響應(yīng)報(bào)文包括第一響應(yīng)報(bào)文和第二響應(yīng)報(bào)文中的至少一個(gè),該第一響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU大于源交換機(jī)與該目的交換機(jī)之間的第一路徑MTU,該第二響應(yīng)報(bào)文用于指示當(dāng)前的預(yù)設(shè)路徑MTU不大于該第一路徑MTU。
第一確定模塊1103用于根據(jù)接收到該第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定該第一路徑MTU。
第二確定模塊1104用于根據(jù)該第一路徑MTU及預(yù)設(shè)封裝長度,確定接入該源交換機(jī)的源虛擬機(jī)與接入該目的交換機(jī)的目的虛擬機(jī)之間的第二路徑MTU。
本發(fā)明實(shí)施例提供的裝置,通過發(fā)送至少一個(gè)探測報(bào)文的方式進(jìn)行學(xué)習(xí),從而探測到源交換機(jī)與目的交換機(jī)之間的第一路徑MTU,并確定源虛擬機(jī)與目的虛擬機(jī)之間的第二路徑MTU,以便根據(jù)第二路徑MTU控制源虛擬機(jī)所發(fā)送 報(bào)文的長度,避免了報(bào)文發(fā)送失敗的問題,提高了發(fā)送報(bào)文的成功率。
可選地,該接收模塊1102,還用于獲取該源虛擬機(jī)發(fā)往該目的虛擬機(jī)的數(shù)據(jù)報(bào)文;
該發(fā)送模塊1101,還用于當(dāng)確定該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU時(shí),向該源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,該第三響應(yīng)報(bào)文用于指示該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU。
可選地,該發(fā)送模塊1101還用于根據(jù)預(yù)設(shè)交換機(jī)地址列表,確定多個(gè)目的交換機(jī)的地址;根據(jù)每個(gè)目的交換機(jī)的地址以及該預(yù)設(shè)路徑MTU,向每個(gè)目的交換機(jī)發(fā)送至少一個(gè)探測報(bào)文。
可選地,該發(fā)送模塊101還用于根據(jù)該目的交換機(jī)的地址以及該預(yù)設(shè)路徑MTU,發(fā)送第一探測報(bào)文;
該接收模塊1102還用于當(dāng)接收到該第一響應(yīng)報(bào)文時(shí),減小該預(yù)設(shè)路徑MTU,根據(jù)該減小后的預(yù)設(shè)MTU生成第二探測報(bào)文;
該發(fā)送模塊1101還用于繼續(xù)根據(jù)該目的交換機(jī)的地址,發(fā)送該第二探測報(bào)文。
可選地,該發(fā)送模塊1101還用于遍歷配置的每個(gè)端口;根據(jù)該目的交換機(jī)的地址以及該預(yù)設(shè)路徑MTU,基于遍歷到的每個(gè)端口發(fā)送至少一個(gè)探測報(bào)文;
該接收模塊1102還用于通過該遍歷到的端口,接收與該至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文。
可選地,該第一確定模塊1103還用于根據(jù)根據(jù)每個(gè)端口接收到該第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU,確定每個(gè)端口對應(yīng)的路徑MTU;根據(jù)每個(gè)端口對應(yīng)的路徑MTU,確定該第一路徑MTU。
可選地,該第二確定模塊1104還用于計(jì)算該第一路徑MTU與該預(yù)設(shè)封裝長度之間的差值;將該差值確定為該第二路徑MTU。
可選地,該發(fā)送模塊1101還用于向控制器發(fā)送該第二路徑MTU,使得該控制器監(jiān)聽該源虛擬機(jī)發(fā)送給該源交換機(jī)的數(shù)據(jù)報(bào)文,根據(jù)該第二路徑MTU對監(jiān)聽到的數(shù)據(jù)報(bào)文進(jìn)行響應(yīng)。
結(jié)合上述圖6所示實(shí)施例,發(fā)送模塊1101和接收模塊1102可以用于執(zhí)行上述步驟601-602,第一確定模塊1103可以用于執(zhí)行上述步驟603,第二確定模塊1104可以用于執(zhí)行上述步驟604。
圖12是本發(fā)明實(shí)施例提供的一種探測路徑MTU的裝置結(jié)構(gòu)示意圖,參見圖12,該裝置包括:發(fā)送模塊1201、接收模塊1202和確定模塊1203。
發(fā)送模塊1201用于通過源交換機(jī)向目的虛擬機(jī)發(fā)送至少一個(gè)數(shù)據(jù)報(bào)文,使得該源交換機(jī)或控制器根據(jù)探測到的第二路徑MTU,返回與該至少一個(gè)數(shù)據(jù)報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文;
接收模塊1202用于接收該至少一個(gè)響應(yīng)報(bào)文;
確定模塊1203用于根據(jù)該至少一個(gè)響應(yīng)報(bào)文,確定該第二路徑MTU;
其中,該第二路徑MTU由該源交換機(jī)根據(jù)探測到的第一路徑MTU及預(yù)設(shè)封裝長度確定,該第一路徑MTU為該源交換機(jī)與該目的虛擬機(jī)接入的目的交換機(jī)之間的路徑MTU,該第二路徑MTU為該源虛擬機(jī)與該目的虛擬機(jī)之間的路徑MTU;
該響應(yīng)報(bào)文為第三響應(yīng)報(bào)文或第四響應(yīng)報(bào)文,該第三響應(yīng)報(bào)文用于指示對應(yīng)數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU,該第四響應(yīng)報(bào)文用于指示對應(yīng)數(shù)據(jù)報(bào)文的長度不大于該第二路徑MTU。
本發(fā)明實(shí)施例提供的裝置,通過向源交換機(jī)發(fā)送發(fā)往目的虛擬機(jī)的至少一個(gè)數(shù)據(jù)報(bào)文,使得該源交換機(jī)或控制器根據(jù)探測到的第二路徑MTU,返回與該至少一個(gè)數(shù)據(jù)報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,并根據(jù)該至少一個(gè)響應(yīng)報(bào)文,確定該第二路徑MTU,以便根據(jù)第二路徑MTU控制所發(fā)送報(bào)文的長度,避免了報(bào)文發(fā)送失敗的問題,提高了發(fā)送報(bào)文的成功率。
可選地,該發(fā)送模塊1201還用于向該源交換機(jī)發(fā)送發(fā)往目的虛擬機(jī)的第一數(shù)據(jù)報(bào)文;
該接收模塊1202還用于如果接收到的與該第一數(shù)據(jù)報(bào)文對應(yīng)的響應(yīng)報(bào)文為該第三響應(yīng)報(bào)文時(shí),生成第二數(shù)據(jù)報(bào)文,該第二數(shù)據(jù)報(bào)文的長度小于該第一數(shù)據(jù)報(bào)文的長度;
該發(fā)送模塊1201還用于繼續(xù)向該源交換機(jī)發(fā)送該第二數(shù)據(jù)報(bào)文,直至該接收模塊接收到該第四響應(yīng)報(bào)文時(shí);
該確定模塊1203還用于根據(jù)與該第四響應(yīng)報(bào)文對應(yīng)的數(shù)據(jù)報(bào)文的長度,確定該第二路徑MTU。
結(jié)合上述圖6和圖7所示實(shí)施例,發(fā)送模塊1201可以用于執(zhí)行上述步驟605, 接收模塊1202可以用于執(zhí)行上述步驟608或613,確定模塊1203可以用于執(zhí)行上述步驟609或614。
圖13是本發(fā)明實(shí)施例提供的一種探測路徑MTU的裝置結(jié)構(gòu)示意圖,參見圖13,該裝置包括:獲取模塊1301、監(jiān)聽模塊1302和響應(yīng)模塊1303。
獲取模塊1301用于獲取源交換機(jī)發(fā)送的第二路徑MTU,該第二路徑MTU為接入該源交換機(jī)的源虛擬機(jī)與目的虛擬機(jī)之間的路徑MTU;
監(jiān)聽模塊1302用于監(jiān)聽該源虛擬機(jī)發(fā)送給該源交換機(jī)的數(shù)據(jù)報(bào)文;
響應(yīng)模塊1303用于當(dāng)確定該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU時(shí),向該源虛擬機(jī)發(fā)送第三響應(yīng)報(bào)文,該第三響應(yīng)報(bào)文用于指示該數(shù)據(jù)報(bào)文的長度大于該第二路徑MTU。
本發(fā)明實(shí)施例提供的裝置,通過源交換機(jī)確定第二路徑MTU后,向控制器發(fā)送第二路徑MTU,由處理能力較強(qiáng)的控制器監(jiān)聽源虛擬機(jī)發(fā)送給源交換機(jī)的報(bào)文,并代替源交換機(jī)對監(jiān)聽到的報(bào)文進(jìn)行響應(yīng),提高了響應(yīng)效率,無需耗費(fèi)源交換機(jī)的硬件資源,減小了源交換機(jī)的壓力,且能夠防止源交換機(jī)被探測攻擊,提高了網(wǎng)絡(luò)系統(tǒng)的安全性。
可選地,所述第二路徑MTU由所述源交換機(jī)根據(jù)所述源交換機(jī)與所述目的虛擬機(jī)接入的目的交換機(jī)之間的第一路徑MTU以及預(yù)設(shè)封裝長度確定,所述第一路徑MTU由所述源交換機(jī)根據(jù)所述目的交換機(jī)的地址和預(yù)設(shè)路徑MTU發(fā)送至少一個(gè)探測報(bào)文,獲取與所述至少一個(gè)探測報(bào)文對應(yīng)的至少一個(gè)響應(yīng)報(bào)文,并根據(jù)接收到第二響應(yīng)報(bào)文時(shí)的預(yù)設(shè)路徑MTU確定,所述至少一個(gè)響應(yīng)報(bào)文包括第一響應(yīng)報(bào)文和所述第二響應(yīng)報(bào)文中的至少一個(gè)。
結(jié)合上述圖7所示實(shí)施例,獲取模塊1301和監(jiān)聽模塊1302可以用于執(zhí)行上述步驟611,響應(yīng)模塊1303可以用于執(zhí)行上述步驟612。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,該的程序可以存儲于一種計(jì)算機(jī)可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
以上該僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。