LoginSignup
4
1

More than 1 year has passed since last update.

EVE-NG ケーブル接続仕様 変更

Posted at

最近EVE-NGをよく利用しているのですが、GNS3やCisco modeling labs(CML)では当たり前のようにできることでもEVE-NGだとできなかったりしています。その一つとして起動しているノードへのケーブル接続ができない点です。停止ノードから起動ノードへケーブルの描画はできても接続には至りませんし、起動ノードについてはケーブル自体表示されない状態になります。

今回は上記仕様を変更してみたいと思います。(何かしら理由があってこのような仕様になっているかと思いますので、利用の際は十分テストしてからご利用ください。)

1. 環境

OS:Ubuntu 20.04.5 LTS (GNU/Linux 5.17.8-eve-ng-uksm-wg+ x86_64)
Kernel: eve-ng 5.17.8-eve-ng-uksm-wg+
EVE-NG:5.0.1-13(Community Edition)
PHP:7.4

1. デフォルト仕様の確認

では、適当なLAB上にノードを2つとブリッジを1つ起動してみます。今回は1台はArista、もう1台はFortigateVMで起動しました。ブリッジからケーブル結線しますと、下記画面のようになりますが
image.png

画面をリロードするともとに戻っていしまいます。
image.png
では、起動時でもへ接続できるように変更してみます。

2. 起動ノードへの接続変更

EVE-NGへSSH接続してファイルを変更します。5217行目をコメントアウトします。

vim /opt/unetlab/html/themes/default/js/functions.js
5217    if ( linksourcedata['status'] == 2 || linktargetdata['status'] == 2 ) { lab_topology.detach( info.connection ) ; return }

5217   // if ( linksourcedata['status'] == 2 || linktargetdata['status'] == 2 ) { lab_topology.detach( info.connection ) ; return }
:wq

画面をリードし、再度ブリッジから接続してみます。いつも通りの画面が出力されますので、Saveをクリックしみます。
image.png

正しく接続されたようです。
image.png

2. 起動ノードのケーブル接続

次に起動ノードからケーブル接続できるよう、ノードアイコンがHoverされた際にケーブルアイコンが出るように変更します。676行目の.attr('data-status') == 0 から .attr('data-status') != 3 に変更し、画面をリードします。

vim /opt/unetlab/html/themes/default/js/actions.js
676    if ((ROLE == 'admin' || ROLE == 'editor') && LOCK == 0 && ( $(this).attr('data-status') == 0 || $(this).attr('data-status') == undefined ) && !$('#lab-viewport').hasClass('fre     eSelectMode') ) {

676    if ((ROLE == 'admin' || ROLE == 'editor') && LOCK == 0 && ( $(this).attr('data-status') != 3 || $(this).attr('data-status') == undefined ) && !$('#lab-viewport').hasClass('fre     eSelectMode') ) {
:wq

ノードアイコンHover時にケーブルアイコンがでてきました。Fortigateと接続してみます。
image.png

どのポート接続するかの画面も正しく出てきました。Saveしてみます。
image.png

問題なく接続できました。
image.png

ただ、このままでは通信をする事はできません。理由はインタフェースが利用できるようになるまでのプロセスにあります。EVE-NG上のNodeは起動前に他ノードと接続されているインタフェースのみ利用できるようOS上にbridgeインタフェースを作成していきます。逆に起動している状態で接続されたインタフェースについてはOS上にbridgeインタフェースを作成する仕組みが備わっていません。ですので、起動後に接続したインタフェースを利用した通信は行う事が出来ません。

次回はこの辺りの処理ついて、深堀・改善していきいたいと思います。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1