OpenVPN クライアントの背後にあるネットワーク

OpenVPN クライアントの背後にあるネットワーク

こんにちは。OpenVPN ネットワークに問題があります。基本的な考え方は、図のとおり、リモート OpenVPN サーバー、2 つのクライアント、MyPC、および Client_1 と Client_2 を含む独自のネットワークを持つ OpenWRT クライアントです。MyPC から Client_1 にアクセスでき、その逆も可能である必要があります。ルーティングまたは転送の問題のようです。


|-----------------------|           |-----------------------------------|
|Ubuntu 14.04           |           |OpenWRT router                     |
|OpenVPN Server         |  <----->  |Acts as OpenVPN client             |
|WAN 192.168.1.197      |           |LAN: 192.168.0.1, WAN:192.168.1.1  |
|OpenVPN IP: 172.20.2.1 |           |OpenVPN IP:172.20.1.100            |
|-----------------------|           |-----------------------------------|
            ^                               ^                   ^
            |                               |                   |
            |                               |                   |
            v                               v                   v
|-----------------------|           |-------------------| |------------------|
|MyPC, OpenVPN client   |   (1)     |Network client_1   | |Network client_2  |
|LAN: 192.168.1.205     | <-------> |LAN: 192.168.0.213 | |LAN: 192.168.1.101|
|OpenVPN IP:172.20.2.101|           |-------------------| |------------------|
|-----------------------|

pingの結果

MyPC に Ping -> OpenVPN サーバー OK
MyPC に Ping -> OpenWRT OK
MyPC に Ping -> client_1 192.168.1.205 からの応答: 宛先ホストに到達できません。

OpenVPN サーバーに Ping -> MyPC OK
OpenVPN サーバーに Ping -> OpenWRT OK
OpenVPN サーバーに Ping -> client_1 192.168.1.197 から icmp_seq=1 宛先ホストに到達できません

OpenWRT に Ping -> OpenVPN サーバー OK
OpenWRT に Ping -> MyPC OK
OpenWRT に Ping -> client_1 OK

Ping client_1 -> OpenVPN サーバー 192.168.0.1 icmp_seq=1 宛先ポートに到達できません
Ping client_1 -> MyPC From 192.168.0.1 icmp_seq=1 宛先ポートに到達できません
client_1 に Ping -> OpenWRT OK

OpenVPN 構成、サーバーおよびクライアント

======OpenVPN configuration ===================================================================
port 1198
proto udp
dev tap2
ca keys/remote_management/ca.crt
cert keys/remote_management/remote_man.crt
key keys/remote_management/remote_man.key
dh keys/remote_management/dh4096.pem
server-bridge 172.20.2.1 255.255.255.0 172.20.2.100 172.20.2.253 #@@ br1 eth2
crl-verify keys/remote_management/crl.pem
ifconfig-pool-persist servers/remote_man/logs/ipp.txt
tls-auth servers/remote_man/ta.key 0
cipher AES-128-CBC
user nobody
group nogroup
status servers/remote_man/logs/openvpn-status.log
log-append servers/remote_man/logs/openvpn.log
verb 2
mute 20
max-clients 10
management 127.0.0.1 7507
keepalive 10 120
client-config-dir /etc/openvpn/servers/remote_man/ccd
tls-server
client-to-client
comp-lzo
persist-key
persist-tun
ccd-exclusive
push "route 172.20.2.0 255.255.255.0"
route 192.168.0.0 255.255.255.0

======OpenVPN client MyPC configuration ======================================================
client
proto udp
dev tap
ca ca.crt
dh dh4096.pem
cert ***.crt
key ***.key
remote *** 1198
tls-auth ta.key 1
cipher AES-128-CBC
verb 2
mute 20
keepalive 10 120
comp-lzo
persist-key
persist-tun
float
resolv-retry infinite
nobind

======OpenVPN client OpenWRT configuration ===================================================
client
proto udp
dev tap
ca /etc/openvpn/sol102/ca.crt
dh /etc/openvpn/sol102/dh4096.pem
cert /etc/openvpn/sol102/sol102.crt
key /etc/openvpn/sol102/sol102.key
remote *** 1198
tls-auth /etc/openvpn/sol102/ta.key 1
cipher AES-128-CBC
verb 2
mute 20
keepalive 10 120
comp-lzo
persist-key
persist-tun
float
resolv-retry infinite
nobind

OpenWRT 構成

