日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在vpp中做nat实验

發布時間:2023/12/14 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在vpp中做nat实验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????最近在熟悉 vpp 的各項功能,擺在眼前的第一個就是 nat,網上相關的資料還比較少。下面就整理一下目前所學到的,在 vpp 中進行 nat 實驗的基本流程,還不完善,可能有理解上的錯誤,歡迎指正。
????????首先給出該 nat 實驗的網絡拓撲連接,下面的步驟稍微有點多,但目的是為了搭建這樣的拓撲圖。

基本流程:
1)在 host 中創建一對 veth 設備 vpp1outside 和 vpp1outsidehost

$ ip link add name vpp1outside type veth peer name vpp1outsidehost

2)在 host 中給 vpp1outsidehost 設置 IP

$ ip addr add 10.10.1.1/24 dev vpp1outsidehost $ ifconfig vpp1outsidehost up

3)在 host 中創建另外一對 veth 設備 vpp1inside 和 vpp1insidehost

$ ip link add name vpp1inside type veth peer name vpp1insidehost

4)在 host 中給?vpp1insidehost 配置 IP

$ ip addr add 10.10.2.1/24 dev vpp1insidehost

5) 在 host 中創建 netns

$ ip netns add inside

6) 將 vpp1insidehost 加入 netns

$ ip link set dev vpp1insidehost up netns inside

7) 在 netns 中給 vpp1insidehost 設置 IP

$ ip netns exec inside ip addr add 10.10.2.1/24 dev vpp1insidehost

8) 在 netns 中設置路由

$ ip netns exec inside ip route add 10.10.1.0/24 via 10.10.2.2

9) 在 vpp 中創建連接到 vpp1outside 的接口

vpp# create host-interface name vpp1outside

10) 在 vpp 中給 vpp1outside 設置 IP

vpp# set int ip address host-vpp1outside 10.10.1.2/24 vpp# set int state host-vpp1outside up

11) 在 vpp 中創建連接到 vpp1inside 的接口

vpp# create host-interface name vpp1inside

12)?在 vpp 中給 vpp1inside 設置 IP

vpp# set int ip address host-vpp1inside 10.10.2.2/24 vpp# set int state host-vpp1inside up

13) 在 vpp 中配置 nat 接口

vpp# nat44 add interface address host-vpp1outside vpp# set interface nat44 in host-vpp1inside out host-vpp1outside

14) 在 host 中對 vpp1outsidehost 抓包

$ tcpdump -s 0 -i vpp1outsidehost -vv

15) 在 netns 中 ping host IP

$ ip netns exec inside ping -c 1 10.10.1.1


運行效果:
1)在 netns 中 ping 10.10.1.1

$ ip netns exec inside ping -c 1 10.10.1.1 PING 10.10.1.1 (10.10.1.1) 56(84) bytes of data. 64 bytes from 10.10.1.1: icmp_seq=1 ttl=63 time=26.1 ms--- 10.10.1.1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 26.088/26.088/26.088/0.000 ms

2)在 host 中對 vpp1outsidehost 抓包

$ tcpdump -s 0 -i vpp1outsidehost -vv dropped privs to tcpdump tcpdump: listening on vpp1outsidehost, link-type EN10MB (Ethernet), capture size 262144 bytes 15:19:48.964020 IP (tos 0x0, ttl 63, id 12594, offset 0, flags [DF], proto ICMP (1), length 84) 10.10.1.2 > bogon: ICMP echo request, id 53336, seq 1, length 64 15:19:48.964194 IP (tos 0x0, ttl 64, id 59361, offset 0, flags [none], proto ICMP (1), length 84) bogon > 10.10.1.2: ICMP echo reply, id 53336, seq 1, length 64

? ? ? ? 可以看到,在 netns 中 ping 10.10.1.1 時,目標網口 vpp1outsidehost 收到的數據包的源 IP 是 vpp 中 host-vpp1outside 網口的 IP(10.10.1.2),而不是 netns 中 vpp1insidehost 的 IP (10.10.2.1)


參考資料:
1、VPP/Progressive VPP Tutorial - fd.io
2、VPP/NAT - fd.io

總結

以上是生活随笔為你收集整理的在vpp中做nat实验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。