LinuxサーバーとWindowsクライアントでOpenVPNを指示に従って here に設定しました。クライアントはサーバーにアクセスできますが、LANにそれ以上アクセスできません。
サーバーは10.23.29.64/24、OpenVPNサブネットは10.23.30.0/24、クライアントは10.0.0.71/24なので、重複はありません。
私のサーバー設定ファイルは:
port 53
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 10.23.30.0 255.255.255.0
ifconfig-pool-persist ipp.txt
Push "route 10.23.29.0 255.255.255.0"
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3
私のクライアント構成は
client
dev tun
proto udp
remote HOSTNAME_REMOVED 53
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
ns-cert-type server
comp-lzo
verb 3
接続すると、クライアントは10.23.30.6/30を取得し、4つのルートが追加されます。
10.23.29.0 255.255.255.0 10.23.30.5 10.23.30.6 1
10.23.30.1 255.255.255.255 10.23.30.5 10.23.30.6 1
10.23.30.4 255.255.255.252 10.23.30.6 10.23.30.6 30
10.23.30.6 255.255.255.255 127.0.0.1 127.0.0.1 30
私のサーバーは10.23.30.1/32を取得します(これを変更IS THE PROBLEM?)
私のクライアントは10.23.30.1と10.23.29.64でサーバーにpingできますが、これ以上は取得できません。このクライアントが私のLANの残りの部分にアクセスできるようにするには、他に何が必要ですか?
更新:
ルーターに静的ルートを追加したので、ルーティングテーブルは次のようになります。
{admin}=>ip rtlist
Label Destination Gateway Interface Mtc Admin Oper
10.0.0.138/32 127.0.0.1 loop 0 UP [UP]
10.0.0.255/32 127.0.0.1 loop 0 UP [UP]
10.23.29.254/32 127.0.0.1 loop 0 UP [UP]
10.23.29.255/32 127.0.0.1 loop 0 UP [UP]
87.115.131.206/32 127.0.0.1 loop 0 UP [UP]
127.0.0.1/32 127.0.0.1 loop 0 UP [UP]
255.255.255.255/32 127.0.0.1 loop 0 UP [UP]
195.166.128.189/32 87.115.131.206 Internet 0 UP UP
212.159.6.9/32 Internet 10 UP UP
212.159.6.10/32 Internet 10 UP UP
10.0.0.0/24 10.0.0.138 LocalNetwork 0 UP [UP]
10.23.29.0/24 10.23.29.254 LocalNetwork 0 UP [UP]
10.23.30.0/24 10.23.29.10 LocalNetwork 0 UP [UP]
0.0.0.0/0 Internet 10 UP UP
しかし、10.23.29.10から10.23.30.1にtracerouteを実行すると、次のようになります。
traceroute to 10.23.30.1 (10.23.30.1), 30 Hops max, 60 byte packets
1 dsldevice.lan (10.23.29.254) 2073.983 ms 2073.481 ms 74.545 ms
2 * * *
そしてあきらめるまですべての星。これは、ルーティングテーブルがそうであるように言うように、tracerouteパケットが10.23.29.10に転送されないことを私に信じさせます。
ようやく問題がわかりました。すべてのOpenVPN接続に新しいサブネットを作成するOpenVPNの「ルーティング」オプションを使用しています。私のクライアントはこのサブネットからIPアドレスを割り当てられていたので、私のサーバーも割り当てられていたため、このネットワークを介して互いに通信できました。サーバーでIPv4転送を有効にすると、LANにパケットを送信することもでき、LANのIPアドレスを介してサーバーと通信できることは明らかでした。
クライアントがLAN上の他のコンピューターと通信しようとしたとき、クライアントからのパケットがLANホストに到達していました(これは確認できませんでしたが、そうであると確信しています)が、これらのパケットの送信元アドレスはOpenVPNネットワークからのアドレス。 LANホストは、これがLAN上にないことを認識しており、その場合、ホストがデフォルトゲートウェイ(ルーター)に送信することだけを知っていました。プライベートIP範囲にパケットを送信してインターネットに送信するのは無意味なので、私はそれで何かをしたのではないかと思います。
解決策は、すべてのLANホストに静的ルートを追加するか、「ルーティング」ではなくOpenVPNの「ブリッジ」オプションを使用することです。私はまだこれを行っていませんが、これが正しい方法であると確信しています。
すべてのLANホストに静的ルートを追加する必要はないと思います。そのLAN上のゲートウェイに静的ルートを追加して、すべてのopenvpnネットワークアドレスがopenvpnサーバーの「lan-ipアドレス」を指すようにするだけです。
私の設定で同じ問題が、今は修正されました:
OpenVPN Road warrior設定を使用しているため、パケットはルーティングされたがNAT処理されたことが記録されます。アウトバウンドNATオプションを構成して、LANインターフェース上のOpenVPN仮想IPアドレスからのソースポートをWAN NATアドレス。
PfSenseでは、自動アウトバウンドNATルールから手動アウトバウンドNATルールへのルールを無効にして、OpenVPN内部ネットワーク用の新しいルールを追加するだけです。
ここに同じ問題がありました(このガイドを使用して設定: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-14- 04 )
静的ルートに関するAnonyの答えが鍵でした。セットアップの下のdd-wrt->高度なルーティング:
どこ
これは私にとってはトリックでした!