Skip to content

Blog

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

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

BIG-IP でトランザクションを使い、エラー時は「全て無かったこと」にする

BIG-IP は非常に優れた Web GUI を持つ製品です。しかし、同時に洗練されたシェル「tmsh」も備えています。例えば「設定量が少ない場合は Web GUI」「設定量が多い場合は tmsh」といった具合に使い分けると便利です。しかし、tmsh(CLI)とは言え、大量に設定を投入してエラーになった場合、「文字列が多すぎてエラー箇所が分かりづらい」「どこまで設定が入ったのか、分かりづらい」といった問題が出る場合もあります。こういった問題を避ける為、tmsh 上ではひとまとまりの設定を『トランザクション』として扱うことで「一箇所でもエラーになった場合は、投入したコンフィグの全てを無効化する」ということが出来ます。

C# 6 の新機能でプロパティの初期化をシンプルに書く

C# 6 の新機能 のひとつに『自動プロパティの初期化を書けるようになった』というものがあります。従来 〜 新機能を簡単にまとめると以下の通りです。

  1. 従来のプロパティ実装ではコードが長くなりがち
  2. 自動プロパティを使うとコードは短くなるが、初期値を指定出来ない
  3. C# 6 の拡張を使うと、自動プロパティに初期値を指定出来るようになった

C# 6 の新機能でシンプルに文字列を埋め込む

C# 6 で追加された新機能 は川俣晶さんの著作「C# 6 実践的プログラミング[入門]講座」によくまとまっています。

新機能のひとつに『直接、文字列を埋め込めるようになった』というものがあります。この新機能を使うと string.Format や「+ による文字列の連結」を多用することなく、シンプルに記述することが出来るようになります。

acitoolkit を使って Cisco ACI から Subnet 情報一覧を取得する

Cisco ACI 標準の Web 管理画面では Bridge Domain ごとに設定した Subnet 情報を一覧で見ることが出来ません。同一 Tenant 内であれば下図のように Bridge Domain 配下の Subnet をひとつひとつ展開し、アドレスを表示させる… ということも不可能ではありません。

file

ただし Bridge Domain の数が多くなれば「ひとつひとつ展開する」のは現実的ではありません。また、そもそも複数 Tenant の Bridge Domain / Subnet 情報を一度に表示させることは出来ません。そこで acitoolkit を使って「全 Tenant の Subnet 情報を一覧表示するスクリプト」を書いてみました。今回のスクリプトには以下のような特徴があります。

  1. 全 Tenant の Subnet 一覧を表示する
  2. Subnet が所属する Tenant / Application Profile / Bridge Domain 情報も一覧表示する
  3. Subnet の Scope 情報も表示する
  4. アドレスを持たない Bridge Domain 情報は「アドレス欄が空」として表示する
  5. 複数のアドレスを持つ Bridge Domain は、1 行 = 1 アドレスとして複数行表示する
  6. Bridge Domain が EPG に関連付けられていない場合は表示しない

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 側が悪いのか、切り分けはこれからです。