
IPv6テストベッドをセットアップしようとしています。非常に基本的なもので、LAN経由で互いに通信する2台のUbuntu Linuxボックスだけです。両方のボックスはIPv4接続が機能していますが、IPv6経由でSSHを使用することはできませんでした。方法両方のマシンにサイトローカル範囲 (fec0::) のアドレスを指定しました。最初のボックスで、次を実行しました。
sudo ifconfig eth0 inet6 add fec0::1/64
そして2番目に、私は実行しました:
sudo ifconfig eth0 inet6 add fec0::2/64
次に、ルーティング テーブルをチェックしたところ、それぞれに eth0 インターフェイスを経由してそのネットワークへのルートがあるようです。次に、/etc/hosts
2 番目のボックスから 1 番目のボックスを指すエントリを追加しました。しかし、2 番目のボックスから 1 番目のボックスに SSH しようとすると、SSH クライアントがハングします。エラーなどはありません。tcpdump
クライアントで実行すると、IPv6 トラフィックはまったく表示されません。何が起こっているのでしょうか。
サーバー マシンからそのアドレスに SSH で接続するとip6-localhost
正常に動作するので、SSH の問題ではないようです。ご協力いただければ幸いです。
答え1
まず、ufw
インストールしている場合は、オプションが設定されている/etc/default/ufw
かどうかを確認しますIPV6=no
。このオプションを設定する必要があります。yes
そうしないと、ufw
デフォルトですべての IPv6 トラフィックがファイアウォールで保護されます。
これを実行した後、IPv6 を学習する際に知っておくべき基本的な診断をいくつか試してください。
最初にすべきことは、ndisc6
パッケージをインストールして、近隣要請を実行することです。(これは IPv4 で ARP 要求を実行するのと同じです)
sudo apt-get install ndisc6
注意: これを行うにはリポジトリを有効にする必要がありますuniverse
。
次に、最初のマシンから次の操作を実行します。
ndisc6 fec0::2 eth0
これにより、 の MAC アドレスを確実に見つけることができますfec0::2
。
(ndisc6
パッケージには、ネットワーク上に IPv6 ルーターがある場合に役立つ という便利なユーティリティも付属しておりrdisc6
、ルーターが正しく応答しているかどうかを確認します。)
近隣探索が機能することを確認したら、次に を試してくださいping6 fec0::2
。
まだ問題が解決しない場合は、次の他の診断情報を投稿してください。
/sbin/ip -6 addr
/sbin/ip -6 neigh
/sbin/ip -6 route
sudo /sbin/ip6tables -L
答え2
本当に役立つためには、もう少し情報が必要です。まず、2 つのホスト間で IPv6 経由で ping を正常に実行できますか? ping を実行できない場合は、さらに基本的な問題を解決する必要があります...
あなたができるping (基本的な接続は機能します) を実行し、netstat (またはローカル ボックスから fec0::N アドレスに SSH 接続する) で再度確認して、SSH デーモンが使用しようとしている IPv6 アドレスをリッスンしていることを確認します。リッスンする新しい v6 アドレスがあることを認識できるように、sshd.conf ファイルを編集するか、sshd を再起動する必要がある可能性があります。