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 で設定します1。
設定ファイルは /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 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 status で systemd-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
  1. netplanはLTSでは18.04以降に導入されました。 ↩