特定のVPNクライアントを介して特定のVPNトラフィックをルーティングする方法は?

Mato

OpenVPNソフトウェアに基づくVPNネットワークがあります。宛先IPが特定の国からのVPNネットワーク内のすべてのネットワークトラフィックを、このVPNネットワーク上の1つの特定のクライアント(VPNクライアントIPアドレス)を介してルーティングする必要があります-メインインターネットインターフェイス(PPPoE)用にNAT(MASQUERADE)が構成されているMikrotikルーター。このすべてのトラフィックに対して、このVPNクライアント(Mikrotikルーター-PPPoEインターフェイス)が所有するパブリックで動的なIPアドレスを取得する必要があります。そのため、VPNサーバーでiptablesマングルルールを作成し、geoipiptablesモジュールを使用します。

iptables -A PREROUTING -t mangle -i tun0 -m geoip --destination-country COUNTRY_CODE -j MARK --set-mark 1

そのため、この特定の国からの宛先IPを持つクライアントからのすべてのトラフィックにマークを付けました。次に、このソリューションを使用してみました。特定のルートテーブルを作成し、デフォルトルートを追加します。ただし、デフォルトルートは、このネットワークのネクストホップ専用にすることができます。したがって、このコマンドを使用すると、次のようになります。

ip route add default via specific_VPN_client dev tun0 table CountryRoute 

このエラーが発生します:

RTNETLINK answers: Network is unreachable

特定のトラフィックを特定のクライアントにルーティングすることはできますが、ネクストホップにルーティングすることはできませんか?

私もこのiptablesルールを試しました:

iptables -A PREROUTING -i tun0 -m geoip --destination-country COUNTRY_CODE -j DNAT --to-destination Mikrotik_VPN_IP

ただし、トラフィックはMikrotikルーターで終了します。たぶん、このルーターでこの問題を解決することは可能でしょうか?

OpenVPNサーバー(10.1.1.1)ルートテーブル:

default via PUBLIC_IP_VPN_SERVER dev eth0
10.1.1.0/24 via 10.1.1.2 dev tun0
10.1.1.2 dev tun0  proto kernel  scope link  src 10.1.1.1
PUBLIC_IP_VPN_SERVER/24 dev eth0  proto kernel  scope link  src PUBLIC_IP_VPN_SERVER

更新

このソリューションを使用して、CountryRouteテーブルにデフォルトルートを追加しました。したがって、CountryRouteテーブルには次の内容が含まれます。

default via 10.1.1.30 dev tun0 

アクティブなiptablesマングルルール(上記)とipルートルールがあります:

ip rule show
0:      from all lookup local
32765:  from all fwmark 0x1 lookup CountryRoute
32766:  from all lookup main
32767:  from all lookup default

しかし、マークされたトラフィックはまだ10.1.1.1で終了します-OpenVPNサーバー、それはMikrotikルーターに続きません。

UPDATE2

現在の値:

default via PUBLIC_IP_VPN_SERVER dev eth0
10.0.0.0/24 dev veth0  proto kernel  scope link  src 10.0.0.1
10.0.1.0/24 dev veth3  proto kernel  scope link  src 10.0.1.2
10.1.1.0/24 via 10.1.1.30 dev tun0
10.1.1.30 dev tun0  proto kernel  scope link  src 10.1.1.1
PUBLIC_IP_VPN_SERVER/24 dev eth0  proto kernel  scope link  src PUBLIC_IP_VPN_SERVER

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:10.1.1.1  P-t-P:10.1.1.30  Mask:255.255.255.255
          inet6 addr: PUBLIC_IP_VPN_SERVER/64 Scope:Global
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:141437 errors:0 dropped:0 overruns:0 frame:0
          TX packets:230785 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:14693683 (14.0 MiB)  TX bytes:240387315 (229.2 MiB)

ip route show table CountryRoute
default via 10.1.1.30 dev tun0

