現在位置: ホーム / 技術ブログ新着記事コレクション

技術ブログ新着記事コレクション

GNS3 活用 - Cisco スイッチFHRP 編 その4(HSRP の まとめ)
HSRP のまとめ的なトポロジをつくってみました。
VirtualBoxをLXCにインストールして、実行する
VirtualBoxのLXC環境へのインストール手順を紹介します。ご存知の通り、LXC(コンテナ)を利用すると、簡単に独立したマシン環境を作成することができます。コンテナ上であれば、誤って必要なファイルを上書きしたり、破損しても、コンテナごと破棄すれば、迅速にやり直しできるので、アプリケーションを試用する場合に筆者はよく利用しています。多くのソフトウェアは、特別な手順なくコンテナ上でも動作します。しかしながら、VirtualBoxは、カーネルドライバやそれを利用するためのデバイスファイルが必要であり、そのインストールや実行には、いつくかの追加的な手順が必要になります。
GNS3 活用 - Cisco スイッチFHRP 編 その3(HSRP の Object Tracking 機能を使って、GWの冗長性を確実にする)
HSRP の Object Tracking 機能を使って、GW ポート以外のポートが停止した場合にもGWの冗長性が生きるようにします。
GNS3 活用 - Cisco スイッチFHRP 編 その2(Layer を考慮した構築を)
今回は、Layer を考慮した構築をしてみます。
Linuxカーネル、アプリケーション、ライブラリについて比喩的に説明してみた
プロセスやLinuxカーネルという言葉をしばしば聞くと思います。Linuxカーネルは、いまや非常に大規模で高性能です。ひとことで正確に説明することは困難です。本稿では、営業・マーケティングなど非技術者の方や、Web技術者、文系からIT業界に入られた方など、OSや基盤レイヤから少し遠いけど、それらについて少しでも知りたいという方を対象として、比喩を交えつつ解説します。正確性よりイメージを優先していきます。
大根島(だいこんじま)でゆったりスローライフ
松江市の大根島(だいこんじま)で、のんびりした休日を過ごしました。
GNS3 活用 - Cisco スイッチFHRP 編 その1(HSRP でゲートウェイの冗長性を確保しよう)
FHRP (First Hop Redundancy Protocol)のうち、HSRP (Hot Standby Redundancy Protocol)について実際に確かめてみます。
Docker 体験 その3 (Dockerfile を使用してコンテナーイメージを作成する)
Dockerfile を使用してコンテナーイメージを作成してみます。
Node.js+ExpressでAngular用のコンテンツをサーブする
いわゆるMEANスタックの構成用に、Angularのブラウザ用コンテンツをNode.js + Expressで提供する方法を紹介します。また、ソースを変更したときに、自動的にビルドとサーバを再起動する方法も合わせて説明します。
AngularのStyle Guideを読む
Angularの公式サイトにコーディングスタイルに関するドキュメントがあります。本稿では、それを抜粋して日本語で紹介します。
Docker 体験 その2 (イメージの作成、Docker Hub へのアップロード、ダウンロード)
Docker イメージを作成して、Docker Hub へアップロードしたり、ダウンロードしたりしてみます。
Angluarでルーターを使う
Angularのルーター機能を使って、URLによってビューを切り替える方法を例を示しながら説明します。ビューの間でデータを共有するためのサービスについても簡単に紹介します。
Angularでマウスイベントをハンドル
Angluarを使ってボタン要素を追加し、マウスのクリックイベントをハンドルする方法をコードを交えて紹介します。
はじめてのAngular
筆者は、現在行っているプロトタイプ開発で、Angularを使い始めました。いろいろと調べながら進めていくことになると思います。その中で得られた知見をこのブログで発信していきます。今回はLinux (Ubuntu 16.04)にAngularをLinuxにインストールする手順を説明します。
Docker 体験 その1(とりあえず動かしてみる)
Docker を動かしてみます。
C++の時間ライブラリchronoでの現在時刻の取得時間
C++11では、時間に関するライブラリchronoが追加されました。これによりポータビリティの高い方法で時間の計測が可能になりました。一方、短い時間を計測する場合、時刻取得関数そのものの実行時間が気になります。chronoの現在時刻の取得のための時間を簡易的に計測しました。
GNS3 活用 - Cisco スイッチ STP 編 その11 (MSTで効率的なVLANの管理および負荷分散を)
spanning-tree の機能である MST を使ってみます。これでいくつVLANが増えても安心ですね。
GNS3 活用 - Cisco スイッチ STP 編 その10 (rapid spanning-tree 、rapid-pvst で素早いコンバージェンス)
rapid spanning-tree は、トポロジの変更に素早く対応できます。実験で確かめます。
#12 pktgenで平均遅延時間を計測する
これまで使ってきたDPDKベースのパケットジェネレータpktgenで平均遅延時間、および、しきい値を超えたパケット割合の計測方法を紹介します。
#11 DPDKのパケットロスを抑制する
DPDKを使って転送を行っている際、パケットロスが生じることがあります。本稿では、カーネルの割り込みなどのオーバーヘッドを削減することで、パケットロスを低減する方法を紹介します。
#10 VFIO (No-IOMMU mode)でDPDKを使う
第9回で説明したVFIOを使うにはホストマシンがIOMMUをサポートしている必要があります。一方、igb_uioは、カーネルがバージョンアップするたびに再ビルドが必要になります。VFIOドライバのNo-IOMMUモードを使うと、IOMMUを持たないマシンでも、カーネル標準のドライバを使って、DPDKを動作できます。今回はその方法を説明します。
#9 VFIOでDPDKを使う
これまでは、DPDKに付属のigb_uioというドライバを使って、DPDKがユーザー空間でNICを制御していました。今回は、カーネルに付属しているvfio-pciというドライバを使います。igb_uioを使っていると、カーネルがバージョンアップするたびに再ビルドが必要ですが、vfio-pciはカーネル標準のドライバなので、このような作業が不要です。
GNS3 活用 - Cisco スイッチ STP 編 その9 (portfast BPDU Guard でセキュリティを考慮した運用を)
エッジポートには portfast BPDU Guard 設定が必要です。
#8 QEMU/KVMをvhostuserでOpen vSwitchに接続
vhostuser機構を使ってQEMU/KVMとOpen vSwitchを接続します。この方式は共有メモリによってパケットをVMに転送するので、従来のvhostnetやtapを使った方式より性能が向上することが期待されます。これまで使用してきたCentOS7.3上にQEMU 2.6をインストールします。また、VMとしてUbuntu 16.04を用い、その中でDPDK 17.02をビルドして使用しました。また、評価時にはOVSのPMDがポーリングするポートをカスタマイズします。
GNS3 活用 - Cisco スイッチ STP 編 その8 (PVSTP で負荷分散)
PVSTPをやってみた実験です。
#7 CentOS 7.3でのOpen vSwitch 2.7.0のインストールと実行
前回まではDPDKに付属のパケット転送ツールを使ってきました。今回はDPDKを利用するアプリケーションのひとつであるOpen vSwitchをCentOS 7.3上に導入します。Open vSwitchは、2/27にリリースされたばかりの2.7.0を使ってみました。
#6 LinuxカーネルのBridgeとDPDK (testpmd) の性能比較
今回は、パケット転送をLinuxカーネルのBridgeを使って行い、前回までで測定したDPDKを用いた結果とを比較します。
GNS3 活用 - Cisco スイッチ STP 編 その7 (backbonefast で障害検知と対応)
backbonefast をやってみました。
#5 DPDKのPMDとQueueの設定 & pktgenで出力内容を可変
これまでの構成を振り返りながら、PMDスレッド数やQueueの構成を変えることで、どのようにスループットが変化するか見てみましょう。pktgenで送信パケットの宛先IPを分散する方法やパケットサイズを変える方法も紹介します。
#4 DPDKベースのパケットジェネレータpktgen
これまでは、testpmdを使って2台のホスト間で循環的にパケットを転送きましたが、今回はpktgenというパケットジェネレータを使っていろいろなパターンのパケットを送信できるようにします。