VPP使用詳解 使用VPP作為家庭路由器

2021-08-23 12:17:49 字數 2062 閱讀 4197

vpp執行在intel的atom處理器系統上,是作為乙個soho路由器的較好方案。

linux發行版本使用的是ubuntu 16.04 lts,

clone vpp 最新**,編譯軟體:

$ git clone  vpp-gate

$ cd vpp-gate

$ make install-dep

$ make dpdk-install-dev

$ cd dpdk

$ sudo dpkg -i *.deb

$ cd ../build-root

$ ./bootstrap.sh

$ make platform=vpp tag=vpp_debug install-deb

$ sudo dpkg -i *.deb

$ sudo service vpp stop

作為最小安裝需要,還需要安裝sshd和isc-dhcp-server

$ apt-get install isc-dhcp-server sshd
編輯 /etc/vpp/startup.conf, 按照如下內容.

unix 

snat

指定內網網段,指定預設閘道器位址和dns伺服器位址

subnet 192.168.1.0 netmask 255.255.255.0
# what ports, ips and protocols we listen for

port # change to no to disable tunnelled clear text passwords

passwordauthentication no

這裡的配置實用了irb和snat外掛程式

comment 

set int state gigabitethernet3/0/0 up

set int mac address gigabitethernet3/0/0 set dhcp client intfc gigabitethernet3/0/0 hostname vppgate

comment

loopback create

set int l2 bridge loop0 1 bvi

set int ip address loop0 192.168.1.1/24

set int state loop0 up

comment

set int l2 bridge gigabitethernet4/0/0 1

set int state gigabitethernet4/0/0 up

set int l2 bridge gigabitethernet0/14/0 1

set int state gigabitethernet0/14/0 up

set int l2 bridge gigabitethernet0/14/1 1

set int state gigabitethernet0/14/1 up

set int l2 bridge gigabitethernet0/14/2 1

set int state gigabitethernet0/14/2 up

comment

tap connect lstack address 192.168.1.2/24

set int l2 bridge tap-0 1

set int state tap-0 up

comment

nat44 add inte***ce address gigabitethernet3/0/0

set inte***ce nat44 in loop0 out gigabitethernet3/0/0

comment

comment

comment

驗證dns解析

vpp# bin dns_resolve_name www.cisco.com

vpp# show dns cache verbose 2

或者 $ dig @192.168.1.1 www.cisco.com # from a linux host

vpp之snat的使用

pc通過使用vpp達到上網的功能 資訊了解 snat 內部位址要訪問公網上的服務時 如web訪問 內部位址會主動發起連線,由路由器或者防火牆上的閘道器對內部位址做個位址轉換,將內部位址的私有ip轉換為公網的公有ip,閘道器的這個位址轉換稱為snat,主要用於內部共享ip訪問外部。通過在vpp上配置s...

VPP使用心得(十四)FIFO

這裡只研究了部分基於共享記憶體的fifo,大致了解了一下其結構。fif segment main t負責總管理,其下有多個fifo segment t fs 每個fs對應乙個共享記憶體檔案,其虛位址通過mmap對映,為了方便管理,這些fs的虛位址va是連續的。fs有乙個ssvm private t ...

Checkbox作為陣列使用

有時候我們需要在頁面上做多項,當然我們可以使用select 多選,將 select 的屬性multiple設定為 multiple 即可多選,但是有時候就是要求使用 checkbox 作為多選按鈕來使用,最近一專案就是這樣,這裡 mark 一下 使用例項 name checkvaluelist 這裡...