Skip to content

Blog

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 に設定してみます。

BGP advertise best external で意図的にループ構成を作ってみる

前回は BGP Advertise Best External による BGP のバックアップパスを設定してみました。通常であれば BGP はスプリットホラインズン動作によりループが出来ないように振る舞います。しかし、BGP Advertise Best External を使うとループが発生してしまうことがあります。今回は BGP Advertise Best External 設定環境下で意図的にループを発生させてみます。

BGP Advertise Best External によるバックアップパスを試してみる

通常、BGP スピーカが他の BGP スピーカに広告する経路は最善の経路と選定されたものだけであり、全く同じ複数の経路を広告することは出来ません。つまり、BGP において「ベストパスは常にひとつだけ」であり、「バックアップパス(代替パス)は存在しない」ということになります。しかしながら、バックアップパスがあれば障害によってベストパスが無くなってもいち早くバックアップパスに切り替わることが出来るので収束が早くなる、といった利点があります。バックアップパスを広報する手段として以下の 3 種類が検討されているそうです。

  1. BGP Advertise Best External
  2. BGP add-path
  3. BGP Diverse Path

今回は Cisco ルータを使って BGP Advertise Best External によるバックアップパスを試してみます。尚、検証に際しては RFC 以外にも以下の資料を参考にさせて頂きました。

これらの資料を公開してくださった土屋師子生さん、篠宮 俊輔さん、河野 美也さんに敬意を表します。

VIRL に RouterOS を登録してシミュレーション環境を作るには

VIRL に RouterOS を追加するとルーティングの挙動確認等、論理的な検証は非常に楽になります。そこで今回は VIRL 上で動作する RouterOS の動作イメージを作成し、それを VIRL へ登録してみます。VIRL をお持ちで無い方は GNS3 でも近い手順で似たような検証環境を作れると思います(未検証)。

一点だけ、注意点があります。RouterOS の仕様でライセンス未登録状態だと 24 時間しか利用出来ないそうです。ですが、少なくても私は「短時間で作る・壊すを繰り返す」為、ライセンス未登録状態でも全く困っていません。

Raspberry Pi をワイヤレスなコンソールサーバにする

Lantronix 社 の xDirect シリーズはイーサネット経由でシリアルポート(RS232)にアクセス出来る製品だそうです。「簡易コンソールサーバ」とも表現出来ると思います。

ただ、Amazon.co.jp や NTT-X ストアには基本的に在庫が無くて入手まで時間がかかると予想される上、NTT-X ストアで PoE 対応版の価格は約 21,000 円と、かなり高価な価格設定になっていました… そこで今回は Raspberry Pi をコンソールサーバにしてみようと思います。Raspberry Pi はワイヤレスに対応させ、一般的なコンソールサーバ製品と差別化してみます。

MikroTik を秒殺で DDNS クライアントにするには

Mikrotik を DDNS クライアントにするのは極めて簡単です。一般的なルータでは「別途、DDNS サービスを登録(場合によっては契約)し、その設定情報をルータに投入」というケースが殆どです。しかし、Mikrotik の場合は特に何の事前準備も無く、すぐに DDNS サービスを利用することが出来ます。

MikroTik のルータを L2TP over IPsec のクライアントとして設定するには

前回の記事「CentOS 6.x で StrongSwan を使った L2TP over IPsec 環境を作る」では、さくら VPS の CentOS 6.6 上に L2TP over IPsec サーバを作りました。この環境と常時、L2TP over IPsec を接続したままにする為、ゲートウェイルータになっている Mikrotik 製ルータを L2TP over IPsec のクライアントとして設定してみました。