1.连接方式
[1]连接1
但接通外网的网关192.168.50.1处没有主机192.168.206.0网段的回程路由
[2]连接2
设备数量受限,只有一个设备但设备接口足够,可以用设备的一个接口连接vpp中绑定的接口来充当另一个主机
[3]连接3
若设备受限,只有一个设备且设备接口不足,创建tap口(tap口物理上是不存在的,使用 TAP 设备的应用程序相当于另外一台计算机,TAP 设备是本机的一个网卡,他们之间相互连接。应用程序通过 read()/write()操作,和本机网络核心进行通讯)
主机通过vpp与设备系统进行通信
tap口创建好之后要在设备系统中添加回程路由
tap设备:https://www.cnblogs.com/yml435/p/5917628.html
2.acl命令行
[1]设置acl
set acl-plugin acl <permit|deny> src dst proto X sport X-Y dport X-Y [tag FOO] {use comma separated list for multiple rules}
[2]查看acl
show acl-plugin acl
[3]将acl绑在接口上
set acl-plugin interface <input|output> [del]
[4]查看接口acl
show acl-plugin interface
3.acl api接口
[1]获取acl插件版本
acl_plugin_get_version
[2]增加或替换ACL规则
acl_add_replace <permit|permit+reflect|deny|action N> [src IP/plen] [dst IP/plen] [sport X-Y] [dport X-Y] [proto P] [tcpflags FL MASK]
增加
替换
[3]查看acl规则
acl_dump
[4]删除acl规则
acl_del index
[5]acl规则绑定、解绑接口
acl_interface_add_del sw_if_index [add|del] [input|output] acl
绑定:
acl_interface_set_acl_list :给指定端口设置输入输出控制方式
解绑:
[6]acl规则绑定接口查看
acl_interface_list_dump
4.acl测试
[1]在vpp中配置规则
acl 0:source ip 192.168.206.0/24网段的报文permit
acl 2:source ip 2.2.2.0/24网段的报文deny
acl 3:source ip 192.168.206.3/32 的报文permit
acl 4:dst ip 2.2.2.0/24 网段的报文permit
[2]acl规则绑定接口
将acl 4绑在GigabitEthernet4/0/0接口 acl 0绑在tap0接口
[3]trace查看报文走过的节点流程
192.168.206.3-2.2.2.2
dpdk-input:收包节点
ethernet-input:区分ip4还是ipv6
ip4-input-no-checksum:ip头的校验
acl-plugin-in-ip4-fa:acl节点
ip4-lookup:查路由
ip4-rewrite:重新组包
tap0-output:接口出方向节点
2.2.2.2-192.168.206.3
收包节点不再是dpdk-input而是virtio-input,ip4-input节点需要做校验和计算,ip4-input-no-checksum因为之前的网卡已经做过校验和计算,在ip4-input-no-checksum这个节点不需要再做校验和
virtio-input:收包节点
ethernet-input:区分ipv4还是ipv6
ip4-input:ip头的校验
ip4-lookup:查路由
ip4-rewrite:重新组包
GigabitEthernet4/0/0-output:接口出方向节点
GigabitEthernet4/0/0-tx:接口发包
[4]show run查看走过的节点
[5]show error查看