WindowsでNATインスタンスを構成してみた
VPC内でNATインスタンスを構成する方法として、標準のウィザードによりAmazon Linux AMIを使う方法やVyattaを使って構成する方法(by @oko_changさん)があるが、ENIの登場によりWindowsインスタンスでも出来るようになった*1ので、実際にやってみた。
Windowsインスタンスの準備
起動時にいきなりENIを追加して2枚刺しにするのはお勧めしない(ネットワークカードの認識順によっては、正常に起動しない可能性がある)。
- まずPublic Subnetにだけ接続している状態で一度起動して、ElasticIPアドレスのRDP経由でログインする
- 次にPublic側ネットワークインターフェースのプロパティで自動メトリックのチェックボックスを外し、メトリックを1にしておく
- Private SubnetのENIを追加する
- インスタンスにアタッチする
また、Private Subnet用のENIに対して以下の作業を行う。
中→外へのNAT機能を有効にする
- RRASの役割を追加
- ルーティングとリモート アクセスの構成と有効化
- NATの設定(パブリックインターフェースの選択で、Public Subnetに接続されているインターフェースを指定する)
以上で、中から外へのNATは有効になっているはずなので、Private Subnetのインスタンスから確認する。
[ec2-user@ip-10-0-1-123 ~]$ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=2.88 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=2.75 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=2.72 ms 64 bytes from 8.8.8.8: icmp_seq=4 ttl=57 time=2.83 ms ^C --- 8.8.8.8 ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3310ms rtt min/avg/max/mdev = 2.723/2.799/2.888/0.091 ms [ec2-user@ip-10-0-1-123 ~]$ traceroute -n 8.8.8.8 traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets 1 10.0.1.4 0.391 ms 0.251 ms 0.459 ms 2 175.41.192.56 1.039 ms 1.015 ms 0.992 ms 3 27.0.0.146 38.674 ms 38.656 ms 38.636 ms 4 27.0.0.134 2.033 ms 2.136 ms 2.104 ms 5 203.190.230.31 3.160 ms 3.288 ms 3.270 ms 6 72.14.239.202 2.509 ms 2.358 ms 72.14.239.48 2.164 ms 7 209.85.243.59 3.514 ms 3.296 ms 3.280 ms 8 209.85.241.139 3.801 ms 3.763 ms 3.880 ms 9 8.8.8.8 2.672 ms 2.540 ms 2.545 ms
NAT用のインスタンス 10.0.1.4 を経由して外に通信しているのが分かる。
Private Subnetのサービスを公開する
Private Subnetのサービスを、NATインスタンスを通じて公開してみます(serverインスタンスのsshポート)。
- スタートメニューの管理ツール→ルーティングとリモートアクセスを選択
- ローカル→IPv4→NATのローカルエリア接続をダブルクリック
- サービスとポートタブから、追加
- 外部から疎通確認
~ $ ssh ec2-user@[NATインスタンスのElasticIP] Last login: Thu Dec 29 12:32:31 2011 from xxx.yyy.zzz __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| See /usr/share/doc/system-release/ for latest release notes. There are 19 security update(s) out of 27 total update(s) available