Таблица маршрутов AWS VPC - Изменить таблицу маршрутов по умолчанию - PullRequest
0 голосов
/ 28 февраля 2019

Можно ли изменить таблицу маршрутов, связанную с VPC?Я использую CloudFormation и создал свой RT и связанные с ним подсети.Однако, поскольку VPC использует таблицу маршрутов по умолчанию и утверждает, что я не ассоциировал подсети явно, они ассоциируются с основной таблицей маршрутов как перехват всех.Я явно делаю что-то не так, так как мои подсети связаны с таблицей маршрутов, которую я хочу, но таблица маршрутов по умолчанию, кажется, имеет приоритет.

Это показывает, что подсети связаны:

Shows that the subnets are associated

Это говорит о том, что подсети не связаны с таблицей маршрутов:

Says the subnets are not associated with a route table

Если я добавлюмаршрут IGW к стандартному / основному RT, все работает.Не то, что я хочу.

Обновление

Вот CloudFormation для создания VPC и компонентов.Проблема в том, что если в подсети вращается ящик, используется основная таблица маршрутов, несмотря на то, что мои подсети явно связаны с моей настраиваемой таблицей маршрутов.

Resources:
  TransitVPC:
    Type: 'AWS::EC2::VPC'
    Properties:
      CidrBlock: !Ref TransitVpcCidr
      EnableDnsSupport: 'true'
      EnableDnsHostnames: 'true'
      Tags:
      - Key: Name
        Value: Transit VPC
  TransitInternetGateway:
    Type: 'AWS::EC2::InternetGateway'
    Properties:
      Tags:
      - Key: Name
        Value: Transit Internet Gateway
    DependsOn:
    - TransitVPC
  TransitRouteTable:
    Type: 'AWS::EC2::RouteTable'
    Properties:
      VpcId: !Ref TransitVPC
      Tags:
      - Key: Name
        Value: Transit VPC RT
    DependsOn:
    - TransitVPC
  TransitIGWAttachment:
    Type: 'AWS::EC2::VPCGatewayAttachment'
    Properties:
      InternetGatewayId: !Ref TransitInternetGateway
      VpcId: !Ref TransitVPC
    DependsOn:
      - TransitVPC
      - TransitInternetGateway
  TransitSubnetA:
    Type: 'AWS::EC2::Subnet'
    Properties:
      VpcId: !Ref TransitVPC
      CidrBlock: !Ref TransitSubnetACidr
      AvailabilityZone: !Ref TransitSubnetARegion
      Tags:
      - Key: Name
        Value: Transit VPC Subnet A
    DependsOn:
    - TransitVPC
  TransitSubnetARTAssoc:
    Type: 'AWS::EC2::SubnetRouteTableAssociation'
    Properties:
      RouteTableId: !Ref TransitRouteTable
      SubnetId: !Ref TransitSubnetA
  TransitSubnetB:
    Type: 'AWS::EC2::Subnet'
    Properties:
      VpcId: !Ref TransitVPC
      CidrBlock: !Ref TransitSubnetBCidr
      AvailabilityZone: !Ref TransitSubnetBRegion
      Tags:
      - Key: Name
        Value: Transit VPC Subnet B
  TransitSubnetBRTAssoc:
    Type: 'AWS::EC2::SubnetRouteTableAssociation'
    Properties:
      SubnetId: !Ref TransitSubnetB
      RouteTableId: !Ref TransitRouteTable
  TransitIGWRoute:
    Type: 'AWS::EC2::Route'
    Properties:
      RouteTableId: !Ref TransitRouteTable
      DestinationCidrBlock: !Ref FinalGatewayCidr
      GatewayId: !Ref TransitInternetGateway
    DependsOn:
    - TransitIGWAttachment

1 Ответ

0 голосов
/ 28 февраля 2019

Было бы намного лучше создать весь VPC через CloudFormation, включая:

  • VPC
  • Интернет-шлюз
  • Подсети
  • Таблицы маршрутов
  • Ассоциации таблиц маршрутов

Таким образом, гарантируется, что при повторном развертывании в будущем эта работа будет гарантирована.Кроме того, можно легко ссылаться на все компоненты VPC в стеке (в отличие от необходимости ссылаться на ресурсы, созданные вне стека).

В качестве альтернативы, ваш шаблон может создайте свою собственную таблицу маршрутов (которую следует использовать вместо существующей таблицы маршрутов), затем создайте ассоциацию подсетей , которая настраивает ваши новые подсети для использования новой таблицы маршрутов.Таким образом, таблица маршрутов по умолчанию не будет использоваться, поскольку подсеть будет использовать таблицу маршрутов по умолчанию, только если она не была специально назначена для таблицы маршрутов.

...