danglingfarpointer's memoization

仕事周りでの気付き、メモ、愚痴などを書いていきます。

AWSのネットワークACL

ちょっとハマったのでメモ。

AWSのネットワークACLは、セキュリティグループとは異なり、ステートレスな記述である。そのため、サブネット内のインスタンスからのアウトバウンドな通信を許可する場合は、戻りの通信、つまりインバウンドな通信もきちんと許可しなければならない。具体的には、Linuxインスタンスである場合は、32768-61000に対するインバウンドトラフィックを許可する必要がある。

Linuxでは32768-61000エフェメラルポートと呼ばれ、クライアントの送信元ポート(サーバーからの受信用ポート)として一時的に使われるものである。だから、これらに対するインバウンドトラフィックを許可しないとサーバーからの戻り値を受け取れない。

Linuxの場合、エフェメラルポートの範囲は/proc/sys/net/ipv4/ip_local_port_rangeに記述されている。なお他のOSではやや範囲が異なるので注意。

一般的なソケットライブラリを扱う限り、エフェメラルポートは通常は意識しなくてよい(はず)。そのためか少しハマってしまったのでした。