AWS-无法从另一台服务器ping GNS3路由器

问题描述

我们希望拥有一个测试云虚拟网络,该网络允许我们通过 snmp获取多个虚拟设备。为此,我正在使用 GNS3 。现在,我们刚刚在EC2(Ubuntu 18)上部署了GNS3服务器,但是我们无法ping或snmp获取GNS3服务器之外的任何路由器。我们可以在GNS3服务器上ping这些设备,但这在另一台服务器或我的计算机上不起作用。

已经创建并部署了GNS3服务器。 VPG,站点站点VPN和VPC已创建,并且服务器已添加到该VPC。

解决方法

经过数周的研究,我们的团队找到了解决方案,如果有人遇到同样的问题,请考虑您的AWS配置中的这些重要点:

  1. 服务器A(GNS3)必须与服务器B(要从其ping的测试服务器)位于不同的子网中。
  2. 必须在AWS配置中创建指向GNS3 ip的Route Table
  3. 使用以下说明
  4. 在服务器A(在我的情况下是Ubuntu 18)中配置NAT

设置IP转发和伪装

    iptables --table nat --append POSTROUTING --out-interface ens5 -j MASQUERADE


    iptables --append FORWARD --in-interface virbr0 -j ACCEPT

启用内核转发数据包

echo 1 > /proc/sys/net/ipv4/ip_forward

应用配置

service iptables restart

这将允许您从服务器B访问服务器A中的虚拟GNS3设备(更详细的说明here)。此外,您可能需要测试从服务器B到服务器A(在我的情况下为路由器)中的虚拟设备的SNMP-WALK。

如果这不起作用,请尝试使用flow logs in AWS进行调试,并查看服务器A是否有效地接收了请求。