更新3

ip -4 route show table all
default via 10.0.0.2 dev veth0 table CountryRoute
default via PUBLIC_IP_VPN_SERVER_gateway dev eth0 onlink
10.0.0.0/24 dev veth0 proto kernel scope link src 10.0.0.1
10.0.1.0/24 dev veth3 proto kernel scope link src 10.0.1.2
10.1.1.0/24 via 10.1.1.30 (Mikrotik_VPN_IP) dev tun0
10.1.1.30 dev tun0 proto kernel scope link src 10.1.1.1
PUBLIC_IP_VPN_SERVER/24 dev eth0 proto kernel scope link src PUBLIC_IP_VPN_SERVER
broadcast 10.0.0.0 dev veth0 table local proto kernel scope link src 10.0.0.1
local 10.0.0.1 dev veth0 table local proto kernel scope host src 10.0.0.1
broadcast 10.0.0.255 dev veth0 table local proto kernel scope link src 10.0.0.1
broadcast 10.0.1.0 dev veth3 table local proto kernel scope link src 10.0.1.2
local 10.0.1.2 dev veth3 table local proto kernel scope host src 10.0.1.2
broadcast 10.0.1.255 dev veth3 table local proto kernel scope link src 10.0.1.2
local 10.1.1.1 dev tun0 table local proto kernel scope host src 10.1.1.1
broadcast PUBLIC_IP_VPN_SERVER_networkIP dev eth0 table local proto kernel scope link src PUBLIC_IP_VPN_SERVER
local PUBLIC_IP_VPN_SERVER dev eth0 table local proto kernel scope host src PUBLIC_IP_VPN_SERVER
broadcast PUBLIC_IP_VPN_SERVER_broadcastIP dev eth0 table local proto kernel scope link src PUBLIC_IP_VPN_SERVER
broadcast 127.0.0.0 dev lo table local proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1

更新4

ip netns exec Mikrotik ip -4 route show table all
default via 10.0.1.2 dev veth2
10.0.0.0/24 dev veth1 proto kernel scope link src 10.0.0.2
10.0.1.0/24 dev veth2 proto kernel scope link src 10.0.1.1
10.1.1.30 via 10.0.1.2 dev veth2
broadcast 10.0.0.0 dev veth1 table local proto kernel scope link src 10.0.0.2
local 10.0.0.2 dev veth1 table local proto kernel scope host src 10.0.0.2
broadcast 10.0.0.255 dev veth1 table local proto kernel scope link src 10.0.0.2
broadcast 10.0.1.0 dev veth2 table local proto kernel scope link src 10.0.1.1
local 10.0.1.1 dev veth2 table local proto kernel scope host src 10.0.1.1
broadcast 10.0.1.255 dev veth2 table local proto kernel scope link src 10.0.1.1

更新5

# ip netns exec Mikrotik traceroute -I 10.1.1.30
traceroute to 10.1.1.30 (10.1.1.30), 30 hops max, 60 byte packets
 1  10.0.1.2 (10.0.1.2)  0.053 ms  0.016 ms  0.013 ms
 2  10.1.1.30 (10.1.1.30)  18.868 ms  38.147 ms  98.549 ms

# ip netns exec Mikrotik traceroute 10.1.1.30
traceroute to 10.1.1.30 (10.1.1.30), 30 hops max, 60 byte packets
 1  10.0.1.2 (10.0.1.2)  0.056 ms  0.019 ms  0.016 ms
 2  10.1.1.30 (10.1.1.30)  19.044 ms  37.808 ms  56.347 ms

# ip netns exec Mikrotik traceroute COUNTRY_PUBLIC_IP_MARKED_TRAFFIC
traceroute to COUNTRY_PUBLIC_IP_MARKED_TRAFFIC (COUNTRY_PUBLIC_IP_MARKED_TRAFFIC), 30 hops max, 60 byte packets
 1  10.0.1.1 (10.0.1.1)  3052.269 ms !H  3052.212 ms !H  3052.185 ms !H

