VPP实现的策略路由
vpp配置acl两种方法:
1,命令行自带的classify
2,用vat或者api接口配置acl-plugin
关于这两种方法的区别参考:https://www.mail-archive.com/vpp-dev@lists.fd.io/msg02885.html
关于VPP的acl-plugin配置参考:https://wiki.fd.io/view/VPP/SecurityGroups
关于VPP策略路由PBR功能,目前了解到的是从18.10版本开始支持VPP/ABF
参考:https://wiki.fd.io/view/VPP/ABF
下面根据acl-plugin和ABF的方式配置策略路由。
拓扑如下:
在vpp上实现策略路由选路
环境描述:首先根据拓扑配置好ip,接着在中间三台路由器上配置静态路由,实现访问90.10.30.0时走10.10.10.0网段,访问90.10.40.0时走10.10.20.0网段。
vpp基本配置如下:
vppctl set int state GigabitEthernet2/1/0 up
vppctl set int state GigabitEthernet2/2/0 up
vppctl set int state GigabitEthernet2/3/0 up
vppctl set int state GigabitEthernet2/5/0 up
vppctl set int ip address GigabitEthernet2/1/0 10.10.10.1/24
vppctl set int ip address GigabitEthernet2/2/0 10.10.20.1/24
vppctl set int ip address GigabitEthernet2/3/0 90.10.10.1/24
vppctl set int ip address GigabitEthernet2/5/0 90.10.20.1/24
vppctl ip route add 90.10.30.0/24 via 10.10.10.2
vppctl ip route add 90.10.40.0/24 via 10.10.20.2
其他设配配置路由可达即可,不再赘述。
此时PC1和PC2 ping PC3走上面路由, ping PC4走下面路由
在VPP上配置acl和abf:
1、首先配置acl,(acl只能通过vat命令或者api接口进行配置)
vpp_api_test
acl_add_replace permit, ipv4 permit
acl_add_replace 0 ipv4 permit src 90.10.10.0/24
acl_interface_add_del sw_if_index 3 add input acl 0 #应用到接口,接口索引可通过sh int查看
2,配置abf(ACL Based Forwarding)
DBGvpp# abf policy add id 1 acl 0 via 10.10.20.2
DBGvpp# abf attach ip4 policy 1 GigabitEthernet2/3/0
此时再用PC1 ping PC3和PC4均走下面路由
用PC2 ping PC3依然走上面路由,ping PC4走下面路由
验证vpp策略路由成功