はじめに
こんにちは、酸素です。
弊社が本社を構える京都も夏真っ盛りで、セミの鳴き声も聞くようになりました。
関東に住んでいた時よりミンミンゼミの鳴き声が少ない気がするのですが、
東と西で分布の差があったりするのでしょうか...?
余談はさておき、今回は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の設定が行えるとのことなので、そういった検証や学習に使っていきたいです。