======OpenWRT ネットワーク構成================================================================
設定インターフェース「ループバック」
        オプション ifname 'lo'
        オプション プロトコル 'static'
        オプション ipaddr '127.0.0.1'
        オプションネットマスク '255.0.0.0'

config グローバル 'globals'
        オプション ula_prefix 'fdf2:d4ae:ecd5::/48'

設定インターフェース 'lan'
        オプション ifname 'eth0.1'
        オプション force_link '1'
        オプションタイプ「ブリッジ」
        オプション プロトコル 'static'
        オプションネットマスク '255.255.255.0'
        オプション ip6assign '60'
        オプション ipaddr '192.168.0.1'

設定インターフェース 'wan'
        オプション ifname 'eth0.2'
        オプション プロトコル 'dhcp'

設定インターフェース 'wan6'
        オプション ifname '@wan'
        オプション プロトコル 'dhcpv6'

設定スイッチ
        オプション名 'switch0'
        オプションリセット '1'
        オプション enable_vlan '1'

スイッチVLANの設定
        オプションデバイス 'switch0'
        オプション VLAN '1'
        オプションポート '1 2 3 4 5t'

スイッチVLANの設定
        オプションデバイス 'switch0'
        オプション VLAN '2'
        オプションポート '0 5t'

設定インターフェース 'OVPN'
        オプション プロトコル 'none'
        オプション委任 '0'
        オプション ifname 'tap0'

======OpenWRT ファイアウォール設定=================================================================
設定のデフォルト
        オプション syn_flood '1'
        オプション入力「承認」
        オプション出力 'ACCEPT'
        オプション転送「拒否」

設定ゾーン
        オプション名 'lan'
        オプション入力「承認」
        オプション出力 'ACCEPT'
        オプション転送「拒否」
        オプションネットワーク 'lan'

設定ゾーン
        オプション名 'wan'
        オプション入力「拒否」
        オプション出力 'ACCEPT'
        オプション転送「拒否」
        オプションマスク '1'
        オプションネットワーク 'wan wan6'

設定ルール
        オプション名 'Allow-DHCP-Renew'
        オプション src 'wan'
        オプション プロトコル 'udp'
        オプション dest_port '68'
        オプションターゲット 'ACCEPT'
        オプション ファミリ 'ipv4'

設定ルール
        オプション名 'Allow-Ping'
        オプション src 'wan'
        オプション プロトコル 'icmp'
        オプション icmp_type 'エコー要求'
        オプション ファミリ 'ipv4'
        オプションターゲット 'ACCEPT'

設定ルール
        オプション名 'Allow-DHCPv6'
        オプション src 'wan'
        オプション プロトコル 'udp'
        オプション src_ip 'fe80::/10'
        オプション src_port '547'
        オプション dest_ip 'fe80::/10'
        オプション dest_port '546'
        オプション ファミリ 'ipv6'
        オプションターゲット 'ACCEPT'

設定ルール
        オプション名 'Allow-ICMPv6-Input'
        オプション src 'wan'
        オプション プロトコル 'icmp'
        icmp_type 'エコー要求' をリストする
        icmp_type 'エコー応答' をリストする
        icmp_type 'destination-unreachable' をリストする
        icmp_type 'パケットが大きすぎる' をリストする
        icmp_type 'time-exceeded' をリストする
        icmp_type 'bad-header' をリストする
        icmp_type '不明なヘッダータイプ' をリストする
        icmp_type 'ルーター要請' をリストする
        icmp_type '近隣要請' をリストする
        icmp_type 'ルーター広告' をリストする
        icmp_type '近隣広告' をリストする
        オプション制限 '1000/秒'
        オプション ファミリ 'ipv6'
        オプションターゲット 'ACCEPT'

設定ルール
        オプション名 'Allow-ICMPv6-Forward'
        オプション src 'wan'
        オプション宛先 '*'
        オプション プロトコル 'icmp'
        icmp_type 'エコー要求' をリストする
        icmp_type 'エコー応答' をリストする
        icmp_type 'destination-unreachable' をリストする
        icmp_type 'パケットが大きすぎる' をリストする
        icmp_type 'time-exceeded' をリストする
        icmp_type 'bad-header' をリストする
        icmp_type '不明なヘッダータイプ' をリストする
        オプション制限 '1000/秒'
        オプション ファミリ 'ipv6'
        オプションターゲット 'ACCEPT'

