This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

AWS VPC Peering and Routing

I am having difficulty routing traffic correctly to an application server contained in a peered VPC. I don't have a network background and so I might be missing simple. See attached diagram of what I have setup. I want to be able to route traffic with a particular domain name myapp.mydomain.com to the application server contained on the secondary VPC. I verified that Sophos can ping the 10.11.1.5 address, so peering seems to be working. As a test I setup Sophos to NAT all traffic from a particular port to the IP. I saw the firewall entries originally blocking the 10.11.1.5 address and removed the block, but then could still not connect to the device. What are the aspects I need to configure to get this working correctly? Sophos is currently an m3.medium that I want to share with multiple VPCs and I'm trying to avoid increasing my NICs that are attached to the Sophos instance.


This thread was automatically locked due to age.
  • I assume you can ping an internet website from the 10.11.1.5 application machine. If not you need a NAT Rule for this such as Application Subnet -> WAN

    then you will need a NAT rule to allow the traffic to go to the Application
    Traffic from Internet -> Your Service -> Application Server (10.11.1.5) Allow (Check the automatically generate firewall rule as well)

    On a side note:
    I'd recommend either changing your web network or your dmz network which ever is easier as it stands now 10.10.0.0/16 includes 10.10.0.0/24 which could be a potential routing issue it's best practice to not do that. Say a device in the 10.10.0.0/16 network were to use the 10.10.0.55 address and another device on the 10.10.0.0/24 network were to also use the 10.10.0.55 address the firewall may either load balance packets between the two or only send packets to just one of them. It's best to change the DMZ address and either NAT or just have plain firewall rules between the DMZ, Web and Application depending on the communication they require with each other.

    Web Subnet 10.10.0.0/16
    Application Subnet 10.11.1.0/16
    DMZ Subnet 10.12.0.0/24
  • Thanks Mike. You're right about the Web Subnet. I actually have it mislabeled in the diagram. The Web Subnet should actually read 10.10.10.0/24 and not 10.10.0.0/16.

     I have a Masquerading rule set which includes the [Private ENI and 10.11.0.0/16] -> the [External ENI]

    Additionally I have a DNAT: 
    Selector: Any -> Service -> External (Network)
    Destination translation: Application Server (Address)

    I have a SNAT:
    Selector Private (Address)-> Any->Any
    Source: External (Address)

    Unfortunately, I don't know the answer to your assumption. You assumed that I can't reach the Internet from the server. But currently I can't access the server externally unless I poke a hole in the infrastructure and add a IGW to the Application VPC and add an EIP to the instance.
  • I wasn't assuming that was the issue, I am saying if your application server cannot ping outside the network that there is a possible configuration issue and recommended a remedy. Do you have one rule that encompasses the "[Private ENI and 10.11.0.0/16] -> the [External ENI]" or multiple rules to carry this out?

    For the SNAT is "Private (Address)" the application server address?

    I recommend reading rules #3, #4 and #5 as these apply to what you are doing.
    https://community.sophos.com/products/unified-threat-management/astaroorg/f/51/t/22065
  • I have a single Masquerading rule for the [Private ENI and 10.11.0.0/16] -> [External ENI]

    For the SNAT the Private (Address) is the IP of the Internal ENI.
  • "I have a single Masquerading rule for the [Private ENI and 10.11.0.0/16] -> [External ENI]"

    Try having separate masquerading rules for each network rather then one supernet rule.

    "For the SNAT the Private (Address) is the IP of the Internal ENI."
    if the Internal ENI = the application server IP then you are fine there.

    Take a look at rule #5 regarding your DNAT rule and ensure automatically generate firewall rule is checked.

    ensure your DNAT rule is set to the top position to make sure nothing else you have in place is interfering.
    put your SNAT rule in the second position to for the same reason stated above.
  • Mike,
    Just finished working with AWS support and you were close to the answer. What I needed to do was to create a Masquerading Rule to perform "self-NAT". The Rule I added is:
    Any -> External, where External is the External facing ENI. I can probably ditch the private ENI at this point. As explained to me, this allows all traffic to NAT both ways.  I can now reach my application server. Thanks for the help.
  • Glad your issue has been resolved and thanks for sharing the solution with me.