#
ドキュメント

Document

自分のための備忘録です。

Amazon EC2のネットワーク設定

内容

Amazon EC2 Ubuntu 20.04 LTS (Focal Fossa)でネットワーク初期設定がどのように設定されているのかを確認します。
本記事では以下を確認します。

  • IPアドレスおよびMACアドレス
  • デフォルトゲートウェイ
  • DNSサーバ(フルサービスリゾルバ)

Amazon VPC内のAmazon EC2インスタンスはAmazon DHCPサーバと通信してIPアドレスを取得します。
またEC2はVPC作成時にネットワークアドレス+2に配置されるAmazonProvidedDNSをフルサービスリゾルバとして使用します。

ref. デフォルト DHCP オプションセット

本記事は上記設定についてUbuntuの設定ファイルを確認します。

IPアドレスおよびMACアドレス

Ubuntuのネットワークはnetplanで設定します^netplan
設定ファイルは/etc/netplan/50-cloud-init.yamlです。

本記事はコマンド発行結果で本記事に関係のない出力を省略します。

// Amazon EC2 Ubuntu 20.04
$ less /etc/netplan/50-cloud-init.yaml
network:
    ethernets:
        eth0:
            dhcp4: true
            dhcp6: false
            match:
                macaddress: 06:b5:10:xx:xx:xx  // 一部の16進数をxxと置き換えています
            set-name: eth0
    version: 2

/etc/netplan/50-cloud-init.yamlから以下のことが分かります。

  • IPv4のIPアドレスをDHCPサーバから取得している
  • eth0のMACアドレスは06:b5:10:xx:xx:xxである
// eth0のMACアドレスが06:b5:10:xx:xx:xxであることを確認
// IPv4のアドレスが割り振られていることを確認
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc fq_codel state UP group default qlen 1000
    link/ether 06:b5:10:xx:xx:xx brd ff:ff:ff:ff:ff:ff       // <============ 50-cloud-init.yamlのeth0のMACアドレスと同じです
    inet 10.3.0.183/24 brd 10.3.0.255 scope global dynamic eth0

ip aから以下のことが分かります。

  • eth0のIPv4のIPアドレスが10.3.0.183/24

デフォルトゲートウェイ

ルートテーブルを確認します。

$ ip route
// または route -n
default via 10.3.0.1 dev eth0 proto dhcp src 10.3.0.183 metric 100
10.3.0.0/24 dev eth0 proto kernel scope link src 10.3.0.183

ルートテーブルから以下のことが分かります。

  • ゲートウェイが10.3.0.1

DNSサーバ(フルサービスリゾルバ)

フルサービスリゾルバは、/etc/resolv.confで設定します。

$ less /etc/resolv.conf
nameserver 127.0.0.53
options edns0 trust-ad
search ap-northeast-1.compute.internal

フルサービスリゾルバとしてsystemd-resolved.serviceが提供している127.0.0.53を使用しています。 nslookupでもフルサービスリゾルバとして127.0.0.53を使用していることが分かります。

$ nslookup esample.com
nslookup example.org
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
Name:   example.org
Address: 93.184.216.34
Name:   example.org
Address: 2606:2800:220:1:248:1893:25c8:1946

しかしVPCのフルサービスリゾルバは、VPCのネットワークアドレスに2を加えたアドレスです(10.3.0.0/16の場合は10.3.0.2)です。

resolvectl statussystemd-resolved.serviceが最終的に参照するフルサービスリゾルバを確認します。
10.3.0.2が参照されています。

$ sudo resolvectl status
Global
       LLMNR setting: no
...
  Current DNS Server: 10.3.0.2
         DNS Servers: 10.3.0.2
          DNS Domain: ap-northeast-1.compute.internal