Skip to content

MikroTik

MikroTik で NTP サーバと同期させるには

いずれのメーカー製品であっても、サーバ / ネットワーク製品であっても、管理の都合上、正確に時刻同期されていることは重要です。今回は RouterOS で NTP を用いた時刻同期の設定方法について記載します。

CCR 1009 にフルルートを持たせてみる(失敗)

MikroTik の CCR1009 に BGP のフルルートを持たせるテストを実施してみました。対向側は GoBGP を使いました。残念ながら、結果は以下の通りです。

  1. Peer Up から 30 秒程で約 11.5 万経路を受信する。ここまでは順調
  2. それ以降、なぜか 1 経路も受信しなくなる…
  3. Peer Up から 6 〜 8 分後に「hold timer expired」で Peer Down し、最初からやり直し
  4. CPU 使用率は常に低いまま、メモリ使用率もまだまだ空き容量があるように見える
  5. RouterOS のバージョンは v6.32.2

CCR 側が悪いのか、GoBGP 側が悪いのか、切り分けはこれからです。

Extra Packages を追加した MikroTik CHR を Cisco VIRL に登録する

RouterOS 6.31 current の公開に伴って CHR(Cloud Hosted Router)6.31 のバイナリも公開されています。ただし、公式ダウンロードページ では無く、フォーラム にダウンロードリンクがあります。

  1. http://www.mikrotik.com/download/share/chr_6_31.img
  2. http://www.mikrotik.com/download/share/chr_6_31.vmdk

今回は CHR 6.31 に Extra Package を追加し、更にそれを Cisco VIRL に登録します。大部分は過去記事「VIRL に RouterOS を登録してシミュレーション環境を作るには」と同じです。

RouterOS へ鍵交換方式で SSH ログインするには(DSA / RSA 両対応)

従来の 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 ログインを試してみます。

MikroTik を BGP の Route Reflector に設定してみる

iBGP ではルーティングループの発生を抑える為にスプリットホライズン動作をします。具体的には「ある iBGP Peer で学習した経路を別の iBGP Peer には広告しない」という振る舞いをします。下図はスプリットホライズン動作を図示したものです。ルータ A、B、C はフルメッシュで iBGP 接続されている前提です。

file

ルータ A は B と C に経路を広告します。しかし、ルータ B は A から学習した経路を C には広告しません(iBGP で学習した経路を他の iBGP Peer には広告しません)。この振る舞いのおかげでルーティングループを防止出来ますが、「iBGP は必ずフルメッシュ構成にしなければならない」とも言えます。フルメッシュ構成時に必要となる iBGP Peer の下図は以下の式で求められます(n = ルータの台数)。

  • n * (n-1) / 2

以下の通り、フルメッシュ構成ではルータの台数が増えれば増える程、爆発的に 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 やメモリリソースを大量に浪費する、といったデメリットがあります。こういった問題を避ける為には以下の方法があります。

  1. RouteReflector(RR)を導入する
  2. Confederation を導入する

今回は Mikrotik(RouterOS)を RR に設定してみます。