web-dev-qa-db-ja.com

ループバックを使用したGREトンネルオーバーIPsec

本当に GRE overIPsecトンネルを使用してVPN接続を安定させるのに苦労しています。問題は、私が理解していないある種の「ループバック」接続が関係していることです。もちろん、構成も可能です。私が見つけた唯一の助けは、Ciscoルーターの構成に関連しています。

私のネットワークは、DebianLinuxを実行しているルーターと単一のホストで構成されています。私の仕事は、IPsecインフラストラクチャ上にGREトンネルを作成することです。これは、構成が許可されているネットワークと、セットアップ情報(IP)を含むフォームのみを持つリモートネットワークとの間でマルチキャストトラフィックをルーティングすることを特に目的としています。 IPsecのアドレスとフェーズ情報)。今のところ、この単一のホストとリモートネットワーク間の通信を安定させるだけで十分ですが、将来的には、トラフィックがネットワーク上の他のマシンにルーティングされることが望ましいでしょう。

私が言ったように、このGREトンネルには、構成方法がわからない「ループバック」接続が含まれます。私の以前の理解から、ループバック接続は、主にテスト目的で使用される単なるローカル疑似デバイスですが、このコンテキストでは、私が知らないより具体的なものである可能性があります。

racoonipsec-toolsを使用してIPsec通信を適切に安定させることができ、ipを使用したトンネルの作成とインターフェイスへのアドレスの追加に精通していると思います。焦点はGREステップにあります。最悪の部分は、リモートピアがping要求に応答せず、トラフィックの暗号化された性質のために、一般的なセットアップのデバッグが非常に難しいことです。

関連するIPアドレスのペアは2つあります。1つはGREトンネルのピアツーピア接続用で、もう1つは「ループバック」部分用です。 VPN内のホストの最終的なIPアドレスとなるIP範囲も含まれます。

私の質問は、この設定をどのように(または行う場合)行うことができるかということです。特別なソフトウェアや別のデーモンが必要ですか、それともLinuxカーネルがGRE/IPSecトンネリングのあらゆる側面を処理しますか?

追加情報が役立つ場合はお知らせください。

どんな助けでも大歓迎です。

1
alecov

もう一度、私は問題をいじくり回すことができました(ただし、元の質問とこの回答がそれを想定している限り、それほど長くはありません:)。私はこの問題の解決策をほぼ1か月間調査してきましたが、誰かが同じ問題にぶつかった場合に備えて、ここに文書化したままにしておきます。

実際、ループバックインターフェイスは、私が知っていたものです。つまり、マシン上の常にアップしているダミーのインターフェイスに割り当てられたアドレスです。リモートGREルーターと私のルーター間の接続の問題は別の問題が原因でした:GREキープアライブパケット

リモートCiscoルーターが実際にトンネルを介して奇妙なGREカプセル化パケットを送信していたことが判明しました。これらのパケットはカプセル化されたanotherGREパケットであり、一方、これらはzero。簡単に参照すると、これらのパケットはGREキープアライブパケットであり、定期的に(私の場合は、ほぼ正確に10秒ごとに)送信されます。最も内側の宛先アドレスには送信者の送信元アドレスが含まれているため、ピアによって適切にカプセル化が解除され、再ルーティングされた場合は、送信者にエコーバックする必要があります。

事実、Linuxカーネルは、カプセル化が解除されたキープアライブパケットをルーティングチェーンに再度適切にフィードしませんでした。もしそうなら、パケットはそれ以上の複雑さなしに送信者に再ルーティングされます。代わりに、パケットをユーザースペースに配信したため、このようなパケットをrawモードでリッスンし、送信者にエコーバックする簡単なプログラムを作成することができました。このプログラムを実行し、Ciscoルーターにいくつかのパケットをエコーバックすると、GREトンネルがリモート側で「アップ」し、PIMルーターがhellosを交換し、ついにできました。私が聞くと思っていたマルチキャストトラフィックを聞いてください。

私はこの経験から多くのことを学びました。特に、あいまいなプロトコル(または少なくともあいまいなプロトコルの機能)をいじるときに、あなたがピアの知識だけを頼りにすることはできません。おそらくこの動作が文書化されていないため、リモート側の単一のネットワークアナリストはこの点で私を助けることができませんでした。

2
alecov

マルチキャストがどのように機能するかはわかりませんが、GRE overIPSecがどのように機能するかはわかります。ほとんどのLinuxインストールはgreをサポートしているため、追加でインストールする必要はありません。


ホスト間IPSecトンネルを作成し、ここに記載されている手順に従ってトンネルを作成しました。 http://lartc.org/lartc.html#LARTC.TUNNEL.GRE

パケット転送を有効にすることを忘れないでください:)

1
Sameer