OpenBSDは、同じIPを持つが異なるインターフェースを持つ異なるゲートウェイを経由します


9

同じゲートウェイIPを使用する複数のVPN接続があります(自分の制御外のため、これを変更することはできません)。これらのVPNはすべて異なるネットワークへのアクセスを提供し、ネットワークは少なくとも1ホップまたは2ホップアップストリームであるため、すべての場合にゲートウェイIPが必要です。Linuxを使用すると、ネットワークにルーティングするために、次のことを簡単に実行できます。

ip route add $destination_1 via $gateway_ip dev $interface_1
ip route add $destination_2 via $gateway_ip dev $interface_2
ip route add $destination_3 via $gateway_ip dev $interface_3

Linuxは、各宛先ネットワークのトラフィックを正しいゲートウェイに向かう正しいインターフェースに配置するため、ゲートウェイIPが各インターフェースで同じであることは問題ではありません。

私の質問は、どうすればOpenBSDでこれを実現できるでしょうか?私は試し、失敗しました。私の発見によると、特定の目的地では、次のいずれかを行うことができます。

  • インターフェースを指定する(宛先にそのリンク上で直接到達可能である場合-私の場合はそうではありません)
  • 宛先がリンク上に直接ないため、ゲートウェイIPを指定します

しかし、両方を指定する方法がわかりません。


ゲートウェイが必要ですか?リンクがイーサネットで、ターゲットが1ホップ以上離れている場合は、ゲートウェイが必要です。しかし、VPNは多くの場合、ゲートウェイを必要としないポイントツーポイントインターフェイスとして動作します。
kasperd 2017

はい、それは間違いなく、インタフェースがポイントツーポイントではあるが、先のネットワークが離れて、すべてのホップ以上であり、IPフォワーディングとNAT関与があるとして必須です
bao7uo

ポイントツーポイントリンクはゲートウェイを気にしません。
kasperd 2017

わかりましたが、どうやってそれを機能させることができますか?
bao7uo 2017

-Tオプションを使用して、route各宛先のルーティングテーブルを定義してみませんか?インターフェースごとのルールに、より良い「絶縁」を提供すると思います。
gmelis 2017

回答:


1

-ifp修飾子を使用してルーティングします。manページから:

In a change or add command where the destination and gateway are not
sufficient to specify the route, the -ifp or -ifa modifiers may be 
used to determine the interface name or interface address.

したがって、このようなものは機能します:

# for  arg in tun0 tun1 tun2; do ifconfig $arg  192.168.11.1/24; done
# route add 10/8 -iface 192.168.11.1 -ifp tun0
add net 10/8: gateway 192.168.11.1
# route add 172.16/12 -iface 192.168.11.1 -ifp tun1
add net 172.16/12: gateway 192.168.11.1
# route add 192.168.254/24 -iface 192.168.11.1 -ifp tun2
add net 192.168.254/24: gateway 192.168.11.1
# route show -inet
Routing tables

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio 
Iface
10/8               192.168.11.1       GS         0        0     -     8 tun0
localhost          localhost          UHl        0       22 32768     1 lo0
172.16/12          192.168.11.1       S          0        0     -     8 tun1
192.168.11.1       192.168.11.1       UHhl       1        4     -     1 tun0
[...my real routes omitted...]
192.168.254/24     192.168.11.1       S          0        0     -     8 tun2

宛先ルートが重複している場合は、pfおよびルートラベルを使用して一致させるか、ドメインをルーティングできます


これをありがとう。私はそれを試してみましたが、動作させることができませんでした。-ifaceゲートウェイアドレスが上流のルーター(ネクストホップ)用であり、openbsdボックス自体のインターフェイスのIPではないため、私は当てはまらないと思います。-ifaceを削除すると機能しましたが、最初のVPNインターフェイスに対してのみでした。だから私-ifp tap0-ifp tap1それを行うことができ、それは機能しますが、もしそうした場合no route to host、ルートを追加しようとすると失敗します。
bao7uo 2017

問題は解決しませんでしたが、あなたが助けてくれたことに感謝しているので、賞金を授与しました。
bao7uo 2017

私は正直なところ、Linuxが内部で何をしているのかと戸惑っています... BSDは、gwがローカルではないと不平を言うことによって「正しい」ことをしています。-link -llinforouteコマンドにフラグを試しましたか?また、私-ifaceは当てはまると思います(ネットワークルートが競合し、再度追加できないため、ルーティングテーブル/ドミアンなしでエラーが発生します。OpenVPN /タップ?それが偽のptpである場合、「その他」の終わりをプロビジョニングするものは何か疑問に思います。
quadruplebucky
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.