AXP(Application eXtension Platform)

バージョン 22

     

     

    AXPとは

    Cisco Application Extension Platform(AXP)は、アプリケーションの開発、統合、およびホスティングのためのオープンなネットワーク プラットフォームで、シスコ サービス統合型ルータ(ISR)のサービス モジュールとして実装されています。AXP はシスコの「プラットフォームとしてのネットワーク」ビジョンを実現すると同時に、協調型のパートナーシップを可能にし、イノベーションを加速します。

     

    Cisco AXP の機能は次のとおりです。

    • ルータ上で実行されるアプリケーションを開発するための、Linux ベースの統合環境
    • C、Python、Perl、および Java のアプリケーションを実装するための認定ライブラリ(http Web サーバおよび SSH もサポートされます)
    • アプリケーションをネットワークに統合するためのサービス API
    • 複数のアプリケーションをそれぞれ専用の仮想インスタンス内で実行(CPU、メモリ、およびディスクのリソースのセグメント化と確保が可能)

     

    アプリケーションを緊密に Cisco ISR と統合することができます。これは、ホスティングに Cisco AXP を使用する場合の、他のサーバ ベース ソリューションにはない重要な利点です。

     

    AXP1.6で強化あるいは加わった機能

    • CiscoWorks LMS 3.2以上で、Cisco AXP 1.6.1をサポート

     

     

    AXP1.6と1.5の違い

     

    AXP1.5と1.1の違い

    • Add-on パッケージ ・・・ 1.1ではPerlなどAdd-onパッケージで供給されていたものが、1.5では、RPMのサポートにより、RPMパッケージよりインストールをするようになりました。
    • tunnel_root ・・・ 1.5では、ip ssh username によるSSHトンネリングがなくなりました。
    • ゲストOS ・・・ 1.5では、shutdownコマンドがサポートされました。

     

     

    開発システムの要件

    アプリケーションは Linux 環境で開発する必要があります。最小限のシステム要件は、次のとおりです。

    • Intel Pentium 4 CPU 1.8 GHz、40 GB ハードディスク、および 512 MB メモリ
    • C コンパイラ:GNU C Compiler(gcc)Version 3.4.3
    • CentOS 5.2 または 類似のLinux ディストリビューション

     

    AXP 1.1.x については、AXP(Application eXtension Platform)/1.1を参照してください。

    AXP 1.5.x については、AXP(Application eXtension Platform)/1.5を参照してください。


     

     

    開発システムの準備

    ここでは、以下のような開発環境を作成します。

    /opt/AXP
          axp-sdk.1.6.1 ... AXP SDK のインストール先
            keys ............ 開発者証明書のインストール先
            apps ............ アプリケーションの作業先
    /var/ftp ............... anonymous ftp

     

    1. CentOS 5.2 の Linux がインストールしてあるシステムを用意します。(CentOS 5.2での開発が推奨です)
    2. AXP SDKのインストール
      1. a)Cisco Download Softwareからダウンロード
        a-1)Productsを選択
        a-2)Cisco Interfaces and Modulesを選択
        a-3 SRE用)Cisco Services-Ready Engine (SRE) Modulesを選択
            Application Extension Platform for SREを選択
        a-3 AIM/NME用)Cisco Application Extension Platform Modules and Interface Cardsを選択
            Cisco Application Extension Platform Advanced Integration Module 2等を選択
        a-4)Application Extension Platform Software Development Packagesを選択
        a-5)axp-sdk.1.6.1.tar.gz をダウンロードしてください。
        b-1)Cisco Developer Networkからダウンロード
        b-2)axp-sdk.1.6.1.tar.gz をダウンロードしてください。
      2. axp-sdk を解凍します。
        [~]# ls axp*
        axp-sdk.1.6.1.tar.gz
        [~]# cd /opt
        [opt]# mkdir AXP
        [opt]# cd AXP
        [AXP]# tar zxf ~/axp-sdk.1.6.1.tar.gz
      3. パスを設定します。
        [AXP]# export PATH=$PATH:/opt/AXP/axp-sdk.1.6.1/tools
        .bashrcなどで環境変数を自動設定すると作業が便利になります。
    3. 証明書の作成と申請
      VeriSignなどの認証局から X.509 証明書を取得するか、自己署名の X.509 証明書を作成します。ここでは、自己署名の手順を示します。
      1. OpenSSL ツールを使用して、自己署名入りの X.509 証明書を作成します。
        [~]# cd /opt/AXP
        [AXP]# mkdir keys
        [AXP]# cd keys
        [keys]# openssl genrsa -out private.key 1024
        Generating RSA private key, 1024 bit long modulus
        ~省略~
        [keys]# openssl req -new -x509 -days 365 -key private.key -out dev_certificate.sig
        ~省略~
        ※開発者証明書の名前は、dev_certificate.sig とする必要があります。
        ※ISMの場合は、2048ビット長である必要があります。
      2. 証明書の申請を Evaluation Requestより行います。
      3. 自動応答メールが届き、次の指示の記載があります。
      4. 開発者証明書が承認されると、シスコから許可証明書 auth_bundle.sig が返却されます。
      5. auth_bundle.sig を /opt/AXP/keys にコピーします。

    ※ 許可証明書 auth_bundle.sig がないとアプリケーションをAXPにインストールすることができません。

    ※ 証明書の作成についての詳細は、Developer Guide - Packaging the Application - Creating Certificatesを参照してください。

     

     

    AXPプラットフォームの準備

    Cisco ISR 1841、1941、2800、2900、3800、3900 シリーズ サービス統合型ルータの利用

    アプリケーション ランタイム環境ネットワーク モジュール(APPRE)は、ISR ネットワーク モジュール上で動作し、アプリケーションがルータのパフォーマンスに影響を与えるのを防ぐ専用ハードウェア リソースを提供します。APPRE は、標準的な x86 ベースのプロセッサを使用して構築され、標準的な Linux ハードウェア向けに開発されたソリューションのための理想的な環境を提供します。

    また、Cisco Services Ready Engine(SRE)モジュールは、シスコ サービス統合型ルータ第 2 世代向けのルータ ブレードです。シスコ製、サードパーティ製、およびカスタムのアプリケーションをホストする機能を提供します。SRE モジュールには、プロセッサ、ストレージ、ネットワーク インターフェイス、およびメモリが搭載されており、ホスト ルータ リソースとは独立して動作し、最大限の並行ルーティングとアプリケーション パフォーマンスの実現を支援します。

    AXP アプリケーションをホストするために利用できる複数の APPRE モジュールまたはSREモジュールがあります。

    ハードウェア SKUProcessor/MemoryHDD備考
    AIM2-APPRE-104-K9600MHz CPU 512 MBCompact Flash 2GAXP1.5.xのみ
    NME-APPRE-302-K91GHz CPU, 512MB80G3925E,3945EのみAXP1.6サポート
    NME-APPRE-502-K91GHz CPU, 1GB120G3925E,3945EのみAXP1.6サポート
    NME-APPRE-522-K91.4GHz CPU, 2GB160G3925E,3945EのみAXP1.6サポート
    ISM-SRE-300-K91.06 GHz, 512 MBCompact Flash 4GAXP1.5のみ
    SM-SRE-700-K91.86GHz CPU, 2 GB500GAXP1.5.2以上をサポート
    SM-SRE-900-K91.86GHz dual core CPU, 4 GB2x500G (RAID 0,1 support)AXP1.5.2以上をサポート

    詳しくは、Cisco Application eXtension Platform Release Notes を参照ください。

    AXPサービスモジュールの設定については、AXPクイックスタートガイドの「ハードウェアのインストレーション」~「Cisco AXP サービス モジュールの設定」を参照してください。

    手順は、以下のようになります。

    1. IOS CLI を使用して、統合サービスエンジンインターフェイスを設定します。
      ISR# conf t
      ISR(config)# interface Integrated-Service-Engine 1/0 ※ISM/SMの場合は、int ISM 0/0 のようになります。
      ISR(config-if)# ip unnumbered GigabitEthernet0/0
      ISR(config-if)# service-module ip address <AXP側IPアドレス> <ネットマスク>
      ISR(config-if)# service-module ip default-gateway <AXP側GWアドレス>
      ISR(config-if)# no shutdown
      ISR(config-if)# exit
      ISR(config)# ip route <AXP側IPアドレス> 255.255.255.255 Integrated-Service-Engine 1/0
      ISR(config)# end
      ISR# wr
    2. サービスモジュールへセッションを開始します。                         
      ISR# service-module Integrated-Service-Engine 1/0 session ※ISM/SMの場合は、service-module ISM 0/0 session のようになります。
      Trying a.b.c.d, 2066 ... Open
      <enter>
      se-Module>
      これよりAXPサービスモジュール上での作業になります。
    3. AXPサービスモジュールの設定を行います。
      se-Module> config t
      se-Module(config)> hostname AXP
      AXP(config)> int eth0
      AXP(config-interface)> ip address <IPアドレス> <ネットワークマスク>
      AXP(config-interface)> exit
      AXP(config)> ip route 0.0.0.0 0.0.0.0 <GWアドレス>
      AXP(config)> username sysadmin password 0 cisco
      AXP(config)> ip ssh server
      AXP(config)> end
      AXP> wr
      以上で、SSHでAXPにログインすることができるようになります。
      また、他のネットワーク設定については、Application eXtension Platform Networking Application Noteを参考にしてください。
    4. ※ ntp および timezoneの設定
      AXP> conf t
      AXP(config)> ntp server a.b.c.d
      AXP(config)> clock timezone Asia/Tokyo
      AXP(config)> end
      AXP> wr

    add-onのインストールへ進んでください。

     

     

    VMWareイメージの利用

    ISRのない方は、VMWareイメージでエミュレーションすることができます。

    ※ 2010/10現在、最新は1.6.1となっております。
    ※ VMWareイメージでは、一部機能が使えないことがあります。

    1. Cisco Download SoftwareのSoftware Searchに「axp-k9.vmw」と入力し検索します。
    2. axp-k9.vmw.1.6.1.tar.gz をダウンロード・解凍し、axp-k9.vm.vmw.1.6.1.0.vmx でVMWareを起動します。
    3. 初めてVMを起動した場合、ネットワークに関する設定を入力をします。
      ************************************
      ** Service Engine IP Configuration *
      ************************************

      Please enter the IP address of your module: 192.168.1.1
      Please enter the netmask of your module: 255.255.255.0
      Please enter the default gateway for your module: 192.168.1.254

      The following IP configuration is set:
         IP     : 192.168.1.1
         NETMASK: 255.255.255.0
         GATEWAY: 192.168.1.254

      Do you wish to use this configuration (y,n) [n]y
    4. defaulthost という表示になるので、以下のコマンドを入力し、インタフェースを設定します。
      defaulthost# config t
      defaulthost(config)# hostname AXP
      AXP(config)# user sysadmin password 0 cisco
      AXP(config)# ip ssh server
      AXP(config)# end
      AXP# wr mem
      AXP#
      以上で、SSHでAXPにログインすることができるようになります。
      ※ ntp および timezoneの設定
      AXP# conf t
      AXP(config)# ntp server a.b.c.d
      AXP(config)# clock timezone Asia/Tokyo
      AXP(config)# end
      AXP# wr
      AXP# reload

    #add-onVMWare イメージの場合、add-on は、既にインストール済みとなっています。


    add-onのインストール

    add-onをインストールするためには、ftpサーバを用意する必要があります。

    1. ここでは、開発マシンにftpサーバを用意します。
      [~]# mount /media/cdrom
      [~]# rpm -ivh /media/cdrom/CentOS/vsftpd-2.0.5-12.el5.i386.rpm
      [~]# chkconfig vsftpd on
    2. Cisco Download SoftwareのSoftware Searchに「axp-k9.nme.1.6.1」と入力し検索します。※SM/ISMの場合は、axp-k9.sme.1.6.1
    3. axp-k9.nme.1.6.1.tar.gz をダウンロードします。
    4. tarを展開します。
      [~]# cp axp-k9.nme.1.6.1.tar.gz /var/ftp
      [~]# cd /var/ftp
      [ftp]# tar zxf axp-k9.nme.1.6.1.tar.gz
      axp-app-dev.nme.1.6.1.pkg を含め、8個のファイルが解凍されます。
    5. anonymousでftpサーバにログインしファイルがダウンロードできるか確認してください。
    6. add-onをインストールします。
      AXPコンソールにログインします。
      AXP# software install add url ftp://192.168.1.36/axp-app-dev.nme.1.6.1.pkg
    7. しばらくするとAXPが再起動します。
    8. インストールされたパッケージを確認します。
      AXP# show software packages
      Installed Packages:

      - Installer (Installer application) (1.6.1.0)
      - AXP (Virtual Server Development System) (1.6.1)
      - ios_snap (Structured Network API Support) (1.6.1.SNAP_REL_20100225)
      - Core (Service Engine OS Core) (2.6.6.0)
      - Global (Global manifest) (1.6.1)
      - iosapi (IOS CLI API) (1.6.1)
      - AXP Appliance Subsystem (Appliance Based Virtual Server Development System) (1.6.1)
      - ios_mosipc (Cisco Multi-OS IPC support) (1.6.1.OMNI_TAHOE_MOS_20100421)
      - cli_plugin (CLI Plugin bundle to allow custom CLI plugin) (1.6.1)
      - ios_eemclient (IOS EEM Client Library) (EEM_AXP_T_BASE_1_20091204)
      - vserialapi (Remote Serial Device support) (1.6.1)
      - eventapi (IOS Event API) (1.6.1)
      - Bootloader (Primary) (Service Engine Bootloader) (2.1.29)
      - Infrastructure (Service Engine Infrastructure) (2.6.6.0)
      - axpos (AXP Reference OS) (1.6.1)
      - Guest OS Environment (AXP Guest OS Environment (Legacy)) (1.6.1)
      - Bootloader (Secondary) (Service Engine Bootloader) (2.1.29.0)
      - GPL Infrastructure (Service Engine GPL Infrastructure) (2.4.6.0)
      - timezone (Time Zone Definitions) (1.0.2009g.1)
      - nfsclient (NFS Client) (1.6.1)
      - axpsystemapi (AXP standard services(AXP SysInfo, SysOp, CLI API)) (1.6.1)

      Installed Plug-ins:

      - app_dev (Application Debugging Add-on Package) (1.6.1)

      AXP#

      インフラストラクチャアドオン パッケージのコピーは、ポストインストレーション時に仮想インスタンスでインスタンス化されます。インフラストラクチャアドオンパッケージはファイルシステムにありますが、仮想インスタンス間で共有されます。これに対して、サードパーティのアドオンパッケージは、1 つの仮想インスタンス内にサードパーティのアプリケーションが含まれているパッケージです。各サードパーティアプリケーションに、仮想インスタンスが 1 つだけ存在します。SDK には、複数のパッケージをコンパイルして 1 つのバンドルにする、バンドルツールも用意されています。

     

     

     

    アプリケーションの作成

    Hello World

    初めてAXPでプログラムを行う方は、HelloWorldをご覧ください。

    以下の内容について学ぶことができます。

    • AXPアプリケーションの作成手順について
    • コンソールアクセスの作成例
    • パッケージの作成,更新,削除
    • AXPへパッケージのインストール
    • アプリケーションのステータス管理(ウォッチドックスクリプト)

     

    IOS CLI API (旧Cisco IOS Service API)

    IOS CLI API を使うことで、アプリケーションがルータ・スイッチのコンフィグレーションを行うことができます。

     

    AXP CLI API (旧CLI Service API)

    AXP CLI API を使うことで、アプリケーションがホスト(AXP)上のCLI サーバと対話し、コンフィグレーションを行うことができます。

     

    CLI プラグイン

    CLI Plug-in を使うことでアプリケーション固有のコマンドを作成して、Cisco AXP CLI にコマンドを追加します。

     

    AXP SysInfo API

    AXP SysInfo API を使うことで、AXPのシステム情報を得ることができます。

     

    AXP SysOp API

    AXP SysOp API を使うことで、show tech support または install コマンドを実行することができます。

     

    IOS Event API

    IOS Event API を使うことで、ルータのイベントを監視することができます。

     

     

    Tips