# ip netns exec Mikrotik traceroute -I COUNTRY_PUBLIC_IP_MARKED_TRAFFIC
traceroute to COUNTRY_PUBLIC_IP_MARKED_TRAFFIC (COUNTRY_PUBLIC_IP_MARKED_TRAFFIC), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * 10.0.1.1 (10.0.1.1)  3067.929 ms !H  3067.883 ms !H

ご協力ありがとうございました。

ラルフ・ロンキスト

Mikrotikトラフィックを受信するためのネットワーク名前空間のセットアップ、およびそれをNATを使用して実際のMikrotikにルーティングすることは、名前空間に10.0.0.0/24を使用し、10.0.1.0 / 24を使用して次の方法で実行できると思います。アウトし、Mikrotik_VPN_IP経由でルーティングされます

ip netns add Mikrotik
ip link add veth0 type veth peer name veth1
ip link set veth1 netns Mikrotik
ip link add veth2 type veth peer name veth3
ip link set veth2 netns Mikrotik
ifconfig veth0 10.0.0.1/24 up
ifconfig veth3 10.0.1.2/24 up
ip netns exec Mikrotik ifconfig veth1 10.0.0.2/24 up
ip netns exec Mikrotik ifconfig veth2 10.0.1.1/24 up
ip netns exec Mikrotik iptables -t nat -A POSTROUTING -o veth2 -j MASQUERADE
ip netns exec Mikrotik ip route add Mikrotik_VPN_IP via 10.0.1.2
ip netns exec Mikrotik ip route add default via Mikrotik_VPN_IP dev veth2 onlink
ip netns exec Mikrotik iptables -A PREROUTING -t mangle -j MARK --set-mark 0

これで、10.0.0.2経由でルーティングすることにより、Microtekルーターとの間のトラフィックパスが得られます。選択したトラフィックを10.0.0.2経由で渡し、残りを「通常」/デフォルトルート経由で渡すには、ルールベースのルーティングも必要です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

VPNを介して特定のトラフィックのみをルーティングする

分類Dev

特定のクライアントのトラフィックをVPN(PPTP)にルーティングする方法は?

分類Dev

VPNを介して特定のトラフィックをルーティングしない

分類Dev

VPNアダプターを介してすべてのトラフィックをルーティングする方法は?

分類Dev

VPNゲートウェイを介してLANトラフィックをルーティングする

分類Dev

VPNトンネルを介してクライアントトラフィックをルーティングする

分類Dev

ネットワーク/ VPNを介してトラフィックをルーティングするのはなぜですか?

分類Dev

OpenwrtのVPNトンネルを介してすべてのLANトラフィックをルーティングするようにopenvpnクライアントを構成します

分類Dev

異なるインターフェースを介してVPNとインターネットトラフィックをルーティングする

分類Dev

アプリごとに特定のSOCKSプロキシを介してトラフィックをルーティングする方法は?

分類Dev

特定のインターフェースを介して特定のネットワークにトラフィックをルーティングします

分類Dev

teamviewerのVPNを介してインターネット接続をルーティングする方法は?

分類Dev

VPNを介してルーティングされることからftpトラフィックを除外する方法は?

分類Dev

特定のインターフェイスを介して特定のポートのトラフィックをルーティングしますか?

分類Dev

Openvpnトンネルを介して特定のクライアントをルーティングします

分類Dev

宛先がVPNホストである場合、Windows10はVPNを介してトラフィックをルーティングしません

分類Dev

VPNクライアントはどのようにトラフィックをルーティングしますか?

分類Dev

特定のインターフェースを介してデーモンからのトラフィックをルーティングする

分類Dev

VPNを介してトラフィックを一部のIPにルーティングする場合があります

分類Dev

別のネットワーク インターフェイスを介した VPN トラフィックのルーティング

