検証などで使えるvJunosルーターをインストールしてみた

酸素
2025-07-23
2025-07-23

はじめに

こんにちは、酸素です。
弊社が本社を構える京都も夏真っ盛りで、セミの鳴き声も聞くようになりました。
関東に住んでいた時よりミンミンゼミの鳴き声が少ない気がするのですが、
東と西で分布の差があったりするのでしょうか...?

余談はさておき、今回はJuniper Networks社のネットワークスイッチに搭載されている、Junos OSを仮想環境で実行できるvJunosを使ってみます。

vJunosとは

前述の通り、vJunosはJuniper Networks社が公式に配布している、
Junos OSをエミュレートできるソリューションです。
公式サイトのイメージをダウンロードすることで、x86アーキテクチャのマシンでVMとして実行できます。

なお、帯域幅の制限などにより、本番環境での利用は難しく、あくまで検証や学習用に利用が想定されているようです。

$ zcat log.[1-9].gz

 

インストール

※2025/7/18時点での最新バージョンである、vJunos-Router 25.2で使用しています
※また、ホストOSはAlmaLinux 9を使用しています

まずは公式サイトからVMイメージとlibvrit用のxmlをダウンロードし、それぞれ適切なディレクトリに配置します。

# ls -l /var/image/
合計 3898312
-rw-r--r--. 1 root root 3991863296  7月 18 10:30 vjunos-rt.qcow2

# ls -l /etc/libvirt/qemu
・・・
-rw-r--r--. 1 root root 1960  7月 18 10:30 vjunos-rt.xml

次に、vJunosルーター用の仮想ネットワークインターフェースを2つ作成します。

# ip link add vjunos-ge-000 type bridge
# ip link add vjunos-ge-001 type bridge
# ip link show
・・・
8: vjunos-ge-000: <broadcast,multicast> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 4e:48:c9:06:fd:ed brd ff:ff:ff:ff:ff:ff
9: vjunos-ge-001: <broadcast,multicast> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 52:f5:3b:88:f2:01 brd ff:ff:ff:ff:ff:ff

また、取得したxmlファイルで、余分な設定を修正、コメントアウトしていきます

 # cd /etc/libvirt/qemu/
# diff vjunos-rt.xml vjunos-rt.xml.org 
30c30
< <emulator>/usr/libexec/qemu-kvm</emulator>
---
> <emulator>/usr/bin/qemu-system-x86_64</emulator>
35a36,40
> <disk device="disk" type="file">
> <driver cache="writeback" name="qemu" type="raw"/>
> <source file="/root/config.img"/>
> <target dev="sda" bus="usb"/>
> </disk>
40c45
< <source dev="eno1" mode="bridge"/>
---
> <source dev="eth0" mode="bridge"/>
46c51
< <source bridge="vjunos-ge-000"/>
---
> <source bridge="ge-000"/>
53c58
< <source bridge="vjunos-ge-001"/>
---
> <source bridge="ge-001"/>
62a68
> <log file="/root/vjunos-sw1.log"/>

ここまでの作業で必要なファイルや設定が揃ったため、早速スタートさせていきます。

# virsh define vjunos-rt.xml
Domain 'vjunos-rt' defined from vjunos-rt.xml

# virsh list --all
 Id   名前         状態
---------------------------------
・・・
 -    vjunos-rt   シャットオフ

# virsh start vjunos-rt
Domain 'vjunos-rt' started

# virsh list --all
 Id   名前           状態
-----------------------------
・・・
 4    vjunos-sw-01   実行中

無事エラーも出ず、起動ができました。
起動したVMには8610ポートへ接続することで入ることができます。

 # telnet localhost 8610
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.


FreeBSD/amd64 (Amnesiac) (ttyu0)
login: root
Last login: Tue Jun 24 15:35:58 on ttyu0

--- JUNOS 25.2R1.9 Kernel 64-bit  JNPR-15.0-20250603.72f4182_buil
root@:~ #

確認

それでは、最後にvJunosルーターにログインし、中身を簡単に確認していきます。

root@:~ # cli
root> show version 
Model: vmx
Family: junos
Junos: 25.2R1.9
・・・

root> show interfaces terse   
Interface               Admin Link Proto    Local                 Remote
ge-0/0/0                up    up
ge-0/0/0.16386          up    up  
lc-0/0/0                up    up
lc-0/0/0.32769          up    up   vpls    
pfe-0/0/0               up    up
pfe-0/0/0.16383         up    up   inet    
                                   inet6   
pfh-0/0/0               up    up
pfh-0/0/0.16383         up    up   inet    
pfh-0/0/0.16384         up    up   inet    
ge-0/0/1                up    up
ge-0/0/1.16386          up    up  
ge-0/0/2                up    down
ge-0/0/2.16386          up    down
ge-0/0/3                up    down
ge-0/0/3.16386          up    down
ge-0/0/4                up    down
ge-0/0/4.16386          up    down
ge-0/0/5                up    down
ge-0/0/5.16386          up    down
ge-0/0/6                up    down
ge-0/0/6.16386          up    down
ge-0/0/7                up    down      
ge-0/0/7.16386          up    down
ge-0/0/8                up    down
ge-0/0/8.16386          up    down
ge-0/0/9                up    down
ge-0/0/9.16386          up    down
・・・

まとめ

無事、vJunosルーターをLinux KVM上で立ち上げ、操作可能なことを確認できました。

vJunosルーターではOSPFなどのBGPの設定が行えるとのことなので、そういった検証や学習に使っていきたいです。