SDN の基礎: ネットワークのプログラマビリティ
ネットワーク・エンジニアは通常、コマンドライン・インターフェースかグラフィカル・ユーザー・インターフェースを使用してネットワーク・デバイスを設定します。この作業方法は一般的ですが、いくつかの問題があります。複雑なネットワーク・コンフィギュレーションを実装する場合、エンジニアは複数の異なるネットワーク・デバイスを個別にコンフィギュレーションする必要があります。このプロセスは時間がかかり、面倒で、エラーが発生しやすいものです。システム管理者が作業を簡素化するために使用できる自動化ツールは数多くあります。単純なネットワーク管理プロトコルは問題とは程遠いものの、ネットワーク・エンジニアは、タスク割り当てを処理できる予測可能な管理ツールを持っていませんでした。
ネットワーク・プログラマビリティは、アプリケーション・プログラミング・インターフェイスを提供することによって、プログラミング言語を通じてネットワーク機器に強力なプログラミング命令を送信するという本来の慣習を変革することを目的としています。このようなAPIの使用は、ネットワークエンジニアがCLIを送信することによってネットワーク配布を達成する必要がなく、ネットワークプログラミングをサポートするいくつかのツールによって達成されることを意味します。以下はその例です:
ネットワーク・エンジニアは、スクリプトを使用して自動割り当てを作成したり、ネットワーク統計を収集することができます。APIは、より豊富な機能を提供し、エンジニアがコラボレーションできるエコシステムを構築することができます。
オーケストレーション・ツールは、ネットワーク配信タスクと、ビジネス・アプリケーションの開発に使用されるその他のタスクを統合することができます。
ウェブアプリケーションは、中央コントローラーのプラグインとして機能し、ネットワーク環境に機能を追加することができます。
多くのネットワーキングベンダーは、自社のネットワーキングハードウェアの機能をフルに活用できるカスタムAPIの開発に力を入れてきました。Cisco の onePK は初期に API ライブラリを提供し、IOS、IOS-XR、NX-OS を実行する様々な Cisco ネットワーキング・ハードウェアのプログラミングを可能にしました。JuniperのJunosは常にXML APIを持っており、CLIでさえXMLコードを生成し、それを基礎となるOSに送信します。
ネットワーク・プログラマビリティに言及する場合、OpenFlow に触れることは避けられません。OpenFlow は Open Networking Alliance のメンバーによる着実なサポートと開発により、中央コントローラを使用したネットワーク・プログラミングの主要なアプローチとなっています。OpenFlow はベンダーに依存しない名称であり、ネットワーク・スイッチをプログラムで制御する方法を説明しています。OpenFlow は様々なマッチング条件を使用して特定のフローを識別し、それらのフローに対して多くの処理を実行します。ネットワーク・トポロジー全体の情報を持つ OpenFlow セントラル・コントローラーは、全てのネットワーク・スイッチ上でこの動作をプログラム的に実装することができます。
オープンソースの OpenFlow コントローラには Beacon や FloodLight があり、スイッチング製品で OpenFlow をサポートしているネットワークベンダには HP、Juniper、Pica8、Cisco などがあります。OpenFlow は概念的には大きなものですが、OpenFlow のオペレーションはしばしばネットワークチップセットと互換性がないため、ベンダーによって "OpenFlow の互換性" に異なる問題が発生するため、規模や互換性の問題が発生しています。その結果、OpenFlow の将来は不透明です。





