快速试手vpp三层转发
通过一个GRE隧道配置实例,演示三层转发的(接口配置、ip地址、路由、报文追踪等)
基本配置,帮助读者快速试手。
隧道内层: 172.16.1.1 172.16.0.2
隧道外层: 4.4.4.1 4.4.4.2
VM1---------------------------------------VM2
通过虚拟网卡桥接
一 、 配置物理接口直连互通
1、通过 vppctl进入CLI交互视图
Show interface命令可以查看当前接口状态
set interface state命令可以将接口状态置为up (接口默认都是down的)
set interface ip address命令可以设置接口的IP地址
show interface address命令可以显示所有接口的ip信息
2、按上述步骤将另一个vm的地址配置成4.4.4.1/24
3、进行ping测试(repeat参数指定icmp报文发送个数)
二、 配置GRE隧道
1)sudo vppctl xxx | grep xxx 可以快速查找一个特性的所有命令,例如可按如下方法察看GRE的所有命令
2)创建隧道
从上一部可以看到完整命令描述是:
create gre tunnel src <addr> dst <addr> [instance <n>] [outer-fib-id <fib>] [teb | erspan <session-id>] [del]
尖括号表示需要配置人员手动填写内容
中括号[]表示该参数可选
竖线| 表示或者
其他属于必选
按如下命令可以创建GRE隧道
注:一旦出现非必选的参数,vpp就不会再提供命令行帮助(比如下图),需要配置人员按命令行描述一次配好然后下发命令
3)配置隧道接口
步骤2的隧道create成功后,系统自动生成了GRE隧道接口
跟设置物理接口一样的方法,设置隧道接口的状态和IP地址
4)在另一个vm上也创建GRE tunnel,并配置GRE隧道接口
5)在两个vm上分别配置隧道私网的路由
ip route add命令可以添加路由(注:GRE隧道是点对点网络可以直接via接口,共享式网络如以太网需要指定下一跳地址)
show ip fib命令可以查看fib
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!)