分類Dev

Windows 7:特定のインターフェイスを介してプログラムのトラフィックをルーティングします

分類Dev

UbuntuLinuxでVPN経由ですべてのトラフィックをルーティングする

分類Dev

VPNを介してTorトラフィックをトンネルする

分類Dev

VPNトンネルの外側のcgroupでトラフィックをルーティングします

分類Dev

VPNを介してネットワークトラフィックを選択的にルーティングするようにUbuntu / Linuxのネットワークマネージャーを設定するにはどうすればよいですか?

分類Dev

Linux-イーサネットを介して特定のトラフィックをルーティングする

分類Dev

インターネットからのトラフィックをVPSに再ルーティングし、VPNを使用して自宅に到着します

分類Dev

VPNを介したwlan1のトラフィックとeth0へのwlan0のトラフィックのルーティング

分類Dev

オンプレミスのデータゲートウェイトラフィックをサイト間VPN経由でルーティングする方法

Related 関連記事

  1. 1

    VPNを介して特定のトラフィックのみをルーティングする

  2. 2

    特定のクライアントのトラフィックをVPN(PPTP)にルーティングする方法は?

  3. 3

    VPNを介して特定のトラフィックをルーティングしない

  4. 4

    VPNアダプターを介してすべてのトラフィックをルーティングする方法は?

  5. 5

    VPNゲートウェイを介してLANトラフィックをルーティングする

  6. 6

    VPNトンネルを介してクライアントトラフィックをルーティングする

  7. 7

    ネットワーク/ VPNを介してトラフィックをルーティングするのはなぜですか?

  8. 8

    OpenwrtのVPNトンネルを介してすべてのLANトラフィックをルーティングするようにopenvpnクライアントを構成します

  9. 9

    異なるインターフェースを介してVPNとインターネットトラフィックをルーティングする

  10. 10

    アプリごとに特定のSOCKSプロキシを介してトラフィックをルーティングする方法は?

  11. 11

    特定のインターフェースを介して特定のネットワークにトラフィックをルーティングします

  12. 12

    teamviewerのVPNを介してインターネット接続をルーティングする方法は?

  13. 13

    VPNを介してルーティングされることからftpトラフィックを除外する方法は?

  14. 14

    特定のインターフェイスを介して特定のポートのトラフィックをルーティングしますか?

  15. 15

    Openvpnトンネルを介して特定のクライアントをルーティングします

  16. 16

    宛先がVPNホストである場合、Windows10はVPNを介してトラフィックをルーティングしません

  17. 17

    VPNクライアントはどのようにトラフィックをルーティングしますか?

  18. 18

    特定のインターフェースを介してデーモンからのトラフィックをルーティングする

  19. 19

    VPNを介してトラフィックを一部のIPにルーティングする場合があります

  20. 20

    別のネットワーク インターフェイスを介した VPN トラフィックのルーティング

  21. 21

    Windows 7:特定のインターフェイスを介してプログラムのトラフィックをルーティングします

  22. 22

    UbuntuLinuxでVPN経由ですべてのトラフィックをルーティングする

  23. 23

    VPNを介してTorトラフィックをトンネルする

  24. 24

    VPNトンネルの外側のcgroupでトラフィックをルーティングします

  25. 25

    VPNを介してネットワークトラフィックを選択的にルーティングするようにUbuntu / Linuxのネットワークマネージャーを設定するにはどうすればよいですか?

  26. 26

    Linux-イーサネットを介して特定のトラフィックをルーティングする

  27. 27

    インターネットからのトラフィックをVPSに再ルーティングし、VPNを使用して自宅に到着します

  28. 28

    VPNを介したwlan1のトラフィックとeth0へのwlan0のトラフィックのルーティング

  29. 29

    オンプレミスのデータゲートウェイトラフィックをサイト間VPN経由でルーティングする方法

ホットタグ

アーカイブ