Mikrotik と Cisco ASA 間で Site-to-Site な IPsec を設定してみる
VIRL 上の Mikrotik(RouterOS)と Cisco ASAv 間で Site-to-Site な IPsec を設定してみます。
VIRL 上の Mikrotik(RouterOS)と Cisco ASAv 間で Site-to-Site な IPsec を設定してみます。
Cisco、Mikrotik、VyOS を eBGP 接続し、各々のコンフィグを比較してみました。具体的には以下の機器を用いました。
Cisco VIRL 上に VyOS も登録すると検証時に便利です。今回は VIRL に VyOS を登録してみます。大まかな手順は以前に書いた「VIRL に RouterOS を登録してシミュレーション環境を作るには」と同じ流れになります。
ASA Border Gateway Protocol Configuration Example によると Cisco ASA の OS バージョン 9.2.1 以降では BGP をサポートしたそうです。
This document describes the steps required to enable Border Gateway Protocol (BGP) (eBGP/iBGP) routing, establish a BGP routing process, configure general BGP parameters, route-filtering on an Adaptive Security Appliance (ASA), and troubleshoot neighborship related issues. This feature was introduced in ASA Software Version 9.2.1.
そこで今回は ASAv を Active / Standby のFailover(HA)構成とし、更に BGP を動作させてみます。
BGP は他のルーティングプロトコルと異なり、「BGP で学習した経路」だけを保持する「BGP テーブル」を持ちます。BGP では複数の Peer から同じ経路を学習した場合、既定のアルゴリズムに従って最善と思われる経路(ベストパス)を選出します。このアルゴリズムのことを「ベストパス選択アルゴリズム(Best Path Selection Algorithm)」と呼びます。BGP テーブル上でベストパスとして選出された経路はルーティングテーブルにインストールされ、実際のパケット転送(の、方路検索)時に利用されます。
従来の RouterOS は鍵交換方式での SSH ログインをサポートしているものの、DSA 鍵にしか対応しておらず、RSA 鍵には対応していませんでした。しかし、まだ RC 版(Release Candidate = リリース候補版)ではあるものの、最新の RouterOS 6.31 からは RSA 鍵にも対応したようです。以下は RouterOS 6.31 の changelog です。
What's new in 6.31rc11 (2015-Jul-28 16:06):
) ipsec - fix replay window, was accidently disabled since version 6.30; ) ssh - allow host key import/export; ) ssh - use 2048bit RSA host key when strong-crypto enabled; ) ssh - support RSA keys for user authentication; ) wireless - improved WMM-PowerSave support in wireless-cm2 package; ) pptp & l2tp - fixed problem where android client could not connect if both dns names were not provided (was broken since v6.30); ) auto upgrade - added ability to select which versions to select when upgrading; ) quickset - fixed HomeAP mode; ) lte - improved modem identification to better support multiple identical modems; ) snmp - fix system scripts table; *) lcd - added LCD package for all architectures (for serial port LCD modules)
今回は現時点の最新バージョンである RouterOS 6.31rc11 で RSA 鍵による SSH ログインを試してみます。
先日、某所で「Windows ファイアウォールが有効(ICMP を拒否)な状態で Ping すると ICMP Request はキャプチャ出来るのか?」という話題が出たので試してみました。
仮想環境を使うと検証がはかどります。ただ、仮想環境上にクローズなネットワークを作って検証する場合は(IP での疎通性が無い為)いちいち VI Client や Web Client からコンソール接続する必要があり、不便です。しかし、VMware では仮想マシンのコンソールをネットワークにリダイレクトする機能があるので、これを使えば VI Client や Web Client を使わなくても仮想マシンのコンソールに接続出来て便利です。今回は CentOS や Ubuntu 等の仮想マシンのコンソールポートに TELNET で接続出来るように設定してみます。
iBGP ではルーティングループの発生を抑える為にスプリットホライズン動作をします。具体的には「ある iBGP Peer で学習した経路を別の iBGP Peer には広告しない」という振る舞いをします。下図はスプリットホライズン動作を図示したものです。ルータ A、B、C はフルメッシュで iBGP 接続されている前提です。
ルータ A は B と C に経路を広告します。しかし、ルータ B は A から学習した経路を C には広告しません(iBGP で学習した経路を他の iBGP Peer には広告しません)。この振る舞いのおかげでルーティングループを防止出来ますが、「iBGP は必ずフルメッシュ構成にしなければならない」とも言えます。フルメッシュ構成時に必要となる iBGP Peer の下図は以下の式で求められます(n = ルータの台数)。
以下の通り、フルメッシュ構成ではルータの台数が増えれば増える程、爆発的に iBGP Peer の総数が肥大化します。
ルータの台数 | iBGP Peer の総数 |
---|---|
3 | 3 |
5 | 10 |
10 | 45 |
20 | 190 |
30 | 435 |
40 | 780 |
50 | 1,225 |
100 | 4,950 |
iBGP Peer の総数が肥大化すると各ルータの CPU やメモリリソースを大量に浪費する、といったデメリットがあります。こういった問題を避ける為には以下の方法があります。
今回は Mikrotik(RouterOS)を RR に設定してみます。
前回は BGP Advertise Best External による BGP のバックアップパスを設定してみました。通常であれば BGP はスプリットホラインズン動作によりループが出来ないように振る舞います。しかし、BGP Advertise Best External を使うとループが発生してしまうことがあります。今回は BGP Advertise Best External 設定環境下で意図的にループを発生させてみます。