# 将源弹性网卡的入方向TCP流量镜像到单个目的弹性网卡
#### 方案架构
当您需要将镜像源（弹性网卡）的入方向TCP流量，镜像到单个镜像目的（弹性网卡）时，您可以参考本文的配置示例。如[图1]所示，在VPC-A中，ECS-test访问ECS-source，需要将ECS-source入方向TCP流量镜像到ECS-target中，则您创建一个镜像会话可以实现需求，详细设置如下：
- 镜像源是ECS-source的弹性网卡-s，表示需要镜像弹性网卡-s入方向的TCP流量。
- 镜像目的是ECS-target的弹性网卡-t，表示将弹性网卡-s入方向的TCP流量镜像到弹性网卡-t中。
- 镜像会话的筛选条件中需要添加采集入方向TCP流量的规则。
图1镜像入方向TCP流量   
![](https://support.huaweicloud.com/usermanual-vpc/zh-cn_image_0000002016102638.png)
#### 约束与限制
关于流量镜像的使用限制，具体请查看[流量镜像的使用限制](https://support.huaweicloud.com/usermanual-vpc/vpc_mirror_02.html#vpc_mirror_02__section1412134042913)。
#### 资源规划说明
本示例中，虚拟私有云VPC和子网、弹性公网IP以及弹性云服务器ECS等资源只要位于同一个区域内即可，可用区可以任意选择，无需保持一致。
![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/note_3.0-zh-cn.png)
以下资源规划详情仅为示例，您可以根据需要自行修改。
表1镜像入方向TCP流量资源规划总体说明 
| 资源类型         | 资源数量                                        | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|
| 虚拟私有云VPC和子网 | VPC：1 子网：1 | - VPC名称：请根据实际情况设置，本示例为VPC-A。  - IPv4网段：请根据实际情况设置，本示例为192.168.0.0/16。  - 子网名称：请根据实际情况设置，本示例为Subnet-A01。  - 子网IPv4网段：请根据实际情况设置，本示例为192.168.0.0/24。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 弹性云服务器ECS | 3                                        | 本示例中，共需要三个ECS，配置说明如下： - 名称：根据实际情况设置，本示例分别为ECS-source、ECS-target和ECS-test。  - **实例规格类型：本示例中镜像源ECS-source使用通用计算增强型c7t，当前仅支持部分规格ECS的弹性网卡作为镜像源，具体请参见[流量镜像的使用限制](https://support.huaweicloud.com/usermanual-vpc/vpc_mirror_02.html#vpc_mirror_02__section1412134042913)。其他ECS的规格类型不做限制。**  - 镜像：请根据实际情况设置，本示例为公共镜像（Huawei Cloud EulerOS 2.0 标准版 64位）。  - 系统盘：通用型SSD盘，40GB。  - 数据盘：本示例未选购数据盘，请您根据实际业务需求选购数据盘。  - 网络： - 虚拟私有云：选择您的虚拟私有云，本示例为VPC-A。  - 子网：选择子网，本示例为Subnet-A01。    - 安全组：本示例中，3个ECS属于同一个安全组Sg-X，需要确保[表2]中的规则均已正确添加即可。 如果ECS属于不同的安全组，则除了分别在不同安全组配置[表2]中的规则外，还需要添加以下规则： - 如果访问镜像源的测试ECS和镜像源ECS属于不同安全组，比如ECS-test属于Sg-X，ECS-source属于Sg-A，则需要在Sg-A中额外添加[表3]中的规则，允许ECS-test的流量进入。  - 如果镜像源ECS和镜像目的ECS属于不同安全组，比如ECS-source属于Sg-A，ECS-target属于Sg-B，则需要在Sg-B中额外添加[表4]中的规则，允许来自镜像源封装的UDP协议报文访问镜像目的的4789端口。     - 弹性公网IP：选择"暂不购买"。  - 私有IP地址：ECS-source为192.168.0.230，ECS-target为192.168.0.164，ECS-test为192.168.0.161   |
| 弹性公网IP      | 1                                         | - 计费模式：请根据情况选择计费模式，本示例为按需计费。  - EIP名称：请根据实际情况设置，本示例为EIP-A。  - EIP地址：EIP地址系统随机分配，本示例为124.X.X.187。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 筛选条件                             | 1                                                              | - 名称：请根据实际情况设置，本示例为mirror-filter-A。  - 入方向规则：添加1条入方向规则，该规则表示从ECS-test发送到镜像源（ECS-source）1234端口的TCP报文将会被镜像，规则详情请参见[表5]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 镜像会话                              | 1                                                              | - 镜像会话基本信息： - 名称：请根据实际情况设置，本示例为mirror-session-A。  - 优先级：请根据实际情况设置，本示例为1。  - VXLAN网络标识：请根据实际情况设置，本示例为1。  - 镜像报文长度：请根据实际情况设置，本示例为96。  - 是否开启：开启，镜像会话开启后，才会监控镜像源的网络流量。    - 关联筛选条件：请根据实际情况设置，本示例为mirror-filter-A。  - 关联镜像源：请根据实际情况设置，本示例为ECS-source的弹性网卡，私有IP地址为192.168.0.230。  - 关联镜像目的： - 类型：云服务器网卡  - 网卡：请根据实际情况设置，本示例为ECS-target的弹性网卡，私有IP地址为192.168.0.164。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
 表2安全组Sg-X规则说明 
| 方向    | 策略    | 类型     | 协议端口      | 源地址/目的地址       | 描述                                      |
|:---|:---|:---|:---|:---|:---|
| 入方向      | 允许    | IPv4    | TCP: 22     | 源地址：0.0.0.0/0    | 放通安全组内ECS的SSH(22)端口，用于远程登录Linux ECS。    |
| 入方向    | 允许   | IPv4     | TCP: 3389 | 源地址：0.0.0.0/0  | 放通安全组内ECS的RDP(3389)端口，用于远程登录Windows ECS。 |
| 入方向 | 允许 | IPv4  | 全部         | 源地址：当前安全组Sg-X   | 针对IPv4，用于安全组内ECS之间网络互通。                |
| 入方向    | 允许     | IPv6      | 全部         | 源地址：当前安全组Sg-X    | 针对IPv6，用于安全组内ECS之间网络互通。                 |
| 出方向   | 允许     | IPv4    | 全部            | 目的地址：0.0.0.0/0 | 针对IPv4，用于安全组内ECS访问外部，允许流量从安全组内ECS流出。 |
| 出方向  | 允许 | IPv6 | 全部        | 目的地址：::/0       | 针对IPv6，用于安全组内ECS访问外部，允许流量从安全组内ECS流出。   |
   
![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/caution_3.0-zh-cn.png)
本示例中，入方向源地址设置为0.0.0.0/0表示允许所有外部IP远程登录云服务器，如果将22或3389端口暴露到公网，可能存在网络安全风险，建议您将源IP设置为已知的IP地址，比如设置为您的本地PC地址。
 表3安全组Sg-A规则说明 
| 方向  | 策略   | 类型    | 协议端口 | 源地址                                                         | 描述                                                   |
|:---|:---|:---|:---|:---|:---|
| 入方向 | 允许 | IPv4 | TCP: 1234                    | 访问镜像源的测试ECS的地址，本示例为ECS-test的私有IP地址： 192.168.0.161/32 | 针对IPv4，允许来自ECS-test的TCP协议报文访问镜像源ECS-source的1234端口。 |
   
 表4安全组Sg-B规则说明 
| 方向  | 策略 | 类型    | 协议端口   | 源地址                                                                          | 描述                                                          |
|:---|:---|:---|:---|:---|:---|
| 入方向 | 允许  | IPv4 | UDP: 4789 | 镜像源的地址，本示例为ECS-source的私有IP地址： 192.168.0.230/32 | 针对IPv4，允许来自镜像源ECS-source封装的UDP协议报文访问镜像目的ECS-target的4789端口。 |
   
 表5筛选条件的入方向规则 
| 方向 | 优先级 | 协议 | 策略 | 类型  | 源地址                                                                             | 源端口范围 | 目的地址                                                                         | 目的端口范围                                                       |
|:---|:---|:---|:---|:---|:---|:---|:---|:---|
| 入方向 | 1    | TCP  | 采集    | IPv4 | 报文的来源地址，本示例为ECS-test的私有IP地址： 192.168.0.161/32 | 全部   | 报文的目的地址，本示例为ECS-source的私有IP地址： 192.168.0.230/32 | 本示例为ECS-source的1234端口： 1234-1234 |
   
#### 操作流程
将源弹性网卡的入方向TCP流量镜像到单个目的弹性网卡，流程如[图2]所示。
图2镜像入方向TCP流量   
![](https://support.huaweicloud.com/usermanual-vpc/zh-cn_image_0000002016111382.png)
#### 步骤一：创建云服务资源
1. 创建1个VPC和1个子网。 具体方法请参见[创建虚拟私有云和子网](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0013935842.html)。
   
2. 创建3个ECS。 具体方法请参见[自定义购买ECS](https://support.huaweicloud.com/usermanual-ecs/ecs_03_7002.html)。
   
3. 申请弹性公网IP。 具体方法请参见[购买弹性公网IP](https://support.huaweicloud.com/usermanual-eip/eip_0008.html)。
   
 
#### 步骤二：创建筛选条件和镜像会话
1. 创建1个筛选条件。 具体方法请参见[创建筛选条件](https://support.huaweicloud.com/usermanual-vpc/vpc_mirror_04.html)。
   
2. 创建1个镜像会话，关联筛选条件、镜像源以及镜像目的。 具体方法请参见[创建镜像会话](https://support.huaweicloud.com/usermanual-vpc/vpc_mirror_12.html)。
   
 
#### 步骤三：安装NC工具模拟数据流量
本文使用NC工具模拟数据流量，NC工具是一个通过TCP/UDP协议在网络中读写数据的工具，常用于网络端口测试等，需要在ECS-source和ECS-test中安装NC工具。
1. 在ECS-source中安装NC工具。
   1. 下载NC工具需要连接公网，将EIP绑定至ECS-source。
      具体方法请参见[绑定弹性公网IP](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0174917535.html)。
      
   
   2. 远程登录ECS-source。 ECS有多种登录方法，具体请参见[登录弹性云服务器](https://support.huaweicloud.com/ecs_faq/ecs_faq_0632.html)。
      
   
   3. 依次执行以下命令，安装NC工具。 **sudo yum update**
      回显类似如下信息：
      ```
      [root@ecs-source ~]# sudo yum update
      HCE 2.0 base                                                                                                                                                 55 MB/s | 6.1 MB     00:00    
      HCE 2.0 updates                                                                                                                                              98 MB/s |  14 MB     00:00    
      Last metadata expiration check: 0:00:01 ago on Tue 10 Sep 2024 05:54:28 PM CST.
      Dependencies resolved.
      Nothing to do.
      Complete!
      ```
      **sudo yum install nc**
      回显类似如下信息，请根据回显提示输入**y** ，并按回车。
      ```
      [root@ecs-source ~]# sudo yum install nc
      Last metadata expiration check: 0:00:12 ago on Tue 10 Sep 2024 05:54:28 PM CST.
      Dependencies resolved.
      ...
      Install  2 Packages
      Total download size: 6.1 M
      Installed size: 25 M
      Is this ok [y/N]: y
      Downloading Packages:
      ...    
      Importing GPG key 0xA8DEF926:
       Userid     : "XXX"
       Fingerprint: C1BA 9CD4 9D03 A206 E241 F176 28DA 5B77 A8DE F926
       From       : http://.../XX/2.0/updates/RPM-GPG-KEY-HCE-2
      Is this ok [y/N]: y
      ...
      Installed:
        libssh2-1.10.0-2.r10.hce2.x86_64                                                               nmap-2:7.92-2.r4.hce2.x86_64                                                              
      Complete!
      ```
      
   
   4. ECS-source的NC工具安装完成后，解绑EIP。
      具体方法请参见[解绑弹性公网IP](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0182.html)。
      
    
2. 参考[1.a]\~[1.d]，在ECS-test中安装NC工具，并解绑EIP。
3. EIP解绑后，删除EIP。 本示例中不再需要使用EIP，因此删除EIP，具体方法请参见[解绑弹性公网IP](https://support.huaweicloud.com/usermanual-ecs/ecs_03_0182.html)。如果不删除EIP，则EIP会持续计费。
   
 
#### 步骤三：验证镜像会话是否生效
1. 执行以下操作，建立ECS-source和ECS-test之间的TCP连接。 本文在ECS-test向ECS-source发送TCP报文，查看ECS-source是否可以收到该报文。
   1. 在ECS-source中，执行以下命令，开启1234端口的监听。 **nc -l** *镜像源ECS-source的监听端口*
      命令示例：
      **nc -l 1234**
      此处回显为空，表示监听已正常开启。
      
   
   2. 在ECS-test中，执行以下命令，建立ECS-source和ECS-test之间的TCP连接。 **nc** *镜像源ECS-source的私有IP地址 镜像源ECS-source的监听端口*
      命令示例：
      **nc 192.168.0.230 1234**
      此处回显为空，在ECS-test中，输入任意信息（比如**hello** ），并按回车，测试TCP连接是否建立成功。
      ```
      [root@ecs-test ~]# nc 192.168.0.230 1234
      hello
      ```
      
   
   3. 在ECS-source中，查看是否收到来自ECS-test的信息。
      回显类似如下信息，可正常收到信息，表示TCP连接建立成功。
      ```
      [root@ecs-source ~]# nc -l 1234
      hello
      ```
      
    
2. 执行以下操作，测试ECS-source入方向的报文是否可以镜像到ECS-target。
   当ECS-test实时向镜像源ECS-source发送TCP报文时，通过TCPDUMP工具，查看镜像目的ECS-target是否可以获取到该报文的数据包，如果获取成功，则表示镜像会话配置生效。
   1. 远程登录ECS-target。 ECS有多种登录方法，具体请参见[登录弹性云服务器](https://support.huaweicloud.com/ecs_faq/ecs_faq_0632.html)。
      
   
   2. 在ECS-target中，执行以下命令，查看镜像目的对应的网卡名称。 **ifconfig**
      回显类似如下信息，本示例中镜像目的对应的网卡名称为eth0。
      ```
      [root@ecs-target ~]# ifconfig
      eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
              inet 192.168.0.164  netmask 255.255.255.0  broadcast 192.168.0.255
              inet6 fe80::f816:3eff:fe7e:d67a  prefixlen 64  scopeid 0x20<link>
              ether fa:16:3e:7e:d6:7a  txqueuelen 1000  (Ethernet)
              RX packets 29043  bytes 32268398 (30.7 MiB)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 13811  bytes 3961116 (3.7 MiB)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
      ...
      ```
      
   
   3. 在ECS-target中，执行以下命令，通过TCPDUMP工具观察数据包获取情况。 **tcpdump -i** *镜像目的对应的网卡名称* **udp port 4789 -nne**
      命令示例：
      **tcpdump -i eth0 udp port 4789 -nne**
      回显类似如下信息：
      ```
      [root@ecs-target ~]# tcpdump -i eth0 udp port 4789 -nne
      dropped privs to tcpdump
      tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
      listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
      ```
      
   
   4. 在ECS-test中，输入任意信息（比如**12345** ），并按回车，向ECS-source发送TCP报文。
      回显类似如下信息：
      ```
      [root@ecs-test ~]# nc 192.168.0.230 1234
      hello
      12345
      ```
      
   
   5. 在ECS-source中，查看是否收到来自ECS-test的信息。
      回显类似如下信息，可正常收到信息。
      ```
      [root@ecs-source ~]# nc -l 1234
      hello
      12345
      ```
      
   
   6. 在ECS-target中，查看是否可以获取到报文的数据包。
      回显类似如下信息，可以看到TCPDUMP工具启动后，ECS-test发送的信息**12345** 对应的数据包。其中，**vni 1** 为镜像会话的标识，表示通过镜像会话，ECS-target可成功获取到数据包，数据包内容分为两部分，详细说明请参见[表6]。
      ```
      [root@ecs-target ~]# tcpdump -i eth0 udp port 4789 -nne
      dropped privs to tcpdump
      tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
      listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
      19:12:25.839624 fa:16:3e:d1:6b:5d > fa:16:3e:7e:d6:7a, ethertype IPv4 (0x0800), length 122: 192.168.0.230.32838 > 192.168.0.164.4789: VXLAN, flags [I] (0x08), vni 1
      fa:16:3e:7e:d6:77 > fa:16:3e:7e:d6:bc, ethertype IPv4 (0x0800), length 72: 192.168.0.161.38944 > 192.168.0.230.1234: Flags [P.], seq 2063075043:2063075049, ack 1116663338, win 502, options [nop,nop,TS val 969673134 ecr 605179348], length 6
      ```
       表6数据包说明 
      | 数据包示例                                                                                                                                                                                                                   | 数据包说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
      |:---|:---|
      | ``` 19:12:25.839624 fa:16:3e:d1:6b:5d > fa:16:3e:7e:d6:7a, ethertype IPv4 (0x0800), length 122: 192.168.0.230.32838 > 192.168.0.164.4789: VXLAN, flags [I] (0x08), vni 1 ```                                                                            | 流量镜像封装的VXLAN报文。报文格式如下： \<Timestamp\>\<SMacAddr\>\<DMacAddr\>\<EthernetType\>\<Length\>\<Sip\>\<Sport\>\<Dip\>\<Dport\>\<VXLAN Flags\>\<VNI\> 封装报文的字段说明如下： - Timestamp：由TCPDUMP工具生成，表示获取报文的时间  - SMacAddr：VXLAN报文来源实例的MAC地址，此处为网关实例的MAC地址  - DMacAddr：VXLAN报文目的实例的MAC地址，此处为镜像目的实例的MAC地址  - EthernetType：报文的以太网类型，0x0800表示协议是IPv4  - Length：报文的长度  - Sip：镜像源地址  - Sport：镜像源端口  - Dip：镜像目的地址  - Dport：镜像目的端口，通常为接收VXLAN报文的端口4789  - VXLAN Flags：通常为0x08，表示为VXLAN报文  - VNI：镜像会话的VXLAN网络标识   |
      | ``` fa:16:3e:7e:d6:77 > fa:16:3e:7e:d6:bc, ethertype IPv4 (0x0800), length 72: 192.168.0.161.38944 > 192.168.0.230.1234: Flags [P.], seq 2063075043:2063075049, ack 1116663338, win 502, options [nop,nop,TS val 969673134 ecr 605179348], length 6 ``` | 原始报文。 原始报文字段属于通用网络知识，此处不做详细说明。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
         
      
     
 
