私のロボットには、イーサネット経由で直接接続された2台のコンピュータがあります。 「マグニー」と「ジェイソン」として知られています。 Magniはワイヤレスネットワークに接続されています。このワイヤレスネットワークには、Wireguard VPNを介してMagniに接続された3番目のコンピュータ「PC」があります。私のロボットには、イーサネット経由で直接接続された2台のコンピュータがあります。 「マグニー」と「ジェイソン」として知られています。 Magniはワイヤレスネットワークに接続されています。このワイヤレスネットワークには、Wireguard VPNを介してMagniに接続された3番目のコンピュータ「PC」があります。
目標は、システムのすべてのコンポーネントで互いにメッセージを送受信できることです。 Magni - JetsonとMagni - PCのペアは、互いにping、検索、公開できます。私が経験している問題は、私のコンピュータとJetsonの間の通信です。 IP転送をしようとしています。まず、静的192.168.131.1 IPからMagniのVPN 10.0.0.161にjetsonのルートを追加しました。その後、jetsonでMagniのVPNアドレス10.0.0.161をpingできます。
sudo route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.131.1
それから私のコンピュータに次のパスを追加してみました。
sudo route add -net 192.168.131.0 netmask 255.255.255.0 gw 10.0.0.161
その後、私のコンピュータで(ping経由で)jetsonと通信しようとします。ただし、Jetsonと正常に通信できません。現在の設定では、PCでJetsonをpingしようとするとこのエラーが発生します。
PING 192.168.131.2 (10.0.0.66) 56(84) bytes of data.
From 10.0.0.66 icmp_seq=1 Destination Host Unreachable
ping: sendmsg: Required key not available
私も成功せずに別のパスを試しました。ネットワーキングの経験がほとんどないので、誰かがこの問題を解決する方法について正しい方向を伝えることができるかどうか疑問に思います。
PCのカーネルIPルーティングテーブル
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.147.x.x 0.0.0.0 UG 600 0 0 wlp2s0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wg0
10.147.x.x 0.0.0.0 255.255.0.0 U 600 0 0 wlp2s0
169.xxx.x.x 0.0.0.0 255.255.0.0 U 1000 0 0 wlp2s0
192.168.131.0 10.0.0.161 255.255.255.0 UG 0 0 0 wg0
MagniのカーネルIPルーティングテーブル
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.147.x.x 0.0.0.0 UG 600 0 0 wlan0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wg0
10.19.xxx.xxx 10.147.x.x 255.255.255.255 UGH 600 0 0 wlan0
10.147.x.x 0.0.0.0 255.255.0.0 U 600 0 0 wlan0
192.168.131.0 0.0.0.0 255.255.255.0 U 0 0 0 enxb827eb452fa3
JetsonのカーネルIPルーティングテーブル
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 192.168.131.1 255.255.255.0 UG 0 0 0 eth0
169.xxx.x.x 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
192.168.131.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
答え1
ping: sendmsg: Required key not available
WireGuardという意味です。キールーティング質問。 WireGuardでは、キーはパスに関連付けられ、その逆も同様です。以下は標準配線に加えて内部WireGuard配線です。
WireGuard の鍵は、公開鍵をトンネル内で許可されているトンネル IP アドレスのリストに関連付けることで機能する暗号化キーのルーティングという概念です。
AllowedIPs
これは、必須(wg-quick
)/ allowed-ips
(直接wg
コマンド)パラメータを追加しなかったことを意味します。
WGインターフェイスは、パケットを送信しようとすると、宛先IPを公開鍵と照合して、AllowedIPs
この鍵を使用して暗号化できます。 WGインターフェイスはパケットを受信すると、ピアの公開鍵を使用して送信元IPを確認しますAllowedIPs
。この値は双方向で使用されます。
この問題を解決するには、PC の wg-quick 設定で、関連する Magni Peer 公開鍵エントリの下に設定を追加し、トンネルを再起動します。
AllowedIPs = 192.168.131.0/24
実際、この特定のケースではAllowedIPs = 192.168.131.1,192.168.131.2
これで十分です。
すでにPCでMagni(192.168.131.1)をpingできる場合は、Magniがルーターとして設定されていると仮定すると十分です。
あるいは、他のWireGuardピアであるMagniでも同じことができます。 PC と一致するように、PC のピア公開鍵エントリで同じことを行います。
AllowedIPs = 10.0.0.0/24
今回もAllowedIPs = 10.0.0.66
パソコンに接続するだけで十分です。
wg
これは、即時(保存の代わりに)効果なしにコマンドを使用して直接実行できます(たとえば、ukFU7nbX5NoEJTLb5rizqcfB093fv8VfuLFA57q3oG4=
ここではランダムに生成されたピア公開鍵の値を使用します。PCの公開鍵に変更します)。
wg set wg0 peer ukFU7nbX5NoEJTLb5rizqcfB093fv8VfuLFA57q3oG4= allowed-ips 10.0.0.0/24