編集: 私はネットワーキングと新しいものを発見することに関しては初心者です :)
プログラムで操作できる TUN インターフェイスを作成しました。
私はこれをセットアップして実行しました
ifconfig myTun 10.10.1.1/24 up
そして、私が見たところ、それは稼働していてifconfig
、pingもしている10.10.1.1
そして、私が書いた問題で TUN インターフェイスが稼働しているかどうかを 100% 確実に確認するために、次の操作を実行しました。
ping を実行し10.10.1.2
、パケットがプログラムで受信され、それを tun に書き戻して、ループで再度受信しました。
今私はすべてのパケットがからまたはに 10.10.1.x
問題なく TUN に受信され、書き込まれています。
パケットを書くとき外部の任意の宛先IP10.10.1.x
TUN への書き込みは成功しましたが、TUN に応答が受信されませんでした。
検索してたくさんの記事を読んだ後、カーネルによって静かに削除されていることがわかりました。
serverfault.comでTUNインターフェースに関するQ/Aをたくさん読んで、ロジックの重要な部分を見逃していたことに気付きました。ルーティング。
私の最終的な理解は、パケットはLinuxのネットワークスタックによって受信され、正常であるが、カーネルはパケットの宛先が奇妙であるため、パケットをどう処理すればよいかわからないということです。その後、カーネルにルーティングを指定しなければならないことがわかりました。iptables有効にしたいnet.ipv4.ip_forward
が、方法が分からない。
私の最終目標は:
TUNの外部に任意の宛先を持つパケットを送信する場合10.10.1.x
、そのパケットはメインインターフェイス(インターネットにアクセスでき、wlps020f3
)にルーティングされ、そのパケットの結果はTUNインターフェイスに返されます。
設定方法NATでiptables回避策はありますか?
よろしくお願いします