在 NanoPI R2S 上運(yùn)行 HIP VPLS
簡介
以前,我們演示了一個(gè)基于主機(jī)身份的虛擬專用服務(wù)(HIP-VPLS)的工作原型,當(dāng)時(shí)我們使用了Mininet框架。在這里,我們將演示如何在實(shí)際硬件上部署此系統(tǒng)。我們將使用NanoPi R2S作為HIP-VPLS的平臺(tái)。回顧一下,虛擬專用局域網(wǎng)服務(wù)(VPLS)提供了在現(xiàn)有IP網(wǎng)絡(luò)上構(gòu)建第二層通信的手段。可以使用各種方法構(gòu)建VPLS。然而,當(dāng)構(gòu)建生產(chǎn)級(jí)VPLS解決方案時(shí),需要清楚如何解決諸如安全性、移動(dòng)性和L2問題等方面的問題。
主機(jī)身份協(xié)議(HIP)最初設(shè)計(jì)用于拆分IP地址的雙重角色。換句話說,HIP是一個(gè)介于IP和傳輸層之間的第3.5層解決方案。HIP使用公鑰的哈希作為標(biāo)識(shí)符。這些標(biāo)識(shí)符或主機(jī)身份標(biāo)簽(HITs)暴露給傳輸層,并且永遠(yuǎn)不會(huì)改變(嚴(yán)格來說,如果系統(tǒng)管理員決定旋轉(zhuǎn)RSA或ECDSA密鑰對,它們可能會(huì)發(fā)生更改,但這很少發(fā)生)。另一方面,HIP使用可路由的IP地址(這些可以是IPv4或IPv6)作為定位器,并用于在端點(diǎn)之間傳遞HIP和IPSec數(shù)據(jù)包??傮w而言,為了相互識(shí)別并交換秘密密鑰,HIP依賴于4路握手(也稱為HIP基本交換或HIP BEX)。在BEX期間,對等方協(xié)商要使用的一組加密算法,相互識(shí)別(由于HIT是永久的并綁定到公鑰,HIP可以使用基于HIT的簡單防火墻來過濾不受信任的連接),交換密鑰(HIP可以使用Diffie- Hellman和橢圓曲線Diffie-Hellman算法),甚至使用計(jì)算難題(這些基于密碼哈希函數(shù)和對等方在哈希函數(shù)中找到碰撞的能力;解決方案的復(fù)雜性由HIP BEX中的響應(yīng)器調(diào)節(jié))。HIP還支持移動(dòng)性,并使用單獨(dú)的握手過程,其中對等方通知其對等方有關(guān)定位器(用于路由目的)的更改。

編輯切換為居中
硬件
在我們的部署中,我們使用了以下設(shè)置。對于HIP交換機(jī),我們使用了NanoPi R2S計(jì)算平臺(tái)。我們使用了8端口SNR交換機(jī)來連接3個(gè)NanoPi R2S,這樣我們就模擬了設(shè)置中的IP覆蓋層。NanoPi R2S有兩個(gè)接口:一個(gè)面向LAN網(wǎng)絡(luò),另一個(gè)面向WAN網(wǎng)絡(luò)。NanoPi R2S具有以下特征:1GB內(nèi)存,四核CPU,32GB SD卡。為了連接路由器,我們使用了SNR交換機(jī)(每個(gè)交換機(jī)有8個(gè)1GB / s端口和兩個(gè)小型形式因子(SFP)插槽)。測試床配置如下圖所示:
部署系統(tǒng)
步驟1:安裝依賴
在NanoPi R2S上安裝HIP-VPLS之前,需要安裝一些依賴程序包。在NanoPi R2S上,我們使用的操作系統(tǒng)是Armbian。為了安裝依賴程序包,請執(zhí)行以下命令:
sudo apt-get update sudo apt-get install build-essential libssl-dev libnl-genl-3-dev libnl-route-3-dev libpcap-dev
步驟2:下載和編譯HIP-VPLS
接下來,我們需要下載和編譯HIP-VPLS代碼。請按照以下步驟執(zhí)行:
git clone https://github.com/HIP-VPLS/hip-vpls.git cd hip-vpls make sudo make install
步驟3:配置HIP-VPLS
HIP-VPLS需要一個(gè)配置文件,以確定HIP交換機(jī)的端點(diǎn)和VPLS域。我們將使用以下示例配置文件:
[hip-switch] local-address = 192.168.2.10 insecure = true [hip-endpoint] address = 192.168.2.11 hit = 0x123456789abcdef0123456789abcdef01234567 [hip-endpoint] address = 192.168.2.12 hit = 0x23456789abcdef0123456789abcdef012345678 [vpls-domain] name = test-domain hit-list = 0x123456789abcdef0123456789abcdef01234567, 0x23456789abcdef0123456789abcdef012345678
在此示例中,我們有一個(gè)HIP交換機(jī)和兩個(gè)HIP端點(diǎn)。HIP交換機(jī)的IP地址為192.168.2.10,我們設(shè)置了insecure = true以允許不安全的HIP連接。HIP端點(diǎn)的IP地址分別為192.168.2.11和192.168.2.12,它們都有一個(gè)HIT。我們還定義了一個(gè)名為test-domain的VPLS域,其中包含兩個(gè)HIT。
步驟4:啟動(dòng)HIP-VPLS
現(xiàn)在,我們已經(jīng)準(zhǔn)備好啟動(dòng)HIP-VPLS了。請執(zhí)行以下命令:
sudo hip-vpls -c /path/to/config/file
在我們的示例中,我們的配置文件位于/home/user/hip-vpls.conf,因此我們將運(yùn)行以下命令:
sudo hip-vpls -c /home/user/hip-vpls.conf
步驟5:測試HIP-VPLS
最后,我們將測試HIP-VPLS是否正常工作。在這里,我們將ping一下HIP端點(diǎn)之間的VPLS。請?jiān)?92.168.2.11和192.168.2.12之間執(zhí)行以下命令:
ping 10.0.0.1
我們的VPLS域的名稱為test-domain,因此它將被路由到10.0.0.1。
結(jié)論
我們已經(jīng)展示了如何在NanoPi R2S上部署HIP-VPLS,這是一個(gè)基于主機(jī)身份的虛擬專用服務(wù)。HIP提供了一個(gè)強(qiáng)大的身份驗(yàn)證和密鑰協(xié)商協(xié)議,可以用于構(gòu)建安全的第二層網(wǎng)絡(luò)。我們還展示了如何使用SNR交換機(jī)將多個(gè)NanoPi R2S連接在一起,從而模擬IP覆蓋層。這是一個(gè)簡單而有效的方法,可以用來測試HIP-VPLS的性能和可伸縮性。