今回の実験では、2枚のネットワークカードをVPPでWAN側とLAN側をそれぞれ模倣し、WAN側はVmnet8に接続してインターネットにアクセスし、LAN側はVmnet2に接続してdhcpサーバーを構築します。 Ubuntu では、別の仮想マシンがインターネットにアクセスするための IP を自動的に取得できるようにします。
環境
Ubuntu バージョン: 20.04
VPP バージョン: 23.02
トポロジー
構成
仮想ネットワーク
VMnet2: ホスト モード、Windows 仮想マシンを接続します
VMnet8: VPP にインターネットを提供するために使用される NAT モード
Ubuntu (VPP が実行されるマシン)
2 つのネットワーク カード、VMnet2 と NAT を作成する
Win10仮想マシン
VMnet2 にネットワーク カードが配置されています
VPP
スタートアップ.conf
unix {
interactive
cli-listen /run/vpp/cli.sock
gid 0
startup-config ./init_cli
}
dpdk {
dev 0000:02:01.0{
name eth0
}
dev 0000:02:06.0{
name eth1
}
}
api-trace {
on
}
socksvr {
default
}
cpu {
main-core 1
corelist-workers 2,3
}
buffers {
buffers-per-numa 128000
}
plugins {
plugin oddbuf_plugin.so { enable }
}
init_cli
comment { setup wan }
comment { setup eth0 interface }
set interface state eth0 up
comment { start dhcp client }
set dhcp client intfc eth0
comment { setup lan }
comment { create bridge }
create bridge-domain 10
comment { setup loopback interface }
create loopback interface
set interface l2 bridge loop0 10 bvi
set interface ip address loop0 192.168.1.1/24
set interface state loop0 up
comment { setup eth1 }
set interface l2 bridge eth1 10
set interface state eth1 up
comment { setup tap0 to conncect host,use host dhcpserver }
create tap host-ip4-addr 192.168.1.2/24 host-if-name vtap
set interface l2 bridge tap0 10
set interface state tap0 up
comment { setup nat }
nat44 plugin enable
nat44 add interface address eth0
set interface nat44 in loop0 out eth0
eth0 は WAN ポートとして使用され、DHCP を使用して VMnet8 によって割り当てられたアドレスを取得します。
LAN 側にブリッジを作成し、loop0 インターフェイスを使用してブリッジの IP アドレスを設定することで、複数のネットワーク ポートを追加できます。この実験では eth1 を 1 つだけ追加します。
LAN --> WAN 構成の NAT 変換
タップ インターフェイスを作成し、ブリッジに追加してホストの DHCP サーバーに接続します。
操作を開始する
VPPを開始する
Ubuntu でインターフェイスを表示すると、vtap があります。
DHCPサーバーを構成する
参考 https://wujianming.blog.csdn.net/article/details/130756920
dhcp リスニング インターフェイスを vtap に変更し、dhcp サーバーを起動します。
仮想マシンを構成する