# VPP 对接智网的配置方法 云网关对接智网需要支持 QinQ 功能,对接租户网络时需支持 VXLAN 和 vlan 接口。 现在云网关要实现完整的租户到智网的访问,需要支持改写 vlan 子接口报文,插入新的 vlan 标签,从 QinQ 接口转发到智网。 ## 模拟场景搭建环境 ![vpp_to_znet_1](../../_static/vpp_to_znet_1.png) ## 测试步骤 1、配置 host-1 ```bash # 配置 vlan uranus> set int state GigabitEthernet0/a/0 up uranus> create sub-interface GigabitEthernet0/a/0 3 uranus> set int ip addr GigabitEthernet0/a/0.3 192.168.4.1/24 uranus> set int state GigabitEthernet0/a/0.3 up ``` ![vpp_to_znet_host1](../../_static/vpp_to_znet_host1.png) 2、配置 host-2 ```bash #(1)配置 vlan uranus> set int state GigabitEthernet0/a/0 up uranus> create sub-interface GigabitEthernet0/a/0 3 uranus> set int state GigabitEthernet0/a/0.3 up #(2)配置 QinQ 接口 uranus> set int state GigabitEthernet0/c/0 up uranus> create sub-interface GigabitEthernet0/c/0 4 dot1q 4 inner-dot1q 3 uranus> set int ip addr GigabitEthernet0/c/0.4 192.168.4.11/24 uranus> set int state GigabitEthernet0/c/0.4 up #(3)桥接 vlan 和 QinQ 接口 uranus> set int l2 bridge GigabitEthernet0/a/0.3 1 uranus> set int l2 bridge GigabitEthernet0/c/0.4 1 #(4)配置 Ga 子接口添加二层 vlan tag uranus> set int l2 tag-rewrite GigabitEthernet0/a/0.3 disable uranus> set int l2 tag-rewrite GigabitEthernet0/a/0.3 push dot1q 4 ``` ![vpp_to_znet_host2](../../_static/vpp_to_znet_host2.png) 3、配置 host-3 ```bash #(1)配置 QinQ uranus> set int state GigabitEthernet0/c/0 up uranus> create sub-interface GigabitEthernet0/c/0 4 dot1q 4 inner-dot1q 3 uranus> set int ip addr GigabitEthernet0/c/0.4 192.168.4.12/24 uranus> set int state GigabitEthernet0/c/0.4 up #(2)配置 Gc 子接口剥除二层 vlan tag uranus> set int l2 tag-rewrite GigabitEthernet0/c/0.4 disable uranus> set int l2 tag-rewrite GigabitEthernet0/c/0.4 translate 2-1 dot1q 3 #(3)启用 Gb 网卡,注此处不能使用子接口,否则报文会再次变成二层 vlan uranus> set int state GigabitEthernet0/b/0 up #(4)桥接 vlan 和 QinQ 接口 uranus> set int l2 bridge GigabitEthernet0/b/0 1 uranus> set int l2 bridge GigabitEthernet0/c/0.4 1 ``` ![vpp_to_znet_host3](../../_static/vpp_to_znet_host3.png) 4、配置 host-4 ```bash # 配置 vlan uranus> set int state GigabitEthernet0/b/0 up uranus> create sub-interface GigabitEthernet0/b/0 3 uranus> set int ip addr GigabitEthernet0/b/0.3 192.168.4.2/24 uranus> set int state GigabitEthernet0/b/0.3 up ``` ![vpp_to_znet_host4](../../_static/vpp_to_znet_host4.png) 测试: 从 host1 ping host4: ![vpp_to_znet_result](../../_static/vpp_to_znet_result.png)