快速试手vpp三层转发

通过一个GRE隧道配置实例,演示三层转发的(接口配置、ip地址、路由、报文追踪等)

基本配置,帮助读者快速试手。

  隧道内层:     172.16.1.1                                      172.16.0.2

  隧道外层:         4.4.4.1                                          4.4.4.2

                            VM1---------------------------------------VM2

                                            通过虚拟网卡桥接

 

一 、 配置物理接口直连互通

1、通过 vppctl进入CLI交互视图

快速试手vpp三层转发

Show interface命令可以查看当前接口状态

set interface state命令可以将接口状态置为up  (接口默认都是down的)

set interface ip address命令可以设置接口的IP地址

show interface address命令可以显示所有接口的ip信息

快速试手vpp三层转发

快速试手vpp三层转发

2、按上述步骤将另一个vm的地址配置成4.4.4.1/24

3、进行ping测试(repeat参数指定icmp报文发送个数)

快速试手vpp三层转发

二、 配置GRE隧道

1)sudo vppctl xxx | grep xxx 可以快速查找一个特性的所有命令,例如可按如下方法察看GRE的所有命令

快速试手vpp三层转发

2)创建隧道

从上一部可以看到完整命令描述是:

create gre tunnel src <addr> dst <addr> [instance <n>] [outer-fib-id <fib>] [teb | erspan <session-id>] [del]

尖括号表示需要配置人员手动填写内容

中括号[]表示该参数可选

竖线| 表示或者

其他属于必选

按如下命令可以创建GRE隧道

快速试手vpp三层转发

注:一旦出现非必选的参数,vpp就不会再提供命令行帮助(比如下图),需要配置人员按命令行描述一次配好然后下发命令

快速试手vpp三层转发

3)配置隧道接口

步骤2的隧道create成功后,系统自动生成了GRE隧道接口

快速试手vpp三层转发

跟设置物理接口一样的方法,设置隧道接口的状态和IP地址

快速试手vpp三层转发

4)在另一个vm上也创建GRE tunnel,并配置GRE隧道接口

快速试手vpp三层转发

5)在两个vm上分别配置隧道私网的路由

ip route add命令可以添加路由(注:GRE隧道是点对点网络可以直接via接口,共享式网络如以太网需要指定下一跳地址)

show ip fib命令可以查看fib

快速试手vpp三层转发

                          快速试手vpp三层转发

6)进行ping测试

为了查看报文是否确实走隧道转发,可通过trace add命令进行报文跟踪

进行ping操作后,show trace查看报文。可以看到本例中,先是收到4.4.4.1 – 4.4.4.2的外层IP数据报,发现其报文目的地址是本机地址后上送,进行GRE解封装后发现内层报文的目的地址172.16.0.2仍是本机地址,又再走一次ip4-input。(最终解析icmp报头的时候认为type错了,将报文丢弃了,汗! 普通的ping未发现有此现象,该现象先存疑,不确定是不是出现了bug!)

快速试手vpp三层转发

快速试手vpp三层转发