EC2をProxyサーバにしてIPv4オンリーの自宅ネットワークをIPv6対応にしてみた

IPv6/IPv4デュアルスタックのEC2をProxyサーバーにしてIPv4オンリーの自宅ネットワークをIPv6対応にしてみました。
2022.04.01

こんにちは。
コンサルティング部 繁松です。

以前IPv6に関するブログを書いたのですが、その際に自宅のネットワークがIPv4にしか対応しておらず、IPv6のリソースへの接続が出来ないことに気が付きました。

そこで、IPv6/IPv4デュアルスタックのEC2インスタンスをProxyサーバにしてIPv6のリソースに接続してみたので、その手順を記事にしました。
 

構成図

Proxyサーバに接続し確認

IPv6 オンリーのEC2にSSH接続

IPv6に対応しているか確認

自宅のネットワークがIPv6に対応しているか確認します。
確認にはこちらのWebサイトを使用させて頂きました。
あなたの IPv6 接続性をテストしましょう。
IPv6には対応していないことがわかります。

対応していない為以下のIPv6のGoogleのページも開けません。
https://ipv6.google.com/

前提

  • VPCとSubnetはIPv4/IPv6デュアルスタックのものを準備します
  • サブネットはIPv4とIPv6のルートのあるパブリックサブネットを準備します
  • IPv4/IPv6デュアルスタックのEC2(Amazon Linux2)を準備します

手順

AWS環境確認

1. VPC,Subnetの確認

IPv4/IPv6デュアルスタックになっていることを確認します。

ルートテーブルにIPv4とIPv6のルートがあることを確認します。

2. EC2の確認

IPv4/IPv6デュアルスタックになっていることを確認します。

Proxyサーバ設定

EC2に接続しSquidのインストールと設定を進めます。

1. Squidインストール

sudo yum -y install squid

2. Squid設定

sudo vim /etc/squid/squid.conf

以下の内容を追記します。

acl SSL_ports port 22  
acl Safe_ports port 22          # ssh
# Squidを使用する自宅のIPアドレス  
acl myacl src 自宅のIPアドレス/32  
# 自宅PCのアクセス許可  
http_access allow myacl

14行目あたり

acl SSL_ports port 443
acl SSL_ports port 22
acl Safe_ports port 22          # ssh
acl Safe_ports port 80          # http

50行目あたり

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#

# Squidを使用する自宅のIPアドレス
acl myacl src 自宅のIPアドレス/32
# 自宅PCのアクセス許可
http_access allow myacl

# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks

3. 再起動

sudo systemctl restart squid

4. セキュリティグループの変更

EC2のセキュリティグループのインバウンドルールに以下の内容を追加します。
ポート範囲:3128
ソース:自宅のIP

Proxyサーバに接続し確認

ブラウザの拡張機能 FoxyProxyを使って確認してみます。

Proxy IP address or DNS name :EC2のIPv4アドレス
Port :3128

あなたの IPv6 接続性をテストしましょう。
IPv6に対応したことがわかります。

対応した為以下のIPv6のGoogleのページが開けるようになりました。
https://ipv6.google.com/

IPv6オンリーのEC2にSSH接続

Puttyを使ってProxyサーバ経由でIPv6オンリーのEC2にSSH接続をしてみます。

1. セキュリティグループの変更

接続先のEC2(IPv6オンリー)のセキュリティグループ インバウンドルールに、接続元のEC2(Proxyサーバ)のIPv6アドレスを許可する以下の設定を追加します。
タイプ:SSH
ソース:接続元のEC2(Proxyサーバ)のIPv6アドレス  

2. puttyを使って接続

カテゴリ→接続→プロキシ
プロキシのタイプ:HTTP
プロキシのホスト名:Proxy用EC2のIPv4アドレス
ポート:3128

カテゴリ→セッション
ホスト名:[接続先のIPv6アドレス]
IPv6アドレスは角括弧([])で囲みます。

キーファイル等を指定し接続します。
IPv6オンリーのEC2に接続できました。
同じVPC内でないIPv6オンリーのEC2にも接続可能です。

さいごに

IPv4しか対応していなかった自宅のネットワークからIPv6のリソースとの通信が出来ないかと思いやってみました。
今後IPv6が普及した際にはもしかしたら必要になるかもしれません。

以上、EC2をProxyサーバにしてIPv4オンリーの自宅ネットワークをIPv6対応にしてみたでした。 なにかのお役に立つと幸いです。

参考