GNS3 のインストールは、こちら を参照してください。
GNS3 の初期設定は、こちら を参照してください。
IEWB-RS-VOL2-V5 については、こちら を参照してください。
Internetwork Expert のワークブックには、Dynamips エディションがあります。
私は、R&S Dynamips Lab Workbook v4.1 Part 1 を購入しました。ここでは、Ubuntu にインストールした GNS3 でワークブックを使用する方法を説明します。なお、Windows で利用する場合は、はっとさんのサイト が分かり易いと思います。
仮想ラボの準備
下記のスクリプトを "setup_iewb.sh" というファイル名で保存します。
#! /bin/bash# iewb-rs-dyn.v4.10 のラボを GNS3 用にセットアップするスクリプトです。# 使用する IOS イメージのパス# オリジナルの設定では、「c3640-jk9o3s-mz.123-14.T7.bin (12.3(14)T7, 3640, ENTERPRISE/FW/IDS PLUS IPSEC 3DES)」を使用しているので、3640 の IOS が使用できれば一番よいです。# NM-16ESW (Ethernet switch module, 16 ports) が使えるプラットフォームを選ぶ必要があります。# Dynagen Tutorial (Hardware Currently Emulated)# http://dynagen.org/tutorial.htm#_Toc193248012# で、使えるプラットフォームを確認します。# 3660 などは、slot 0 で使えるモジュールが固定なので、仮想ルータのインタフェースの設定を変更する必要があります。IOSIAMGE='/var/images/c3640.image'# DRAM の容量# Cisco Feature Navigator# http://tools.cisco.com/ITDIT/CFN/Dispatch?act=rlsSelect&task=search&searchby=software# で DRAM の容量を調べることができます。DRAM='128'# IDLEPC 値IDLEPC='0x12345678'# 作業用ディレクトリWORKDIR="$PWD/iewb-rs-dyn.v4.10"# トポロジー ダウンロード URL# Internetwork Expert のサイト# http://www.internetworkexpert.com/resources/iosonpc.htm# [Click here to download the Internetwork Expert Topologies for Dynagen]# のリンクを指定します。TOPO_URL='http://www.internetworkexpert.com/downloads/internetwork.expert.topologies.zip'# 初期設定ファイル ダウンロード URL# Member Site にサインインします。# http://members.internetworkexpert.com/# [R&S Dynamips Lab Workbook v4.1 Part 1] をクリックします。# [IEWB-RS-DYN-EL-1 Initial Configs] のリンクを指定します。INITCONF_URL=http://(秘密)/iewb-rs-dyn.v4.10.initial.configs.zip# トポロジーを含む ZIP ファイルTOPO_ZIP="$WORKDIR/internetwork.expert.topologies.zip"# 初期設定ファイルを含む ZIP ファイルINITCONF_ZIP="$WORKDIR/iewb-rs-dyn.v4.10.initial.configs.zip"# トポロジーを展開後にできる sample_labs/internetworkexpert ディレクトリの位置SAMPLEDIR="$WORKDIR/sample_labs/internetworkexpert"# Network File のファイル名NETWORKFILE="$SAMPLEDIR/ine.routing.and.switching.topology.4.01.net"# 引数が与えられていなければ、使用方法を表示して終了します。if [ -z "$2" ]; thenecho "Usage: $0 <仮想ラボを設置するディレクトリ> <ラボの番号>"exit 1fi# 与えられた引数を仮想ラボを設置するディレクトリに設定します。LABDIR="$1"# ラボの番号を設定します。LABNO="$2"# 作業用ディレクトリを作成します。[ -d "$WORKDIR" ] || mkdir "$WORKDIR"# 作業用ディレクトリに移動します。cd "$WORKDIR"# トポロジーをダウンロードします。[ -f "$TOPO_ZIP" ] || wget "$TOPO_URL"# 初期設定ファイルをダウンロードします。[ -f "$INITCONF_ZIP" ] || wget "$INITCONF_URL"# トポロジーを含む ZIP ファイルを展開します。[ -d "$SAMPLEDIR" ] || unzip "$TOPO_ZIP"# 初期設定ファイルを含む ZIP ファイルを展開します。[ -f "$WORKDIR/iewb-rs-dyn.v4.lab1.rack1r1.txt" ] || unzip "$INITCONF_ZIP"# 仮想ラボを設置するディレクトリを作成します。[ -d "$LABDIR" ] || mkdir -p "$LABDIR"# Network File を lab.net として仮想ラボを設置するディレクトリにコピーします。cp "$NETWORKFILE" "$LABDIR/lab.net"# 仮想ルータの設定ファイルを保存するディレクトリを作成します。[ -d "$LABDIR/lab_configs" ] || mkdir "$LABDIR/lab_configs"# NVRAM などを保存するディレクトリ (workingdir) を作成します。[ -d "$LABDIR/lab_working" ] || mkdir "$LABDIR/lab_working"# 仮想ルータ BB1~BB3 の初期設定ファイルを設置する。for f in "$SAMPLEDIR/initial.configs"/BB?.initial.config.txt; docp "$f" "$LABDIR/lab_configs/"done# 仮想ルータ R1~R6、SW1~SW4 の初期設定ファイルを設置する。for f in "$WORKDIR"/*.lab$LABNO.*.txt; docp "$f" "$LABDIR/lab_configs/"donefor i in `seq 1 6`; domv "$LABDIR/lab_configs"/*.rack1r$i.txt \"$LABDIR/lab_configs/R$i.initial.config.txt"donefor i in `seq 1 4`; domv "$LABDIR/lab_configs"/*.rack1sw$i.txt \"$LABDIR/lab_configs/SW$i.initial.config.txt"done# Network File (lab.net) の改行を CRLF から LF に変換します。# また、コメント行、空行を削除します。perl -pi -e 's/\s+$/\n/' "$LABDIR/lab.net"perl -ni -e 's/\s*#.*//; print unless (/^\s*$/)' "$LABDIR/lab.net"# "image =" に、使用する IOS イメージのパスを設定します。perl -pi -e "s#image =.*#image = $IOSIAMGE#" "$LABDIR/lab.net"# "ram = " に DRAM の容量を設定します。perl -pi -e "s/ram =.*/ram = $DRAM/" "$LABDIR/lab.net"# "idlepc =" に使用する IOS イメージに対応する idlepc 値を設定します。perl -pi -e "s/idlepc =.*/idlepc = $IDLEPC/" "$LABDIR/lab.net"# "workingdir =" に NVRAM などを保存するディレクトリを設定します。perl -pi -e "s#workingdir =.*#workingdir = $LABDIR/lab_working#" \"$LABDIR/lab.net"# "cnfg =" に仮想ルータの設定ファイルのパスを設定します。perl -pi -e "s#cnfg =.*initial.configs\\\\#cnfg = $LABDIR/lab_configs/#" \"$LABDIR/lab.net"# メモリの使用方法を最適化します。# 参考: Dynagen Tutorial (Memory Usage Optimizations)# http://dynagen.org/tutorial.htm#_Toc193248009# 既定値は、mmap = true, ghostios = false, sparsemem = false です。# 実メモリが十分ある場合には、mmap = false, ghostios = false にすると効率が良いようです。# 逆に実メモリが少ない場合には、mmap = true, ghostios = true にしましょう。# sparsemem は、dynamips の1プロセス当たりの仮想ルータを多くする時には、true にする必要があります。perl -pi -e 's/mmap =.*/mmap = false\n ghostios = false/' "$LABDIR/lab.net"# TermServ を使用せずに、GNU Sreen で仮想ルータのコンソールを切り替えるので、# [[Router TermServ]] のセクションが不要となります。削除します。perl -ni -e 'print $_ unless (/\[\[Router TermServ/ .. /cnfg =.*RSTermServ/)' \"$LABDIR/lab.net"# 仮想ルータへコンソール接続するためのスクリプトを生成します。cat <<'EOF' >"$LABDIR/console.sh"#! /bin/bashrouters=(EOFperl -ne 'print " \"$1\"\n" if (/\[\[router (\w+)/i or /console = (\d+)/i)' \"$LABDIR/lab.net" >>"$LABDIR/console.sh"cat <<'EOF' >>"$LABDIR/console.sh")for ((i = 0; i < ${#routers[*]}; i = i + 2)); doscreen -t ${routers[$i]} \telnet localhost ${routers[$(($i + 1))]} >/dev/null 2>&1sleep 1doneEOF# console.sh に実行権限を設定します。chmod +x "$LABDIR/console.sh"
- スクリプトを実行します。
(例) "/var/labs/iewb/lab1" というディレクトリにラボ番号1 (Lab1) の環境を構築する場合
./setup_iewb.sh /var/labs/iewb/lab1 1
仮想ラボの起動
- GNU Screen を起動します。
$ screen - gns3 の引数に Network File を与えて起動します。
(例) Network File のパスが、/var/labs/iewb/lab1/lab.net の場合
$ gns3 /var/labs/iewb/lab1/lab.net & - ワークスペースでアイコンが重ならないように位置を調整する。
- 仮想ルータを起動する。
GNS3 のコンソール => start /all - console.sh で、仮想ルータのコンソールに接続する。
$ /var/labs/iewb/lab1/console.sh - 各仮想ルータにログインし、running-config を startup-config に保存する。
R1#wr
R2#wr
: - GNS3 の [ネットワークファイルに保存] ボタンを押して、仮想ルータの設定をエクスポートする。設定は、startup-config (NVRAM) からエクスポートされるため、事前に仮想ルータの running-config を startup-config に保存すること。
参考
0 件のコメント:
コメントを投稿