シナプス技術者ブログ

シナプスの技術者公式ブログ。インターネットで、鹿児島の毎日を笑顔にします。

Juniper MX204を触ってみました

技術部ネットワーク課の若松です。

これまでシナプスではCisco社製とヤマハ社製のルータ/スイッチを触る機会が多かったのですが、この度Juniper(ジュニパーネットワークス)社のMX204を触らせていただく機会に恵まれました。 簡単ですが、製品と設定について紹介させていただきます。

MX204とは

詳細についてはメーカサイトに譲りますが、1Gbps/10Gbps兼用のポートが8つ、40Gbps/100Gbps兼用のポートが4つ実装されており、最大スループット400Gbpsという高性能の割にコンパクトな1Uサイズのルータです。 個人的には"なかなかイイ!"と思います。

JunOSとは

JunOS(ジュノス)とは、Juniper社製のルータ/スイッチで稼働するOSでFreeBSDをベースに開発されております。

基本的な設定

3つのモード

JunOSでは、シェルコマンドモード、CLIオペレーションモード、CLIコンフィグレーションモードの3つの操作モードがあります。 シェルコマンドモードでは、FreeBSDのコマンドなども実行可能です。

CLIオペレーションモードではルータ/スイッチの状態を確認する際に使用し、CLIコンフィグレーションモードでは、実際の設定が可能です。 それぞれのモードに切り替えは以下の通りです。

f:id:synapse-wakamatsu:20210526173106p:plain

例えば、CLIオペレーションモードからCLIコンフィグレーションモードに切り替えるには、configure と入力します。

root> configure
Entering configuration mode

[edit]
root#

[edit]のあとのプロンプトが > から # になりました。

逆ににCLIコンフィグレーションモードからCLIオペレーションモードに切り替えるにはquit か exit と入力します。

root# exit
Exiting configuration mode

root>

プロンプトが # から > に戻りました。

使えるインターフェース名の確認

ここから簡単な設定をしてみます。 まずは、インターフェースにIPv4アドレスを設定しようと思ったのですが、当初使えるインターフェース名が分かりませんでした。 インターフェース名は、CLIオペレーションモードで show interfaces terse を実行すればよいということが分かりました。

root> show interfaces terse
Interface               Admin Link Proto    Local                 Remote
(途中略)
xe-0/0/0:0              up    down
xe-0/0/0:0.16386        up    down
xe-0/0/0:1              up    down
xe-0/0/0:1.16386        up    down
xe-0/0/0:2              up    down
xe-0/0/0:2.16386        up    down
(途中略)
xe-0/1/0                up    down
xe-0/1/0.16386          up    down
xe-0/1/1                up    down
xe-0/1/1.16386          up    down
xe-0/1/2                up    down
xe-0/1/2.16386          up    down
xe-0/1/3                up    down
xe-0/1/3.16386          up    down
(途中略)

IPv4アドレスの設定

次に xe-0/1/0 にIPv4アドレスを設定してみます。

root> configure               CLIコンフィグレーションモードへ移行
Entering configuration mode

[edit]
root# set interfaces xe-0/1/0 unit 0 family inet address 192.168.0.1/24

[edit]
root#

IPv4アドレス設定の際にご注意いただきたいのは、IPv4アドレスを間違ってしまった場合、正しいIPv4アドレスを再度入れたとしても誤ったほうも残ってしまう(自動的に複数のIPv4アドレスが割り当てられた状態になる)ということです。 正しいIPv4を設定するには、

root# delete interfaces xe-0/1/0 unit 0 family inet address <誤って設定したIPv4アドレス>

とdeleteコマンドで一旦削除するか

root# rename interfaces xe-0/1/0 unit 0 family inet address <正しい\Pv4アドレス>

というように rename コマンドで再設定します。

変更箇所の表示

コンフィグレーションの変更箇所(差分)のみの表示をするには show | compare を実行します。

root# show | compare
[edit interfaces]
+   xe-0/1/0 {
+       unit 0 {
+           family inet {
+               address 202.208.178.210/30;
+           }
+       }
+   }

[edit]

xe0/1/0 の変更箇所が表示されました。 追加された部分の先頭に + が表示されています。

もし設定削除した場合は先頭に - が表示されます。

コンフィグレーションの表示

現在のコンフィグレーション全体を表示するには show コマンドを実行します。 コンフィグレーションはカッコで階層表示されます。 また、表示される内容は Candidate(候補)コンフィグレーションです。

root# show
## Last changed: 2021-05-26 10:00:53 UTC
version 19.4R3.11;
system {
(途中略)
}
interfaces {
    xe-0/1/0 {
        unit 0 {
            family inet {
                address 192.168.0.1/24;
            }
        }
    }
    fxp0 {
        unit 0 {
            family inet {
                dhcp {
                    vendor-id Juniper-mx204-BK207;
                }
            }
        }
    }
}

[edit]

また、CLIオペレーションモードでshow configuration コマンドを実行することで同様の確認が可能です。

