複数の AWS VPC サブネットを使用した OpenVPN のセットアップ

複数の AWS VPC サブネットを使用した OpenVPN のセットアップ

3 つのサブネットを持つ AWS VPC 内の Ubuntu 12.04 で OpenVPN サーバーを実行しています。クライアントに接続でき、問題なくサーバー (10.8.0.1) に ping できますが、クライアントから VPC 内の他のマシンにアクセスできません。

背景情報:

サーバー自体から ping を実行できます。

クライアントからサーバーにpingを実行できます。

サーバーからクライアントに ping できません。

サーバーから VPC 内のマシンに ping を実行できます。

クライアントから VPC 内のマシン (サーバー以外) に ping できません。

サーバー上で IPV4 転送を有効にしました。

ソース/宛先チェックを無効にしました。

10.8.0.0/16 トラフィックを OpenVPN インスタンスにルーティングするように、VPC にルート テーブルを設定しました。

VPC サブネット:

10.0.0.0/24
10.0.1.0/24
10.0.2.0/24

OpenVPN サーバーは 10.0.2.0/24 で実行されており、そこから他のサブネット上の任意のサーバーに ping を実行できますが、サブネット上のどのサーバーにもアクセスできないのはクライアントです。

サーバー構成:

port 80
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh1024.pem
server 10.8.0.0 255.255.0.0
ifconfig-pool-persist ipp.txt
push "route 10.0.0.0 255.0.0.0"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
tls-auth ta.key 0 # This file is secret
comp-lzo
max-clients 100
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log         openvpn.log
verb 6
mute 20

クライアント設定:

client
dev tun
proto tcp
remote xx.xx.xxx.xxx 80
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert olo-imac.crt
key olo-imac.key
tls-auth ta.key 1
comp-lzo
verb 3

サーバールート:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.0.2.1        0.0.0.0         UG    100    0        0 eth0
10.0.2.0        *               255.255.255.0   U     0      0        0 eth0
10.8.0.0        10.8.0.2        255.255.0.0     UG    0      0        0 tun0
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0

クライアントルート:

Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.36.1   192.168.36.120     10
         10.0.0.0        255.0.0.0         10.8.0.5         10.8.0.6     30
         10.8.0.1  255.255.255.255         10.8.0.5         10.8.0.6     30
         10.8.0.4  255.255.255.252         On-link          10.8.0.6    286
         10.8.0.6  255.255.255.255         On-link          10.8.0.6    286
         10.8.0.7  255.255.255.255         On-link          10.8.0.6    286
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
     192.168.36.0    255.255.255.0         On-link    192.168.36.120    266
   192.168.36.120  255.255.255.255         On-link    192.168.36.120    266
   192.168.36.255  255.255.255.255         On-link    192.168.36.120    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link    192.168.36.120    266
        224.0.0.0        240.0.0.0         On-link          10.8.0.6    286
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link    192.168.36.120    266
  255.255.255.255  255.255.255.255         On-link          10.8.0.6    286

答え1

上記の CIGuy のコメントに応えて。

OpenVPN サーバーで tcpdump を実行します。パケットが実際にサーバーからリモート ネットワーク上の他のホストに転送されているかどうかを確認できるはずです。

何かのようなもの:

tcpdump -i any -v host <ip> 

pingしようとしているIPはどこでしょうか。また、パケットキャプチャをファイルに書き込んで、Wiresharkで後で分析することもできます。

-s0 -w somefile.pcap

tcpdump のバージョンによっては、chroot を実行するものがあることに注意してください。そのため、somefile.pcap が期待どおりの場所に表示されない場合は、/var/lib/tcpdump/ を確認してください。

関連情報