設定インクルード
        オプションパス '/etc/firewall.user'

設定ゾーン
        オプション出力 'ACCEPT'
        オプション名 'OVPN_FW'
        オプションマスク '1'
        オプション入力「承認」
        オプション転送「拒否」
        オプションネットワーク「OVPN」
        オプション mtu_fix '1'

設定転送
        オプション宛先 'OVPN_FW'
        オプション src 'lan'

設定転送
        オプション宛先 'wan'
        オプション src 'lan'

設定転送
        オプション宛先 'lan'
        オプションソース 'OVPN_FW'

tcpdumpをいくつか持っています

======OpenVPN server tcpdump icmp filtered ====================================================  
12:46:11.654580 IP 172.20.2.101 > 192.168.0.213: ICMP echo request, id 1, seq 83, length 40
12:46:11.654580 IP 172.20.2.101 > 192.168.0.213: ICMP echo request, id 1, seq 83, length 40
12:46:14.652217 IP 172.20.2.1 > 172.20.2.101: ICMP host 192.168.0.213 unreachable, length 68
12:46:14.652244 IP 172.20.2.1 > 172.20.2.101: ICMP host 192.168.0.213 unreachable, length 68
12:46:14.657835 IP 172.20.2.101 > 192.168.0.213: ICMP echo request, id 1, seq 84, length 40
12:46:14.657835 IP 172.20.2.101 > 192.168.0.213: ICMP echo request, id 1, seq 84, length 40
12:46:17.656214 IP 172.20.2.1 > 172.20.2.101: ICMP host 192.168.0.213 unreachable, length 68
12:46:17.656241 IP 172.20.2.1 > 172.20.2.101: ICMP host 192.168.0.213 unreachable, length 68
12:46:17.661768 IP 172.20.2.101 > 192.168.0.213: ICMP echo request, id 1, seq 85, length 40
12:46:17.661768 IP 172.20.2.101 > 192.168.0.213: ICMP echo request, id 1, seq 85, length 40
12:46:20.660206 IP 172.20.2.1 > 172.20.2.101: ICMP host 192.168.0.213 unreachable, length 68
12:46:20.660233 IP 172.20.2.1 > 172.20.2.101: ICMP host 192.168.0.213 unreachable, length 68
12:46:20.665362 IP 172.20.2.101 > 192.168.0.213: ICMP echo request, id 1, seq 86, length 40
12:46:20.665362 IP 172.20.2.101 > 192.168.0.213: ICMP echo request, id 1, seq 86, length 40
12:46:23.666797 IP 172.20.2.1 > 172.20.2.101: ICMP host 192.168.0.213 unreachable, length 68
12:46:23.666824 IP 172.20.2.1 > 172.20.2.101: ICMP host 192.168.0.213 unreachable, length 68


======OpenWRT client tcpdump icmp filtered ==================================================== 
12:44:17.299404 IP 172.20.2.1 > 172.20.2.100: ICMP redirect 172.20.2.101 to host 172.20.2.101, length 48
12:44:18.461809 IP 172.20.2.1 > 172.20.2.100: ICMP redirect 172.20.2.101 to host 172.20.2.101, length 196
12:44:19.464258 IP 172.20.2.1 > 172.20.2.100: ICMP redirect 172.20.2.101 to host 172.20.2.101, length 196
12:44:20.466652 IP 172.20.2.1 > 172.20.2.100: ICMP redirect 172.20.2.101 to host 172.20.2.101, length 196
12:44:20.944332 IP 172.20.2.1 > 172.20.2.100: ICMP redirect 172.20.2.101 to host 172.20.2.101, length 48
12:44:32.311732 IP 172.20.2.1 > 172.20.2.100: ICMP redirect 172.20.2.101 to host 172.20.2.101, length 308

編集: そんなに多くのコードを入れることはできないのでhttp://pastebin.com/ThgqBUgM(リンクは無効です)

答え1

問題はおそらくルーティングです。Ubuntu サーバーは 192.168.0.0/24 - がどこにあるかを知っている必要があります。route add -net 192.168.0.0/24 gw 172.20.1.100これがないと、このルートはデフォルト ゲートウェイと一致し、パケットは間違ったインターフェイスを使用してルーティングされます。パケットを転送するすべてのデバイス (OpenWRT および Ubuntu) は、、およびの3つのネットワークについて知っている必要があります192.168.0.0/24192.168.1.0/24172.20.1.0/24

関連情報