VPP环境配置指南

简介

VPP平台是一个可扩展的框架,提供开箱即用的可供生产环境使用的交换机/路由器功能。 它是一种可在x86 cpu上运行的高性能数据包处理堆栈。VPP采用模块化设计, 该框架允许任何人“插入”新的功能节点而无需更改核心/内核代码。

一、VPP编译(开发版本)

系统:ubuntu18.04.1 TLS
vpp版本:19.01-rc0
建议使用具有root权限的用户,并将源补全,初始源可能不完整。

 

$ cd / $ git clone http://gerrit.fd.io/r/vpp $ cd vpp $ make install-dep $ make build

1

2

3

4

5

$ cd /

$ git clone http://gerrit.fd.io/r/vpp

$ cd vpp

$ make install-dep

$ make build

 

命令行下可以通过make,输入编译时的argument values,默认可用。

二、VPP的使用

VPP可以在container、vm等多种环境中使用,这里我们简单介绍vpp的包转发。

1.修改vpp的startup.conf

/etc/vpp/startup.conf(如果没有请自行加上)如下:

 

unix { nodaemon log /var/log/vpp/vpp.log interactive full-coredump } api-trace { on } dpdk { socket-mem 1024 }

1

2

3

4

5

6

7

8

9

10

11

12

unix {

  nodaemon

  log /var/log/vpp/vpp.log

  interactive

  full-coredump

}

api-trace {

  on

}

dpdk {

  socket-mem 1024

}

 

2.加载DPDK网卡驱动

加载vfio-pci或者uio_pci_generic等dpdk网卡驱动,将要进行绑定的网卡关闭。

3.启动VPP

 

# /vpp/build-root/install-vpp_debug-native/vpp/bin/vpp -c /etc/vpp/startup.conf DBGvpp# show int Name Idx State MTU(L3/IP4/IP6/MPLS) Counter Count GigabitEthernet2/0/0 1 down 9000/0/0/0 local0 0 down 0/0/0/0

1

2

3

4

5

# /vpp/build-root/install-vpp_debug-native/vpp/bin/vpp -c /etc/vpp/startup.conf

DBGvpp# show int

Name                 Idx State  MTU(L3/IP4/IP6/MPLS)  Counter  Count

GigabitEthernet2/0/0    1       down          9000/0/0/0

local0                  0       down          0/0/0/0

 

4.配置网卡

(X.X.X.X是该网卡down掉之前的 ip,192.168.1.2 是与X.X.X.X在一个子网的ip)

 

DBGvpp# set int ipaddress GigabitEthernet2/2/0 X.X.X.X/24 DBGvpp# set int state GigabitEthernet2/2/0 up DBGvpp# ip probe 192.168.1.2 GigabitEthernet2/2/0 DBGvpp# sh ip arp Time FIB IP4 Stat Ethernet Interface 2782.7392 0 192.168.1.2 00:50:56:b7:05:bb GigabitEthernet2/2/0 DBGvpp# sh ip fib Table0, fib_index 0, flow hash: src dst sport dport proto Destination Packets Bytes Adjacency 192.168.1.0/24 0 0 weight 1, index 5 arp GigabitEthernet2/2/0 192.168.1.1/24 192.168.1.1/32 0 0 weight 1, index 4 local 192.168.1.1/24 192.168.1.2/32 0 0 weight 1, index 3 GigabitEthernet2/2/0 IP4: 00:50:56:b7:05:bc -> 00:50:56:b7:05:bb ...

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

DBGvpp# set int ipaddress GigabitEthernet2/2/0 X.X.X.X/24

DBGvpp# set int state GigabitEthernet2/2/0 up

DBGvpp# ip probe 192.168.1.2 GigabitEthernet2/2/0

 

DBGvpp#  sh ip arp

Time     FIB    IP4      Stat    Ethernet     Interface    

2782.7392  0   192.168.1.2   00:50:56:b7:05:bb   GigabitEthernet2/2/0

DBGvpp# sh ip fib

Table0, fib_index 0, flow hash: src dst sport dport proto

     Destination         Packets          Bytes         Adjacency

192.168.1.0/24                0             0 weight 1, index 5

                                                    arp GigabitEthernet2/2/0 192.168.1.1/24

192.168.1.1/32                0             0 weight 1, index 4

                                                    local 192.168.1.1/24

192.168.1.2/32                0             0 weight 1, index 3

                                                    GigabitEthernet2/2/0

                                                    IP4: 00:50:56:b7:05:bc -> 00:50:56:b7:05:bb

...

 

5.开启DPDK节点包追踪

DBGvpp# trace add dpdk-input 10

6.测试包转发

从192.168.1.2 pingX.X.X.X, ping 成功,表示配置成功
显示追踪信息:

 

DBGvpp# show trace -------------------Start of thread 0 vpp_main ------------------- Packet 1 01:10:14:046893: dpdk-input GigabitEthernet2/2/0 rx queue 0 buffer 0x631e: current data 0, length102, free-list 0, totlen-nifb 0, trace 0x0 PKT MBUF: port 0, nb_segs 1, pkt_len 102

1

2

3

4

5

6

7

8

DBGvpp# show trace

-------------------Start of thread 0 vpp_main -------------------

Packet 1

 

01:10:14:046893: dpdk-input

GigabitEthernet2/2/0 rx queue 0

buffer 0x631e: current data 0, length102, free-list 0, totlen-nifb 0, trace 0x0

PKT MBUF: port 0, nb_segs 1, pkt_len 102

 

如果看到上面这样的包, vpp 成功转发。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值