Skip to main content

VPC peering & transit GW

Contexte

On souhaite interconnecté plusieurs VPC. Dans un premier temps, il s'agira de 2 VPC d'une seule et même entité / entreprise, sur des réseaux différents. 

Ensuite, un nouveau VPC sera ajouté, présent sur un nouveau réseau et appartenant à une autre entité

 

Configurations pour une seule entité

VPCab.png

 

VPC A

VPC

Virtual private cloud > Your VPCs > create VPC

subnets

Virtual private cloud > subnets > create subnet 

  • VPC ID : vpc-A
  • subnet name : vpcA-pub
  • IPv4 subnet CIDR block

internet gateways

virtual private cloud > internet gateways > create internet gateway

name tag : vpcA-IGW

sélectionner la règle créée > "actions" > "attach to vpc" > vpcA

route tables

virtual private cloud > route tables

rafraichir via le bouton sur la console

localiser la table lié au vpc et la renommer 

l'ouvrir

dans routes > "edit routes"

"add route" 0.0.0.0/0 vers internet gateway > choisir la IGW créée précédemment

dans subnet associations > explicit associations > edit subnet associations > cocher vpcA-pub > save associations

EC2 

instances > instances > launch instances

  • name : EC2-vpcA
  • instance type : t3.micro
  • key pair : vockey
  • network settings > edit 
    • vpc : vpcA
    • subnet : vpcA-pub
    • auto assign public ip : enable
    • firewall
      • create security group
      • SG name : SG-EC2-vpcA
      • description : SG-EC2-vpcA
  • advanced details 
    • IAM : labinstance
    • DNS Hostname : cocher enable resource based IPv4

launch instance

VPC B

refaire pareil avec vpc-b 

adapter les valeurs et utiliser 10.1.0.0/16

Peering

vpc

peering connections

create peering connection

name : vpcAtoB

requester : A 

accepter : B

la requête est créé mais en attente (pending). Il faut la valider : 

- peering connections

- coché > actions > accept request

la connexion est active ! 

le ping n'est pas fonctionnel, c'est normal, il faut créer un peering retour !

route tables

table vpcA-pub

routes > edit routes

add route > 10.1.0.0./16 (vpcB) → peering connection → pcx créé juste avant

=) faire pareil avec la table du vpcB

il faut aussi autoriser l'ICMP pour le ping

security > security groups 

 

Pour n'autoriser que de A vers B, il ne faut faire les modifications que sur le A car on est en statefull donc

SG-EC2-vpcA 

inbound > edit inbound rules

add rule 

  • type all icmp ipv4 
  • source type custom 
  • source 10.1.0.0/16 (B)

Peering vers l'extérieur

à noter qu'il n'y a pas de liaison entre les VPC peering. Ici, on va connecter un C externe vers un B interne (pour simuler l'interco entre 2 entreprises) C ne pourra pas communiquer avec A 

VPCabc.png

VPC C

Recrée un vpc-c avec la même méthode que précédemment en adaptant les valeurs (utiliser 10.2.0.0/16)

VPC peering

créer un vpc peering mais adapter les valeurs : 

requester : local (comme pour le peering interne)

par contre : Select another VPC to peer with

  • account > another account > saisir ID
  • region > this region > saisir VPC ID

create vpc peering

côté "accepter" (autre compte - externe)

peering connections 

refresh, la nouvelle règle doit apparaître.

La sélectionner > action > accept request

security groups

SG-EC2-vpcC > inbound rules > edit inbound rules

add rule 

  • type all icmp ipv4 
  • source type custom 
  • source 10.2.0.0/16 (B)

routage

ne pas oublier d'ajouter la route entre C et B

route tables vpc C

routes > edit routes > add route

10.1.0.0/16 (B) → peering connection → pcx vcpCtoB

Transit GW

éviter les multiples VPC peering et permettre un interco sur un même compte
VPC peering gratuit mais transit GW = 0.05€ par connexion à l'heure

vpc>transit gateways > transit gateways > create transit gateway

name : tgw-51

vpc>transit gateways > transit gateways attachements > create

  • name tag : TGW-vpcA
  • transit gateway ID : tgw-51
  • vpc id : vpc A

faire pareil pour B et C

vpc>route tables

sur toutes les existantes (A,B,C)

add route > 10.0.0.0/8 > transit gateway > tgw-51

EC2 > security group

étendre l'ICMP à 10.0.0.0/8