Fargate Linux Github RunnerはVPN(nslookup)を介してプライベートネットワーク上の特定のURLを見つけることができません。

Fargate Linux Github RunnerはVPN(nslookup)を介してプライベートネットワーク上の特定のURLを見つけることができません。

ワーカーコンテナ (Fargate Worker:https://docs.gitlab.com/runner/configuration/runner_autoscale_aws_fargate/)。

私の質問問題は、コンテナ(Gitlab-runner)がFargate(「awsvpc」ネットワークモード)で実行されていますが、「nslookup」がVPNサイト間のサイトの他の部分にプライベートDNSサーバーを見つけることができないことです。

EC2でも同じことをしました。 EC2でResolve.confを次のように更新した場合:

sudo sed -i 's/#DNS=/DNS=192.168.x.x/g' /etc/systemd/resolved.conf
sudo sed -i 's/#Domains=/Domains=privateurl.net/g' /etc/systemd/resolved.conf
sudo systemctl restart systemd-resolved

EC2から 'nslookup サブドメイン.privateurl.net'肯定的なリターンで名前、アドレス、IPを見つけました。

しかし、Fargateで実行されているコンテナで同じタスクを実行すると、nslookup サブドメイン.privateurl.net'名前、アドレス、IPが見つかりません。

コンテナで「ping」が完了します。これは、FargateのコンテナとVPNの反対側のサーバー(subdomain.privateurl.net)の間に接続があることを示しています。しかし、ping <subdomain.privateurl.net>「そして」nslookup <サブドメイン.privateurl.net>'正常に動作できません。ところで、DNS要求(nslookup)のためにコンテナポート53をホスト53にポートマッピングしました。

Fargate(「awsvpc」ネットワークモード)のコンテナがEC2とは異なる動作をしているようです。

クラウド観察ログ:

nslookup subdomain.privateurl.net  # on ECS container
** server can't find subdomain.privateurl.net: NXDOMAIN

PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=63 time=15.8 ms

ベストアンサー1

Route 53ソルバーを使用してソリューションを見つけました。

resource "aws_route53_resolver_endpoint" "dns" {
  name               = "resolver"
  direction          = "OUTBOUND"
  security_group_ids = [data.aws_security_group.selected_sg.id]
  
  ip_address {
    subnet_id = data.aws_subnet.selected_subnet.id
    ip        = "172.x.x.x" # ip from vpc subnet
  }
  
  ip_address {
    subnet_id = data.aws_subnet.selected_subnet.id
    ip        = "172.x.x.x" # ip from vpc subnet
  }

}

resource "aws_route53_resolver_rule" "local" {
  domain_name          = "privateurl.net"
  name                 = "local"
  rule_type            = "FORWARD"
  resolver_endpoint_id = aws_route53_resolver_endpoint.dns.id
  
  target_ip {
    ip = "PrivateDNSIP"
    port = 53
  }
}

resource "aws_route53_resolver_rule_association" "local" {
  resolver_rule_id = aws_route53_resolver_rule.local.id
  vpc_id           = data.aws_vpc.selected.id
}

おすすめ記事