#
ドキュメント

Document

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

ルーター

ルーティングテーブル

コマンド

  • route:「show / manipulate the IP routing table」($ man route
    • -e:「-e use netstat(8)-format for displaying the routing table. -ee will generate a very long line with all parameters from the routing table.」($ man route
    • -n:「show numerical addresses instead of trying to determine symbolic host names.」
  • netstat -r:「Display the kernel routing tables. See the description in route(8) for details. netstat -r and route -e produce the same output.」($man netstat
  • ip route:ip-route - 「routing table management」($man ip route

Amazon VPCを使ってホストのルーティングテーブルを確認

Amazon VPCのルーターアドレス

各サブネット CIDR ブロックの最初の 4 つの IP アドレスと最後の IP アドレスは使用できず、EC2 インス タンスなどのリソースに割り当てることができません。例えば、CIDR ブロック 10.0.0.0/24 を持つサ ブネットの場合、次の 5 つの IP アドレスが予約されます。
• 10.0.0.0.: ネットワークアドレスです。
• 10.0.0.1: AWS が VPC ルーター用に予約しています。
• 10.0.0.2: AWS が予約しています。DNS サーバーの IP アドレスは、VPC ネットワーク範囲のベースに プラス 2 したものです。

https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-ug.pdf

EC2インスタンスのルーティングテーブル

ルーティングテーブルも参照。

サブネット10.2.0.0/24のEC2インスタンス(例10.2.0.50/24)のルーティングテーブルを確認する

route -en
// or
// netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.2.0.1        0.0.0.0         UG        0 0          0 eth0
10.2.0.0        0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.169.254 0.0.0.0         255.255.255.255 UH        0 0          0 eth0
  • Destination(宛先、送信先)に0.0.0.0が指定されたルートをデフォルトルートと呼ぶ
    • デフォルトルートのGatewayは10.2.0.1(前述したAmazon VPCのルーターアドレスを参照)
  • Gatewayに自分自身を表す0.0.0.0を指定した場合はルーティングは無効になる(よってGatewayを使用しない)
    • 同一サブネット(セグメント)のホスト情報を自分が知っているために直接通信ができるため
  • Destinationの169.254.169.254はメタサーバと決まっているのでGatewayは0.0.0.0(無効)
    • 169.254.169.254はインスタンスメタデータを返す
  • HはHost、GはGateway、なしはネットワークを表す

最初の列は宛先ネットワーク、2 番目の列はパケットを転送するルーターを示しています。U フラグは送信経路が up 状態であること、G フラグは送信経路がゲートウェイへのものであることを示します。H フラグは、宛先がネットワークではなく、完全指定のホストアドレスであることを示します。

-- https://docs.oracle.com/cd/E19620-01/805-5857/troubleshoot6-19973/index.html

169.254.169.254

$ curl http://169.254.169.254/latest/meta-data/
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
events/
hibernation/
hostname
identity-credentials/
instance-action
instance-id
instance-life-cycle
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups

グローバルIPアドレスを確認。

curl http://169.254.169.254/latest/meta-data/public-ipv4
203.0.113.0

EC2はifconfigip address showで確認できるアドレスはプライベートIPアドレス。
グローバルIPアドレスを確認する場合は上記のようにメタサーバを使用する。

Ref.

第13回 IPとルーティング