基于mac地址的端口映射方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種基于MAC地址的端口映射方法,包括:配置內(nèi)部主機(jī)的端口映射信息;接收到包括內(nèi)部主機(jī)的MAC地址的訪問請求報文后,根據(jù)端口映射信息,獲取MAC地址對應(yīng)的IP地址;根據(jù)IP地址和端口映射信息,映射端口。本發(fā)明還提供了相應(yīng)的基于MAC地址的端口映射裝置。本發(fā)明所提供的基于MAC地址的端口映射方法和裝置,只需要配置內(nèi)部網(wǎng)絡(luò)中的內(nèi)部主機(jī)的端口映射信息,并根據(jù)內(nèi)部主機(jī)的MAC地址與IP地址之間的對應(yīng)關(guān)系,即可以完成該內(nèi)部主機(jī)對應(yīng)的端口映射功能。這樣,在很大程度上簡化了端口映射功能的配置過程,從而使端口映射功能的實(shí)現(xiàn)較為簡單,并且能夠?yàn)橛脩魩磔^好的體驗(yàn)。
【專利說明】基于MAC地址的端口映射方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及到通信【技術(shù)領(lǐng)域】,特別涉及到一種基于MAC地址的端口映射方法和裝置。
【背景技術(shù)】
[0002]在一個典型的IPV4 接入網(wǎng)絡(luò)中,CPE (Customer Premise Epuipment,客戶終端設(shè)備)或網(wǎng)關(guān)以及路由器等終端設(shè)備都擁有一個Internet公網(wǎng)地址,而內(nèi)部網(wǎng)絡(luò)的各個主機(jī)對Internet是不可見的,他們使用私網(wǎng)地址,并由CPE的NAT (Network AddressTranslation,網(wǎng)絡(luò)地址轉(zhuǎn)換)功能統(tǒng)一把私網(wǎng)地址轉(zhuǎn)換成公網(wǎng)地址以完成和外部Internet的通信。為了使通常的Internet業(yè)務(wù)(如HTTP、FTP等)能在內(nèi)部網(wǎng)絡(luò)主機(jī)上應(yīng)用,就需要在CPE上執(zhí)行端口映射(Port forwarding)功能。端口映射是通過配置規(guī)則把外部請求訪問的目的地址和端口轉(zhuǎn)換成內(nèi)部地址和端口,而不改變外部請求報文的源地址和端口。當(dāng)然,也可以通過UPnP (Universal Plug and Play protocol)協(xié)議動態(tài)的完成端口映射功能的配置。
[0003]為了防止惡意攻擊,內(nèi)部網(wǎng)絡(luò)主機(jī)中通常安裝有防火墻,而防火墻需要禁止外部網(wǎng)絡(luò)對內(nèi)部網(wǎng)絡(luò)業(yè)務(wù)應(yīng)用的訪問權(quán)限。因此,在IPv6接入網(wǎng)絡(luò)中,如果需要訪問部署在防火墻后面的內(nèi)部網(wǎng)絡(luò)的主機(jī)或服務(wù)器,同樣可以使用端口映射功能來完成。這樣,不僅限制了外部網(wǎng)絡(luò)的任意訪問,而且可以隱藏內(nèi)部網(wǎng)絡(luò)服務(wù)的端口信息,能夠使用非明文端口開放外部訪問權(quán)限,加強(qiáng)了內(nèi)部網(wǎng)絡(luò)的安全性。
[0004]然而,在一個IPv4/IPv6雙棧的網(wǎng)絡(luò)系統(tǒng)中,由于需要將IPv4和IPv6地址分開,并且一個設(shè)備上通??梢源嬖诙鄠€IPv6全局地址,這樣,就為端口映射功能的配置帶來了極大的不方便,需要根據(jù)IPv4和IPv6地址分別進(jìn)行配置,使得端口映射功能的實(shí)現(xiàn)較為繁瑣,且不能夠?yàn)橛脩魩磔^好的體驗(yàn)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的為提供一種基于MAC地址的端口映射方法和裝置,旨在簡化端口映射功能的配置過程,從而使端口映射功能的實(shí)現(xiàn)較為簡單,并且能夠?yàn)橛脩魩磔^好的體驗(yàn)。
[0006]本發(fā)明提供一種基于MAC地址的端口映射方法,包括:
[0007]配置內(nèi)部主機(jī)的端口映射信息;
[0008]接收到包括內(nèi)部主機(jī)的MAC地址的訪問請求報文后,根據(jù)所述端口映射信息,獲取所述MAC地址對應(yīng)的IP地址;
[0009]根據(jù)所述IP地址和所述端口映射信息,映射端口。
[0010]優(yōu)選地,所述端口映射信息至少包括以下之一:內(nèi)部主機(jī)的MAC地址、協(xié)議類型、監(jiān)聽端口、端口類型、目的主機(jī)以及目的端口。
[0011]優(yōu)選地,所述根據(jù)端口映射信息,獲取所述MAC地址對應(yīng)的IP地址包括:[0012]根據(jù)所述端口映射信息,將訪問請求報文中所包括的內(nèi)部主機(jī)的MAC地址進(jìn)行轉(zhuǎn)換,獲取所述MAC地址對應(yīng)的IP地址。
[0013]優(yōu)選地,所述根據(jù)IP地址和所述端口映射信息,映射端口包括:
[0014]獲取內(nèi)部主機(jī)的MAC地址對應(yīng)的IP地址后,根據(jù)所述端口映射信息,建立連接跟蹤會話;
[0015]根據(jù)所述連接跟蹤會話,通過端口轉(zhuǎn)換模塊將對外部開放的端口映射到所述內(nèi)部主機(jī)的端口上。
[0016]優(yōu)選地,在執(zhí)行所述根據(jù)IP地址和所述端口映射信息,映射端口之前,還包括:
[0017]根據(jù)所述端口映射信息,判斷是否存在連接跟蹤會話;
[0018]若存在,則根據(jù)所述連接跟蹤會話,映射端口。
[0019]本發(fā)明還提供一種基于MAC地址的端口映射裝置,包括:
[0020]配置模塊,用于配置內(nèi)部主機(jī)的端口映射信息;
[0021]地址獲取模塊,用于接收到包括內(nèi)部主機(jī)的MAC地址的訪問請求報文后,根據(jù)所述端口映射信息,獲取所述MAC地址對應(yīng)的IP地址;
[0022]第一端口映射模塊,用于根據(jù)所述IP地址和所述端口映射信息,映射端口。
[0023]優(yōu)選地,所述端口映射信息至少包括以下之一:內(nèi)部主機(jī)的MAC地址、協(xié)議類型、監(jiān)聽端口、端口類型、目的主機(jī)以及目的端口。
[0024]優(yōu)選地,所述地址獲取模塊用于:
[0025]根據(jù)所述端口映射信息,將訪問請求報文中所包括的內(nèi)部主機(jī)的MAC地址進(jìn)行轉(zhuǎn)換,獲取所述MAC地址對應(yīng)的IP地址。
[0026]優(yōu)選地,所述第一端口映射模塊包括:
[0027]會話建立單元,用于獲取內(nèi)部主機(jī)的MAC地址對應(yīng)的IP地址后,根據(jù)所述端口映射信息,建立連接跟蹤會話;
[0028]映射單元,用于根據(jù)所述連接跟蹤會話,通過端口轉(zhuǎn)換模塊將對外部開放的端口映射到所述內(nèi)部主機(jī)的端口上。
[0029]優(yōu)選地,基于MAC地址的端口映射裝置還包括:
[0030]判斷模塊,用于根據(jù)所述端口映射信息,判斷是否存在連接跟蹤會話;
[0031]第二端口映射模塊,用于若存在,則根據(jù)所述連接跟蹤會話,映射端口。
[0032]本發(fā)明通過對內(nèi)部主機(jī)的配置端口映射信息進(jìn)行配置,并在接收到外部的訪問請求報文后,根據(jù)其中所包括的內(nèi)部主機(jī)的MAC地址以及端口映射信息,獲取該MAC地址對應(yīng)的IP地址,最終根據(jù)IP地址和端口映射信息,完成端口映射功能。采用這種方法,只需要配置內(nèi)部網(wǎng)絡(luò)中的內(nèi)部主機(jī)的端口映射信息,并根據(jù)內(nèi)部主機(jī)的MAC地址與IP地址之間的對應(yīng)關(guān)系,即可以完成該內(nèi)部主機(jī)對應(yīng)的端口映射功能。這樣,在很大程度上簡化了端口映射功能的配置過程,從而使端口映射功能的實(shí)現(xiàn)較為簡單,并且能夠?yàn)橛脩魩磔^好的體驗(yàn)。
【專利附圖】
【附圖說明】
[0033]圖1為本發(fā)明基于MAC地址的端口映射方法一實(shí)施例的流程示意圖;
[0034]圖2為本發(fā)明基于MAC地址的端口映射方法中映射端口一實(shí)施例的流程示意圖;
[0035]圖3為本發(fā)明基于MAC地址的端口映射方法再一實(shí)施例的流程示意圖;[0036]圖4為本發(fā)明基于MAC地址的端口映射裝置一實(shí)施例的結(jié)構(gòu)示意圖;
[0037]圖5為本發(fā)明基于MAC地址的端口映射裝置中第一端口映射模塊的結(jié)構(gòu)示意圖;
[0038]圖6為本發(fā)明基于MAC地址的端口映射裝置再一實(shí)施例的結(jié)構(gòu)示意圖。
[0039]本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
【具體實(shí)施方式】
[0040]應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。[0041 ] 參照圖1,圖1為本發(fā)明基于MAC地址的端口映射方法一實(shí)施例的流程示意圖。
[0042]該方法包括:
[0043]步驟S10,配置內(nèi)部主機(jī)的端口映射信息;
[0044]在本實(shí)施例中,所提供的基于MAC地址的端口映射方法,可以應(yīng)用在IPV4接入網(wǎng)絡(luò)或IPV6接入網(wǎng)絡(luò)中,也可以應(yīng)用在IPV4 /IPV6雙協(xié)議棧的接入網(wǎng)絡(luò)中,通常將其用于具有防火墻功能的路由網(wǎng)關(guān)設(shè)備尤其是家庭網(wǎng)關(guān)中。在IPV4接入網(wǎng)絡(luò)中,由于無線終端接入設(shè)備有一個用于完成和外部Internet通信的公網(wǎng)地址,而內(nèi)部網(wǎng)絡(luò)的各個主機(jī)則使用私網(wǎng)地址;而在IPV6接入網(wǎng)絡(luò)中,通常使用防火墻來禁止外部網(wǎng)絡(luò)對內(nèi)部網(wǎng)絡(luò)的訪問權(quán)限。這就需要端口映射功能,來實(shí)現(xiàn)外部網(wǎng)絡(luò)對內(nèi)部網(wǎng)絡(luò)的訪問。
[0045]由于處于無線網(wǎng)絡(luò)中的每個主機(jī)都擁有唯一的MAC地址,用戶可根據(jù)一定的MAC映射策略,對內(nèi)部主機(jī)的端口映射信息進(jìn)行配置,即將端口映射信息配置進(jìn)內(nèi)核。在本實(shí)施例中,端口映射信息通??梢园?內(nèi)部主機(jī)的MAC地址、協(xié)議類型、監(jiān)聽端口、端口類型、目的主機(jī)以及目的端口等。配置結(jié)束后,將用戶所配置的端口映射信息進(jìn)行保存,從而在內(nèi)核中,將內(nèi)部主機(jī)的MAC地址與IP地址進(jìn)行轉(zhuǎn)換。在本實(shí)施例中,以所應(yīng)用的網(wǎng)絡(luò)環(huán)境為IPV4 /IPV6雙協(xié)議棧的接入網(wǎng)絡(luò)為例,這樣,就需要分別在IPV4協(xié)議棧和IPV6協(xié)議棧中,根據(jù)MAC映射策略,學(xué)習(xí)并維護(hù)內(nèi)部主機(jī)的MAC地址與IP地址的對應(yīng)關(guān)系,并且將內(nèi)部主機(jī)的MAC地址與IP地址的對應(yīng)關(guān)系分別保存在地址對應(yīng)列表mac_ipv4_list和mac_ipv6_list 中。
[0046]步驟S20,接收到包括內(nèi)部主機(jī)的MAC地址的訪問請求報文后,根據(jù)端口映射信息,獲取MAC地址對應(yīng)的IP地址;
[0047]當(dāng)外部主機(jī)請求訪問某一內(nèi)部主機(jī)時,會發(fā)送一個訪問請求報文,這個訪問請求報文中包含所需要訪問的內(nèi)部主機(jī)的MAC地址。當(dāng)接收到這個訪問請求報文后,根據(jù)其中的MAC地址,以及用戶所配置的端口映射信息,在內(nèi)核中獲取該內(nèi)部主機(jī)的的MAC地址所對應(yīng)的IP地址。在本實(shí)施例中,在IPV4協(xié)議棧和IPV6協(xié)議棧中,根據(jù)訪問請求報文中的內(nèi)部主機(jī)的MAC地址,便可以在地址對應(yīng)列表mac_ipv4_list和mac_ipv6_list中分別進(jìn)行查找,獲取該MAC地址對應(yīng)的IP地址。
[0048]步驟S30,根據(jù)IP地址和端口映射信息,映射端口。
[0049]當(dāng)根據(jù)訪問請求報文中的MAC地址獲取到其對應(yīng)的IP地址后,根據(jù)這個IP地址,以及用戶所配置的端口映射信息,即根據(jù)當(dāng)前接入網(wǎng)絡(luò)環(huán)境中的協(xié)議類型、內(nèi)部主機(jī)的監(jiān)聽端口和端口類型、內(nèi)部主機(jī)中的具體的目的主機(jī)以及該目的主機(jī)上的目的端口等信息,完成端口映射。
[0050]本發(fā)明實(shí)施例,通過對內(nèi)部主機(jī)的配置端口映射信息進(jìn)行配置,并在接收到外部的訪問請求報文后,根據(jù)其中所包括的內(nèi)部主機(jī)的MAC地址以及端口映射信息,獲取該MAC地址對應(yīng)的IP地址,最終根據(jù)IP地址和端口映射信息,完成端口映射功能。采用這種方法,只需要配置內(nèi)部網(wǎng)絡(luò)中的內(nèi)部主機(jī)的端口映射信息,并根據(jù)內(nèi)部主機(jī)的MAC地址與IP地址之間的對應(yīng)關(guān)系,即可以完成該內(nèi)部主機(jī)對應(yīng)的端口映射功能。這樣,在很大程度上簡化了端口映射功能的配置過程,從而使端口映射功能的實(shí)現(xiàn)較為簡單,并且能夠?yàn)橛脩魩磔^好的體驗(yàn)。
[0051]參照圖2,圖2為本發(fā)明基于MAC地址的端口映射方法中映射端口一實(shí)施例的流程示意圖。
[0052]在本實(shí)施例中,步驟S30包括:
[0053]步驟S31,獲取內(nèi)部主機(jī)的MAC地址對應(yīng)的IP地址后,根據(jù)端口映射信息,建立連接跟蹤會話;
[0054]步驟S32,根據(jù)連接跟蹤會話,通過端口轉(zhuǎn)換模塊將對外部開放的端口映射到內(nèi)部主機(jī)的端口上。
[0055]本實(shí)施例中,以在IPV4協(xié)議棧和IPV6協(xié)議棧中分別進(jìn)行說明:
[0056]一、在IPV4協(xié)議棧中,假設(shè)外部主機(jī)的源IP地址為10.10.10.10,源端口為Z ;無線終端接入設(shè)備的IP地址為10.10.10.1,其對外開放的端口為Y ;而目的內(nèi)部主機(jī)的目標(biāo)IP地址為192.168.1.2,目的端口為X。
[0057]當(dāng)接收到外部主機(jī)發(fā)送的訪問請求報文,并根據(jù)其中的MAC地址在mac_ipv4_list列表中查找到該MAC地址對應(yīng)的IP地址后,首先建立conntrack (連接跟蹤)會話記錄,然后利用CPE設(shè)備已有的NAT (Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)功能模塊進(jìn)行MAC地址與IP地址之間的轉(zhuǎn)換;`最終根據(jù)經(jīng)過NAT轉(zhuǎn)換后所得的IP地址,更新conntrack會話記錄,進(jìn)一步完成源端`口 Z與目的端口 X之間的轉(zhuǎn)換,從而實(shí)現(xiàn)外部主機(jī)與內(nèi)部主機(jī)之間的通信。本實(shí)施例中,如果在mac_ipv4_list列表中查找MAC地址對應(yīng)的IP地址失敗,則直接退出,不進(jìn)行端口映射的處理。
[0058]在本實(shí)施例中,所建立的conntrack會話,可以在后續(xù)接收到外部發(fā)送的訪問請求報文后,無需根據(jù)其中的MAC地址查找對應(yīng)的IP地址,就可以直接根據(jù)conntrack會話進(jìn)行端口映射的轉(zhuǎn)換。而當(dāng)用戶修改或刪除MAC映射策略時,需要刪除所建立的對應(yīng)的conntrack會話;并且,當(dāng)mac_ipv6_list列表發(fā)生變化時,也需要刪除所建立的對應(yīng)的conntrack會話。源端口 Z與目的端口 X的轉(zhuǎn)換過程如下表所示:
[0059]
【權(quán)利要求】
1.一種基于MAC地址的端口映射方法,其特征在于,包括:配置內(nèi)部主機(jī)的端口映射信息;接收到包括內(nèi)部主機(jī)的MAC地址的訪問請求報文后,根據(jù)所述端口映射信息,獲取所述MAC地址對應(yīng)的IP地址;根據(jù)所述IP地址和所述端口映射信息,映射端口。
2.如權(quán)利要求1所述的方法,其特征在于,所述端口映射信息至少包括以下之一:內(nèi)部主機(jī)的MAC地址、協(xié)議類型、監(jiān)聽端口、端口類型、目的主機(jī)以及目的端口。
3.如權(quán)利要求2所述的方法,其特征在于,所述根據(jù)端口映射信息,獲取所述MAC地址對應(yīng)的IP地址包括:根據(jù)所述端口映射信息,將訪問請求報文中所包括的內(nèi)部主機(jī)的MAC地址進(jìn)行轉(zhuǎn)換,獲取所述MAC地址對應(yīng)的IP地址。
4.如權(quán)利要求3所述的方法,其特征在于,所述根據(jù)IP地址和所述端口映射信息,映射端口包括:獲取內(nèi)部主機(jī)的MAC地址對應(yīng)的IP地址后,根據(jù)所述端口映射信息,建立連接跟蹤會話;根據(jù)所述連接跟蹤會話,通過端口轉(zhuǎn)換模塊將對外部開放的端口映射到所述內(nèi)部主機(jī)的端口上。
5.如權(quán)利要求1所述的方法,其特征在于,在執(zhí)行所述根據(jù)IP地址和所述端口映射信息,映射端口之前,還包括:根據(jù)所述端口映射信息,判斷是否存在連接跟蹤會話;若存在,則根據(jù)所述連接跟蹤會話,映射端口。
6.一種基于MAC地址的端口映射裝置,其特征在于,包括:配置模塊,用于配置內(nèi)部主機(jī)的端口映射信息;地址獲取模塊,用于接收到包括內(nèi)部主機(jī)的MAC地址的訪問請求報文后,根據(jù)所述端口映射信息,獲取所述MAC地址對應(yīng)的IP地址;第一端口映射模塊,用于根據(jù)所述IP地址和所述端口映射信息,映射端口。
7.如權(quán)利要求6所述的方法,其特征在于,所述端口映射信息至少包括以下之一:內(nèi)部主機(jī)的MAC地址、協(xié)議類型、監(jiān)聽端口、端口類型、目的主機(jī)以及目的端口。
8.如權(quán)利要求7所述的裝置,其特征在于,所述地址獲取模塊用于:根據(jù)所述端口映射信息,將訪問請求報文中所包括的內(nèi)部主機(jī)的MAC地址進(jìn)行轉(zhuǎn)換,獲取所述MAC地址對應(yīng)的IP地址。
9.如權(quán)利要求8所述的裝置,其特征在于,所述第一端口映射模塊包括:會話建立單元,用于獲取內(nèi)部主機(jī)的MAC地址對應(yīng)的IP地址后,根據(jù)所述端口映射信息,建立連接跟蹤會話;映射單元,用于根據(jù)所述連接跟蹤會話,通過端口轉(zhuǎn)換模塊將對外部開放的端口映射到所述內(nèi)部主機(jī)的端口上。
10.如權(quán)利要求6所述的裝置,其特征在于,還包括:判斷模塊,用于根據(jù)所述端口映射信息,判斷是否存在連接跟蹤會話;第二端口映射模塊,用于若存在,則根據(jù)所述連接跟蹤會話,映射端口。
【文檔編號】H04L29/12GK103516820SQ201210210327
【公開日】2014年1月15日 申請日期:2012年6月25日 優(yōu)先權(quán)日:2012年6月25日
【發(fā)明者】徐榮, 劉成天 申請人:中興通訊股份有限公司