クラウド雑技団物理担当の、cloudpack津村です。

SRXシリーズを構築して早n台目、junos界ではVLANのインターフェース権が上がっていてなんでも構成できるので、これはこれで好きなプロダクトです。
あと、中身がFreeBSDというのも良いですよね!!!

Juniper SRXはスイッチングできる!

Juniper SRXシリーズを初めて触った頃、実質L2スイッチとしての構成も可能という事を知り驚いた記憶があります。(遠い目)
さて、今日はとある案件でJuniper SRX100のポートを冗長する設定を調べたところ、思ったよりハマったので、エントリとしてまとめます。

Juniper SRXシリーズは、UTMの箱でありながら、LACP(リンクアグリゲーション・CiscoではPortChannel)を構成することが可能です。
しかし、サンプルコンフィグは多々上がっていますが、EXシリーズ(L2/L3 SW)との差異があまりにも激しく、サンプルコンフィグがそのままでは動かなかった事と、日本語のドキュメントが探した限りありませんでした。

LACPを使うと良いこと

LACPを使う事により、複数のイーサポートを1つの仮想インターフェースとして纏めて使うことが可能です。
これにより、2つのメリットがあります。
1つは、パケットがバランジングされる事により、実質帯域が増えることです。しかし、スイッチの実装によっては、上手く均等にバランジングされない場合もあります。
もう1つは、対障害性が向上します。ケーブルが抜かれた瞬間に数パケットロストする場合がありますが、TCP/IPの場合再送により補完されます。

今回は、後者の恩恵を得る為の構成です。
SRX1台とスイッチ1台を直結するだけの構成ですが、ケーブルのメンテナンス時にサービスをダウンさせる事なくメンテナンス可能な為、オススメな構成です。

ラボ構成

01

ターゲットは、Juniper SRX100h3です。junosバージョンは以下の通りです。
version 12.1X44-D35.5;

次に、LACPの対向スイッチとして、Cisco Catalyst2940を構成しました。
8Port+1Portの、小さくてかわいいCatalystです。しかし、動作しているIOSはCatalyst2950シリーズ相当のものが動作しています。
Catalystに接続したOSXからICMPパケットを投げ続け、LACPのインターフェースを抜栓・挿線し、通信が自動で復旧する事を確認します。

SRXの設定

以下が対象となるConfigです。
fe-0/0/6, fe-0/0/7を対象のインターフェースとして設定しています。

chassis {
    aggregated-devices {
        ethernet {
            device-count 1;
        }
    }
    cluster {
        redundancy-group 1 {
            node 0 priority 100;
            node 1 priority 100;
        }
    }
}
interfaces {
    fe-0/0/6 {
        fastether-options {
            redundant-parent reth1;
            802.3ad ae0;
        }
        unit 0 {
            family ethernet-switching;
        }
    }
    fe-0/0/7 {
        fastether-options {
            redundant-parent reth1;
            802.3ad ae0;
        }
        unit 0 {
            family ethernet-switching;
        }
    }
    ae0 {
        unit 0 {
            family ethernet-switching {
                vlan {
                    members vlan-trust;
                }
            }
        }
    }
    reth1 {
        redundant-ether-options {
            redundancy-group 1;
            minimum-links 1;
            lacp {
                active;
                periodic fast;
            }
        }
    }
}

まず、chassis内でaggregated-devicesとclusterを構成します。仮想ポートが1つの場合、このままでOKです。
(環境に応じて適宜修正してください。)
次に、interfaceにて仮想ポートとの対応付けを記述します。

ここで注意点があり、「fastether-options」「gigether-options」といったように、物理インターフェースの種類によりコマンドが変化します。
また、物理インターフェースにVLANやIPの設定がある場合は削除してください。
ここでは、ae0とreth1という仮想インターフェースを定義しています。

次に、ae0という仮想インターフェースにIPやVLANを定義します。
ここではvlan-trustというデフォルトのVLANを定義しています。

最後に、LACPのパラメータをインターフェースreth1に定義します。

Catalystの設定

対向のCatalystは、以下のConfigで動作しています。

Current configuration : 845 bytes
!
version 12.1
interface Port-channel1
!
interface FastEthernet0/1
 channel-group 1 mode active
!
interface FastEthernet0/2
 channel-group 1 mode active
!

こちらについての説明は割愛します。(ナレッジ多いので…)

参考ドキュメント

本ラボ作業にあたり、以下のオンラインドキュメントを参考にしました。

SRXシリーズ サービス・ゲートウェイ データシート
http://www.juniper.net/jp/jp/local/pdf/datasheets/1000281-jp.pdf

Link aggregation (LACP) supported/non-supported configurations on SRX and EX
http://kb.juniper.net/InfoCenter/index?page=content&id=KB22474

Example: Configuring Chassis Cluster Redundant Ethernet Interfaces
http://www.juniper.net/techpubs/en_US/junos12.1/topics/example/chassis-cluster-redundant-ethernet-interface-configuring-cli.html#jd0e438

The Joy of SRX – Fun With Redundancy
http://lamejournal.com/2013/08/30/the-joy-of-srx-fun-with-redundancy/

JUNOSサンプルコンフィグ(EX編) Link Aggregation
http://www.hs-juniperproducts.jp/guide/sample_config/ex/linkaggregation.html

EtherChannel(LACP)
http://www.ccstudy.org/study/switching/eclacp/eclacp.html

追記09.12

元Juniperの友人がConfigを教えてくれました。
早く言ってよ〜www

interfaces {
    fe-0/0/6 {
        fastether-options {
            802.3ad ae0;
        }
    }
    fe-0/0/7 {
        fastether-options {
            802.3ad ae0;
        }
    }
    ae0 {
        aggregated-ether-options {
            lacp {
                active;
                periodic fast;
            }
        }
        unit 0 {
            family ethernet-switching {
                vlan {
                    members vlan-trust;
                }
            }
        }
    }
}

元記事は、こちらです。
【みからぼナレッジ】Juniper SRX100でポートをL2冗長(LACP)する