既存の内部サブネットを複数の建物に安全に広げたい。つまり、同じサブネット内にある必要がある仮想マシンが2つの場所にあるということです。仮想マシン(静的IPを持つ)は、ある場所から別の場所に移行できるという考え方です。
(物理)ホストマシンは、各場所のスイッチに接続されています。したがって、セキュリティやコストの問題がなければ、両方のスイッチをネットワークケーブルで接続します。
[マシン] --- [スイッチA] <---- LONG CABLE ---> [スイッチB] --- [マシン]
私が望むのは、この長いケーブルを、IPアドレスやルーティングを気にする必要のない2つのゲートウェイを使用する暗号化されたトンネルに置き換え、着信パケットを暗号化して、暗号化されたトンネルを介して他のゲートウェイに送信することです。次に、もう一方のゲートウェイがパケットを復号化して、リモートスイッチに送信します。これは物理的には次のようになります。
[マシン] --- [スイッチA] --- [ゲートウェイA] <-インターネット-> [ゲートウェイB]-[スイッチB] --- [マシン]
ゲートウェイがサブネット内のIPアドレスを必要としないようにしたいと思います。ルールは完全にポートベースでなければなりません:
2つのゲートウェイには、トンネルを確立するための静的でルーティング可能なIPアドレスがあります。暗号化は強力(少なくともAES128、SHA256、DH2048、共有シークレットは問題ありません)で、単純なPPPタイプのトンネルはサポートしていません。そのため、追加の/別の暗号化レイヤーが必要になる場合があります。
利用できるのはMikroTikルーターだけです。だから私はそれらを使用したいと思います。ただし、私は主に「マジックワード」(プロトコル名など)と、それを可能にするテクノロジーの適切な組み合わせを探しています。したがって、CiscoルーターまたはHPルーターでそれを行う方法を知っている場合は、その方法でそれを行う方法を説明していれば、おそらく役に立ちます...
これを実現するためにどのようなファイアウォールフィルターとプロトコルを使用できますか?
私の最初のアイデアは、暗号化されたトンネルをスパンするためにIPsecを使用することでした。しかし、その場合、物理ポートベースのIPsecポリシーを定義する必要があります。ただし、特別なIPアドレスとIPポートの組み合わせとの間でデータを定義するオプションのみがあります。
そのため、IPsecは別のトンネルタイプの暗号化レイヤーとして機能します(PPTP、SSTP、L2TP、OVPNは現在MikroTik RouterOSでサポートされています)。 PPPトンネルは通常、強力な暗号化をサポートしていないため、IPsecにこの処理を実行させ、暗号化されていないPPPトンネルを暗号化されたIPsecトンネルにスパンさせます。
さて、これで少なくともいくつかのトンネルインターフェースができました。これは送信ポートのように使用できます。しかし、私はここで少し迷っています。 「着信フレームはインターフェイス経由で送信する必要があります」と「着信フレームはインターフェイス経由で送信する必要があります」と言う可能性はわかりません。
私はLayer2で頻繁に働いているわけではないので、実際には適切な「用語」または「カテゴリ」を探しています。 IPファイアウォール(マングル->プレルーティング)またはそのような場所でそれを見つけることを想像できますが、それはすでにレイヤー3のものだと思います...
ブリッジをセットアップする必要があるだけですか?もしそうなら、どうすれば(好ましくはwinbox-Interfaceを使用して)トンネルインターフェースをブリッジに追加できますか?ブリッジにはMACアドレスが必要ですか?
この試みが行き止まりの場合に備えて、「インターフェース」設定で「EoIP」、「IPトンネル」、「GREトンネル」も見つけました。しかし、私は彼らが何をすることができるのか本当の考えはありません...だから念のために、彼らのうちのどれが調査する価値があるかを知らせてください...
また、より簡単でクリーンな解決策がある場合は、あなたの解決策を教えてください...簡単な方法があれば、上記の試みを続ける必要はありません。
ブリッジ、EoIPトンネル、およびIPsecの組み合わせを使用して、要求することを実行できます。
まず、両側にEoIPトンネルを作成して、両方のルーターが互いに通信できるようにします。
EoIP は、GRE proto 47のように機能するMikroTik独自のトンネルです。
IP(IPIPやTAPインターフェイスなど)だけでなく、イーサネットフレーム全体を転送できるため、L3リンクを介してL2ブロードキャストドメインを「拡張」するのに理想的です。
次に、トンネルを介した通信を暗号化するようにIPsecを設定します。
Mikrotikの最新バージョンでは、これはEoIPインターフェイス設定から自動的に実行できますが、より適切に制御するために手動で設定することをお勧めします。
IPsecポリシーをEoIPトンネルエンドポイントIPに適用し(EoIPトンネルトラフィック全体を暗号化する)、トンネルを通過するネットワークには適用しません。
最後に、両方のルーターにブリッジを作成し、イーサネットポートと両側のEoIPトンネルを接続します。
このように、L2ブロードキャストドメインをリモート側に拡張すると、ブリッジは、トンネルを通過するパケットとローカルに留まるパケットを処理します。
ブリッジはソフトウェアスイッチのようなものなので、どのMACがどのポートにあるかをテーブルに保持し、どのポート宛てのパケットを自動的に転送します。もちろん、すべてのブロードキャストトラフィックはトンネルに転送されます。 ブリッジの詳細
公式のMikroTikドキュメント このシナリオはすでに文書化されています(IPsec暗号化を除く)。
「オフィスLAN」と「リモートLAN」の2つのネットワークをブリッジするとします。 EoIPを使用することにより、OfficeとリモートLANが同じLayer2ブロードキャストドメインにあるように設定できます。
ワイヤレスステーションをブリッジできないことがわかっているので、この制限(WDSを含まない)を克服するために、ワイヤレスリンク上にEoIPトンネルを作成し、それをローカルネットワークに接続されているインターフェイスにブリッジします。
この例ではワイヤレス構成を取り上げません。ワイヤレスリンクがすでに確立されていると仮定します
まず、ゲートウェイにEoIPトンネルを作成します...
[admin@Our_GW] interface eoip> add name="eoip-remote" tunnel-id=0 \ \... remote-address=10.0.0.2 [admin@Our_GW] interface eoip> enable eoip-remote [admin@Our_GW] interface eoip> print Flags: X - disabled, R - running 0 name=eoip-remote mtu=1500 arp=enabled remote-address=10.0.0.2 tunnel-id=0 [admin@Our_GW] interface eoip>
...そしてリモートルーター上
[admin@Remote] interface eoip> add name="eoip" tunnel-id=0 \ \... remote-address=10.0.0.1 [admin@Remote] interface eoip> enable eoip-main [admin@Remote] interface eoip> print Flags: X - disabled, R - running 0 name=eoip mtu=1500 arp=enabled remote-address=10.0.0.1 tunnel-id=0 [admin@Remote] interface eoip>
次のステップは、ローカルインターフェイスをEoIPトンネルでブリッジすることです。
[admin@Our_GW] interface bridge> add [admin@Our_GW] interface bridge> print Flags: X - disabled, R - running 0 R name="bridge1" mtu=1500 arp=enabled mac-address=00:00:00:00:00:00 protocol-mode=none priority=0x8000 auto-mac=yes admin-mac=00:00:00:00:00:00 max-message-age=20s forward-delay=15s transmit-hold-count=6 ageing-time=5m [admin@Our_GW] interface bridge> port add bridge=bridge1 interface=eoip-remote [admin@Our_GW] interface bridge> port add bridge=bridge1 interface=office-eth [admin@Our_GW] interface bridge> port print Flags: X - disabled, I - inactive, D - dynamic # INTERFACE BRIDGE PRIORITY PATH-COST 0 eoip-remote bridge1 128 10 1 office-eth bridge1 128 10 [admin@Our_GW] interface bridge>
...とリモートルーター:
[admin@Remote] interface bridge> add [admin@Remote] interface bridge> print Flags: X - disabled, R - running 0 R name="bridge1" mtu=1500 arp=enabled mac-address=00:00:00:00:00:00 protocol-mode=none priority=0x8000 auto-mac=yes admin-mac=00:00:00:00:00:00 max-message-age=20s forward-delay=15s transmit-hold-count=6 ageing-time=5m [admin@Remote] interface bridge> port add bridge=bridge1 interface=ether [admin@Remote] interface bridge> port add bridge=bridge1 interface=eoip-main [admin@Remote] interface bridge> port print Flags: X - disabled, I - inactive, D - dynamic # INTERFACE BRIDGE PRIORITY PATH-COST 0 ether bridge1 128 10 1 eoip-main bridge1 128 10 [admin@Remote] interface bridge>
これで、両方のサイトが同じLayer2ブロードキャストドメインにあります。両方のサイトで同じネットワークからIPアドレスを設定できます。
また、IPSecをセットアップする必要もあります。 詳細はこちら
現時点でMikrotikで通信するための最も安全な方法であるIPsecは、ルーターにハードウェアアクセラレーションがない限り、CPUを大量に消費することに注意してください。したがって、単純なルーターボードを使用している場合は、10〜15 Mbps以上のスループットを期待しないでください。
ルーターに動的インターネットIPがある場合、MikroTikの IP>クラウド機能 を使用して動的DNSを取得し、小さなスクリプトでそれらのDynDNSを使用してEoIPトンネルのIPを自動的に更新する必要があります。パブリックIPが変更されたときのIPsecピアとポリシー。
最後に、インターネットへの接続のMTUはせいぜい1500バイトであると想定しています。トンネルとEoIPを使用して、EoIPトンネルインターフェイスのMTUを1400バイトのレルムで下げる必要があります(セットアップ/トラフィックに最適な値を見つけるには、いくつかのテストを行うことをお勧めします)。
セットアップ/トラフィックには1400バイトを使用します。残念ながら、パケットのサイズに依存するIPsecの性質により、オーバーヘッドは変動するため、常に最善を尽くすことはできません。