設定の有効化

CLIコンフィグレーションモードで表示されたコンフィグレーションはCiscoやヤマハと違いすぐには有効化(反映)されません。

設定の有効化

設定の有効化には、commit コマンドを使用します。 commitコマンドには以下のようなオプションがあります。

コマンド(オプション) 説明
commit and-quit commit後にコンフィグレーションモードを抜ける
commit at <TIME> 指定時刻にcommitする
commit check 設定を有効化せず、チェックのみ行う
commit comment 設定にコメントを付ける
commit confirmed <Minutes> 指定した時間にのち、commit前の状態に戻す

なお、commit confirmed コマンドを使用すれば、一旦Candidateコンフィグレーションの内容を有効化しますが、設定時間内に再度commitコマンドが入力されない場合、自動的にcommit前の状態に戻ります。 このコマンドは遠隔地のルータを設定変更する時に、設定誤りなどでリモートログインできなくなった場合に備える意味で大変有用だと思います。 とりあえず、今回は commit と入力し、有効化しました。

root# commit
commit complete

[edit]

set形式でのコンフィグレーションの表示

CLIオペレーションモードで、set configration | display set と入力すると、実際に設定をする際の形式(set ~)でも表示できます。

root> show configuration | display set
set version 19.4R3.11
set system syslog user * any emergency
set system syslog file messages any notice
set system syslog file messages authorization info
set system syslog file interactive-commands interactive-commands any
(途中略)
set interfaces xe-0/1/0 unit 0 family inet address 192.168.0.1/24
set interfaces fxp0 unit 0 family inet dhcp vendor-id Juniper-mx204-BK207

この形式は作業履歴を残したり、差分を確認する際に大変有用だと思います。

インターフェース状態の確認

インターフェースにIPv4アドレスも割り当てたことですし、光ケーブルを接続し show interfaces xe-0/1/0コマンドでインターフェースがアップ状態になっているか確認してみます。

root> show interfaces xe-0/1/0
Physical interface: xe-0/1/0, Enabled, Physical link is Up
  Interface index: 165, SNMP ifIndex: 559
  Link-level type: Ethernet, MTU: 1514, MRU: 1522, LAN-PHY mode, Speed: 10Gbps,
  BPDU Error: None, Loop Detect PDU Error: None, MAC-REWRITE Error: None,
  Loopback: None, Source filtering: Disabled, Flow control: Enabled,
  Speed Configuration: Auto
  Pad to minimum frame size: Disabled
  Device flags   : Present Running
  Interface flags: SNMP-Traps Internal: 0x4000
  Link flags     : None
  CoS queues     : 8 supported, 8 maximum usable queues
  Schedulers     : 0
  Current address: e4:fc:82:45:4c:2f, Hardware address: e4:fc:82:45:4c:2f
  Last flapped   : 2021-05-26 08:57:01 UTC (01:45:02 ago)
  Input rate     : 0 bps (0 pps)
  Output rate    : 0 bps (0 pps)
  Active alarms  : None
  Active defects : None
  PCS statistics                      Seconds
    Bit errors                             2
    Errored blocks                         2
  Interface transmit statistics: Disabled

  Logical interface xe-0/1/0.0 (Index 99) (SNMP ifIndex 575)
    Flags: Up SNMP-Traps 0x4004000 Encapsulation: ENET2
    Input packets : 513
    Output packets: 2
    Protocol inet, MTU: 1500
    Max nh cache: 100000, New hold nh limit: 100000, Curr nh cnt: 0,
    Curr new hold cnt: 0, NH drop cnt: 0
      Flags: Sendbcast-pkt-to-re
      Addresses, Flags: Is-Default Is-Preferred Is-Primary
        Destination: 192.168.0/24, Local: 192.168.0.1, Broadcast: 192.168.0.255
    Protocol multiservice, MTU: Unlimited
      Flags: Is-Primary

Physical link is Upと、アップしていることが分かります。

対向側の機器(192.168.0.2)へpingしてみます。

root> ping count 5 192.168.0.2
PING 192.168.0.2 (192.168.0.2): 56 data bytes
64 bytes from 192.168.0.2: icmp_seq=0 ttl=255 time=0.751 ms
64 bytes from 192.168.0.2: icmp_seq=1 ttl=255 time=0.593 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=255 time=0.586 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttl=255 time=0.522 ms
64 bytes from 192.168.0.2: icmp_seq=4 ttl=255 time=0.496 ms

--- 192.168.0.2 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.496/0.590/0.751/0.089 ms

とりあえずうまく行ったようです。

感想

短時間触ってみましたが、ついついCiscoのコマンドを入れてしまうなど、慣れが必要な面もありました。 しかし、今まで触ったことがない機器に触れるのは楽しいものですね。 気分としては今まで乗ったことが無い車に乗るような感じです。

今後もリンクアグリゲーションやTAG-VLAN(802.1Q)、ダイナミックルーティング(OSPF/BGP4)や、IPv6回りも検証を進めていきたいと思います。