上記のネットワーク図では、私の目標は192.168.20.20
システムAからpingを送信することです。ルータを設定したくありません。
これを達成するために
すべてのトラフィックは
192.168.20.0/24
最初に次に転送する必要があります。10.200.8.14
その後、システムBにはパスが必要です。
192.168.20.20.
192.168.20.0/24
ネットワークに到達するためのデフォルトゲートウェイが次のようにシステムAにパスを追加する方法はありますか?これらの10.200.8.14.
パスが追加されていても、接続には10.200.8.14
まだデフォルトゲートウェイが必要です。10.201.11.1.
これを達成する方法を提案してください。
答え1
最初に登場するのはSSHベースのVPNです。 PermitTunnelを表示してman sshd_config
検索します。
PermitTunnel
まず(両方のホスト)有効になっていてPermitRootLogin
(systemBで)再ロードされていることを確認してくださいyes
。without-password
/etc/ssh/sshd_config
sshd
次に、次のコマンドを使用してホスト10.200.8.14にログインします。
# ssh -NTCf -w 0:0 10.200.8.14
次のステップは、プライベートVPNサブネット(この例では192.168.10.0)でインターフェイスを設定することです。
systemA # ip link set tun0 up
systemA # ip addr add 192.168.10.10/32 peer 192.168.10.20 dev tun0
systemB # ip link set tun0 up
systemB # ip addr add 192.168.10.20/32 peer 192.168.10.10 dev tun0
次に、システムBの後ろにネットワークへのパスを追加します。
systemA # ip route add 192.168.20.0/24 via 192.168.10.10
systemA # ping 192.168.20.20
もう一つの方法sshuttle
はsshuttle
。次に、次を実行します。
systemA # /usr/sbin/sshuttle -D --pidfile /tmp/sshuttle.pid --dns -r user@systemB 192.168.20.0/24
トラフィックをルーティングするために使用されるため、sudo
パスワードが必要です。以下を使用して、パスワードを要求しないようにファイルを変更iptables
できます。/etc/sudoers
visudo
systemA # visudo
# add:
myuser ALL=(ALL) NOPASSWD: /sbin/iptables, /usr/bin/python
いくつかの興味深い参考資料:
https://help.ubuntu.com/community/SSH_VPN
http://sleepyhead.de/howto/?href=vpn
https://github.com/apenwarr/sshuttle
答え2
SSH経由のVPNステップに従いました。しかし、問題はarpの解析で発生します。
192.168.10.0/24 パスを追加した後。
System C : route add -net 192.168.10.0/24 p255p2
arp 解決のために、次のコマンドを実行します。
System B : sudo arp -sD 192.168.10.10 eth1 pub
このステップの後、Ping は機能しました。
これらのステップが必要ですか?