|
|
(81 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | {{Title|VNX (Virtual Networks over X virtualization) v0.14 beta}} | + | {{Title|VNX Installation Guides}} |
| | | |
− | == Installation over Ubuntu 10.04/9.10 == | + | === Requirements === |
| | | |
− | This section describes the procedure for installing VNX over Ubuntu 10.04 or 9.10. Open a root shell window and follow these steps:
| |
| <ul> | | <ul> |
− | | + | <li>Modern Linux distribution (Ubuntu 14.04 or newer recommended)</li> |
− | <li>Install all packages required (basic development, virtualization, perl libraries and auxiliar packages):</li> | + | <li>Processor with '''virtualization support''' (only needed if you use KVM virtual machines; not needed if you only use User-Mode-Linux or dynamips). You can check whether your processor has support for virtualization extensions using:</li> |
− | apt-get update
| |
− | apt-get install build-essential qemu-kvm libvirt-bin vlan xterm \
| |
− | bridge-utils screen virt-manager virt-viewer libxml-checker-perl \
| |
− | libxml-parser-perl libnetaddr-ip-perl libnet-pcap-perl \
| |
− | libnet-ipv6addr-perl liberror-perl libexception-class-perl \
| |
− | uml-utilities libxml-libxml-perl libxml2-dev libgnutls-dev \
| |
− | libdevmapper-dev libterm-readline-perl-perl libnet-telnet-perl \
| |
− | libnet-ip-perl libreadonly-perl libmath-round-perl libappconfig-perl \
| |
− | libdbi-perl graphviz libnl-dev genisoimage gnome-terminal libfile-homedir-perl
| |
− | | |
− | <!--Note: for Ubuntu 9.04 change "qemu-kvm" package by "qemu kvm" -->
| |
− | <li>If you use 64 bits version of Ubuntu, install 32 bits compatibility libraries:</li>
| |
− | apt-get install ia32-libs
| |
− | | |
− | <li>Install libvirt 0.8.5:</li> | |
− | /etc/init.d/libvirt-bin stop
| |
− | wget http://libvirt.org/sources/libvirt-0.8.5.tar.gz
| |
− | tar xfvz libvirt-0.8.5.tar.gz
| |
− | cd libvirt-0.8.5
| |
− | ./configure --without-xen --prefix=/usr && make && make install
| |
− | /etc/init.d/libvirt-bin start
| |
− | | |
− | '''NOTE''': VNX should work with libvirt versions from 0.7.5 to 0.8.5 (it has been mainly tested with 0.7.5 and 0.8.5). Note that, although libvirt 0.7.5 is available as a package in Ubuntu 10.04, it has some problems related with the Apparmor profiles configured for libvirt. If you disable Apparmor (with "/etc/init.d/apparmor stop"), VNX will work with libvirt 0.7.5 installed as package, however we recommend to download and compile version 0.8.5 as described above, in order to maintain Apparmor in your system. | |
− |
| |
− | <li>Install Sys::Virt perl module:</li>
| |
| <ul> | | <ul> |
− | <li>For Ubuntu 10.04, just install the libsys-virt-perl package</li> | + | <li>'''kvm-ok''' command if available in your system:</li> |
− | apt-get install libsys-virt-perl
| + | # kvm-ok |
− | <!--
| + | INFO: Your CPU supports KVM extensions |
− | '''IMPORTANT NOTE''': Windows XP virtual machines started with VNX over Ubuntu 9.10 frequently hang when executing commands or with high traffic loads. The problem could be related with virtual network drivers. We are investigating the problem to find a solution. By now, Ubuntu 10.04 is the recomended platform to test VNX. | + | INFO: /dev/kvm exists |
− | -->
| + | KVM acceleration can be used |
− | <li>For Ubuntu 9.10, as Sys::Virt library is not available as a package, install it manually:</li>
| + | <li>Manually, executing the following command:</li> |
− | wget http://search.cpan.org/CPAN/authors/id/D/DA/DANBERR/Sys-Virt-0.2.3.tar.gz | + | egrep '(vmx|svm)' --color=always /proc/cpuinfo |
− | tar xfvz Sys-Virt-0.2.3.tar.gz
| + | If you see the word vmx (for Intel processors) or svm (for AMD processors) in <strong><span style="color:red">red</span></strong>, your processor has virtualization support. |
− | cd Sys-Virt-0.2.3
| |
− | perl Makefile.PL | |
− | make install
| |
− | </ul>
| |
− | | |
− | <li>Install VNX:</li>
| |
− | mkdir /tmp/vnx-update | |
− | cd /tmp/vnx-update
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/vnx-latest.tgz
| |
− | tar xfvz vnx-latest.tgz | |
− | cd vnx-*
| |
− | ./install_vnx
| |
− | | |
− | <li>Create the VNX config file (/etc/vnx.conf). You just can move the sample config file:</li> | |
− | mv /etc/vnx.conf.sample /etc/vnx.conf | |
− | | |
− | <li>Download root file systems from http://idefix.dit.upm.es/download/vnx/filesystems and copy them to /usr/share/vnx/filesystems directory:</li>
| |
− | cd /usr/share/vnx/filesystems
| |
− |
| |
− | # ubuntu server
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_ubuntu-10.10-v02.qcow2.bz2
| |
− | bunzip2 root_fs_ubuntu-10.10-v02.qcow2.bz2
| |
− | ln -s root_fs_ubuntu-10.10-v02.qcow2 root_fs_ubuntu
| |
− |
| |
− | # ubuntu with gui
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_ubuntu-10.10-gui-v01.qcow2.bz2
| |
− | bunzip2 root_fs_ubuntu-10.10-gui-v01.qcow2.bz2
| |
− | ln -s root_fs_ubuntu-10.10-gui-v01.qcow2 root_fs_ubuntu-gui
| |
− |
| |
− | # freebsd server
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_freebsd-8.1-v01.qcow2.bz2
| |
− | bunzip2 root_fs_freebsd-8.1-v01.qcow2.bz2
| |
− | ln -s root_fs_freebsd-8.1-v01.qcow2 root_fs_freebsd
| |
− |
| |
− | # freebsd gui
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_freebsd-8.1-gui-v01.qcow2.bz2
| |
− | bunzip2 root_fs_freebsd-8.1-gui-v01.qcow2.bz2
| |
− | ln -s root_fs_freebsd-8.1-gui-v01.qcow2 root_fs_freebsd-gui
| |
− |
| |
− | # winxp and win7
| |
− | # Sorry! Unfortunately for legal reasons we cannot distribute windows XP
| |
− | # or Windows 7 root filesystems. See VNX documentation for detailed recipes
| |
− | # to create these root fylesystems from scratch
| |
− | | |
− | <li>Additionally, if you plan to use VNUML root filesystem:</li> | |
− | # VNUML root_fs_tutorial and kernel
| |
− | cd /usr/share/vnx/filesystems
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_tutorial-0.6.0.bz2
| |
− | bunzip2 root_fs_tutorial-0.6.0.bz2
| |
− | ln -s root_fs_tutorial-0.6.0 root_fs_tutorial
| |
− | cd /usr/share/vnx/kernels
| |
− | wget -N http://jungla.dit.upm.es/~vnx/download/kernels/linux-2.6.18.1-bb2-xt-4m
| |
− | chmod +x linux-2.6.18.1-bb2-xt-4m
| |
− | ln -s linux-2.6.18.1-bb2-xt-4m linux
| |
| | | |
| + | '''IMPORTANT''': Be aware that virtualization extensions are controled from the BIOS. Even if you see the vmx/svm flag you will have to access your BIOS setup and check that virtualization support is enabled. If you get the following error message: |
| + | FATAL: Error inserting kvm_intel (...): Operation not supported |
| + | it probably means that virtualization support is disabled in your BIOS setup. |
| </ul> | | </ul> |
− | | + | <li>2 Gb of Memory</li> |
− | '''NOTE for Ubuntu 10.04.1''': It seems that an additional package has to be installed:
| + | <li>10 Gb of disk (depends mainly on the number of root-file-systems used)</li> |
− | apt-get install kvm-pxe
| |
− | | |
− | | |
− | === Additional install steps for Dynamips support ===
| |
− | | |
− | * Install Dynamips and Dynagen:
| |
− | apt-get install dynamips dynagen
| |
− | | |
− | * Create a file /etc/init.d/dynamips (taken from http://7200emu.hacki.at/viewtopic.php?t=2198):
| |
− | <pre> | |
− | #!/bin/sh
| |
− | # Start/stop the dynamips program as a daemon.
| |
− | #
| |
− | ### BEGIN INIT INFO
| |
− | # Provides: dynamips
| |
− | # Default-Start: 2 3 4 5
| |
− | # Default-Stop: 0 1 6
| |
− | # Short-Description: Cisco hardware emulator daemon
| |
− | ### END INIT INFO
| |
− | | |
− | DAEMON=/usr/bin/dynamips
| |
− | NAME=dynamips
| |
− | PORT=7200
| |
− | PIDFILE=/var/run/$NAME.pid
| |
− | LOGFILE=/var/log/$NAME.log
| |
− | DESC="Cisco Emulator"
| |
− | SCRIPTNAME=/etc/init.d/$NAME
| |
− | | |
− | test -f $DAEMON || exit 0
| |
− | | |
− | . /lib/lsb/init-functions
| |
− | | |
− | | |
− | case "$1" in
| |
− | start) log_daemon_msg "Starting $DESC " "$NAME"
| |
− | start-stop-daemon --start --chdir /tmp --background --make-pidfile --pidfile $PIDFILE --name $NAME --startas $DAEMON -- -H $PORT -l $LOGFILE
| |
− | log_end_msg $?
| |
− | ;;
| |
− | stop) log_daemon_msg "Stopping $DESC " "$NAME"
| |
− | start-stop-daemon --stop --quiet --pidfile $PIDFILE --name $NAME
| |
− | log_end_msg $?
| |
− | ;;
| |
− | restart) log_daemon_msg "Restarting $DESC " "$NAME"
| |
− | start-stop-daemon --stop --retry 5 --quiet --pidfile $PIDFILE --name $NAME
| |
− | start-stop-daemon --start --chdir /tmp --background --make-pidfile --pidfile $PIDFILE --name $NAME --startas $DAEMON -- -H $PORT -l $LOGFILE
| |
− | log_end_msg $?
| |
− | ;;
| |
− | status)
| |
− | status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
| |
− | #status $NAME
| |
− | #RETVAL=$?
| |
− | ;;
| |
− | *) log_action_msg "Usage: $SCRIPTNAME {start|stop|restart|status}"
| |
− | exit 2
| |
− | ;;
| |
− | esac
| |
− | exit 0
| |
− | | |
− | </pre>
| |
− | | |
− | * Set execution permissions for the script and add it to system start-up:
| |
− | chmod +x /etc/init.d/dynamips
| |
− | update-rc.d dynamips defaults
| |
− | /etc/init.d/dynamips start
| |
− | | |
− | * Download and install cisco IOS image:
| |
− | cd /usr/share/vnx/filesystems
| |
− | # Cisco image
| |
− | wget ... c3640-js-mz.124-19.image
| |
− | ln -s c3640-js-mz.124-19.image c3640
| |
− | | |
− | * Calculate the idle-pc value for your computer following the procedure in http://dynagen.org/tutorial.htm:
| |
− | dynagen /usr/share/vnx/examples/R.net
| |
− | console R # type 'no' to exit the config wizard and wait
| |
− | # for the router to completely start
| |
− | idle-pc get R
| |
− | Once you know the idle-pc value for your system, include it in /etc/vnx.conf file.
| |
− | | |
− | === Additional install steps for Olive support ===
| |
− | | |
− | Several additional steps are needed to support Olive (Juniper) routers in VNX scenarios:
| |
− | | |
− | <ul>
| |
− | | |
− | <!-- Ya no hace falta desde que se usa <qemu:commandline>
| |
− | | |
− | <li>Install a patched version of libvirt 0.8.5 with support to define the bios used by a virtual machine:</li>
| |
− | | |
− | <ul>
| |
− | <li>Copy the following content to a file named libvirt-0.8.5-biosfile.patch (based on http://www.mail-archive.com/libvir-list@redhat.com/msg15952.html):</li> | |
− | <pre>
| |
− | diff -crB libvirt-0.8.5.orig/src/conf/domain_conf.c libvirt-0.8.5/src/conf/domain_conf.c
| |
− | *** libvirt-0.8.5.orig/src/conf/domain_conf.c 2010-11-22 11:38:08.000000000 +0100
| |
− | --- libvirt-0.8.5/src/conf/domain_conf.c 2010-11-22 11:47:41.000000000 +0100
| |
− | ***************
| |
− | *** 4267,4272 ****
| |
− | --- 4267,4274 ----
| |
− | if (node)
| |
− | def->mem.hugepage_backed = 1;
| |
− |
| |
− | + def->biosfile = virXPathString("string(./biosfile[1])", ctxt);
| |
− | +
| |
− | /* Extract other memory tunables */
| |
− | if (virXPathULong("string(./memtune/hard_limit)", ctxt,
| |
− | &def->mem.hard_limit) < 0)
| |
− | diff -crB libvirt-0.8.5.orig/src/conf/domain_conf.h libvirt-0.8.5/src/conf/domain_conf.h
| |
− | *** libvirt-0.8.5.orig/src/conf/domain_conf.h 2010-11-22 11:38:08.000000000 +0100
| |
− | --- libvirt-0.8.5/src/conf/domain_conf.h 2010-11-22 11:40:18.000000000 +0100
| |
− | ***************
| |
− | *** 885,890 ****
| |
− | --- 885,891 ----
| |
− | unsigned long min_guarantee;
| |
− | unsigned long swap_hard_limit;
| |
− | } mem;
| |
− | + char *biosfile;
| |
− | unsigned short vcpus;
| |
− | unsigned short maxvcpus;
| |
− | int cpumasklen;
| |
− | diff -crB libvirt-0.8.5.orig/src/qemu/qemu_conf.c libvirt-0.8.5/src/qemu/qemu_conf.c
| |
− | *** libvirt-0.8.5.orig/src/qemu/qemu_conf.c 2010-11-22 11:38:08.000000000 +0100
| |
− | --- libvirt-0.8.5/src/qemu/qemu_conf.c 2010-11-22 11:41:05.000000000 +0100
| |
− | ***************
| |
− | *** 3984,3989 ****
| |
− | --- 3984,3995 ----
| |
− | ADD_ARG_LIT(emulator);
| |
− | ADD_ARG_LIT("-S");
| |
− |
| |
− | + if(def->biosfile)
| |
− | + {
| |
− | + ADD_ARG_LIT("-bios");
| |
− | + ADD_ARG_LIT(def->biosfile);
| |
− | + }
| |
− | +
| |
− | /* This should *never* be NULL, since we always provide
| |
− | * a machine in the capabilities data for QEMU. So this
| |
− | * check is just here as a safety in case the unexpected
| |
− | </pre>
| |
− | | |
− | <li>Install libvirt 0.8.5 with that patch applied:</li>
| |
− | service libvirt-bin stop
| |
− | wget http://libvirt.org/sources/libvirt-0.8.5.tar.gz
| |
− | tar xfvz libvirt-0.8.5.tar.gz
| |
− | cd libvirt-0.8.5
| |
− | patch -p1 -i ../libvirt-0.8.5-biosfile.patch
| |
− | ./configure --without-xen --prefix=/usr && make && make install
| |
− | service libvirt-bin start
| |
− | | |
| </ul> | | </ul> |
− | -->
| |
− | <li>Download old qemu bios from 0.10.6 version and copy it to /usr/share/qemu directory:</li>
| |
− | wget http://downloads.sourceforge.net/project/kvm/qemu-kvm/0.10.6/qemu-kvm-0.10.6.tar.gz
| |
− | tar xfvz qemu-kvm-0.10.6.tar.gz
| |
− | cp qemu-kvm-0.10.6/pc-bios/bios.bin /usr/share/qemu-kvm/bios-0.10.6.bin
| |
| | | |
− | <!-- Not needed, it seems to work without downloading this drivers
| + | === Installing VNX from Packages === |
− | <li>Download i82559 ROM from the latest qemu versions (Ubuntu 10.04 does not include that ROM in qemu-kvm package):</li>
| |
− | wget http://downloads.sourceforge.net/project/kvm/qemu-kvm/0.12.5/qemu-kvm-0.12.5.tar.gz
| |
− | tar xfvz qemu-kvm-0.12.5.tar.gz
| |
− | cp qemu-kvm-0.12.5/pc-bios/pxe-i82559er.bin /usr/share/qemu-kvm/
| |
− | -->
| |
− | </ul>
| |
| | | |
− | == Installation over Fedora 11 (Draft) ==
| + | Not available yet. |
| | | |
− | Follow this steps to install VNX over Fedora 11:
| + | === Manual Installation === |
− | <ul>
| |
| | | |
− | <li>Install packages:</li>
| + | * [[vnx-install-ubuntu3|Installation of VNX over Ubuntu (13.*, 14.*, 15.*, 16.*, 17.* and 18.*)]] |
− | yum -y groupinstall "Development Tools"
| + | * [[vnx-install-ubuntu2|Installation of VNX over Ubuntu (12.04, 12.10 and 13.04)]] |
− | yum install qemu-kvm libvirt virt-manager virt-viewer perl-XML-LibXML
| + | * [[vnx-install-ubuntu|Installation of VNX over Ubuntu (11.04, 10.10, 10.04 and 9.10)]] |
− | yum install perl-XML-DOM perl-NetAddr-IP perl-Readonly perl-TermReadKey
| + | * [[vnx-install-fedora23|Installation of VNX over Fedora (23)]] |
− | yum install perl-Net-Pcap perl-Net-IPv6Addr perl-Net-Telnet perl-Error
| + | * [[vnx-install-fedora|Installation of VNX over Fedora (11 and 14)]] |
− | yum install perl-Exception-Class perl-ExtUtils-MakeMaker tunctl screen wget
| + | * [[vnx-install-centos|Installation of VNX over CentOS (6.2 and 5.6)]] |
− | yum install libxml2-devel gnutls-devel device-mapper-devel uml_utilities
| + | * [[vnx-install-root_fs|Downloading VNX root filesystems]] |
− | yum install roxterm xterm graphviz perl-AppConfig
| |
− | | |
− | <li>Install libvirt 0.8.5:</li>
| |
− | /etc/init.d/libvirtd stop
| |
− | wget http://libvirt.org/sources/libvirt-0.8.5.tar.gz
| |
− | tar xfvz libvirt-0.8.5.tar.gz
| |
− | cd libvirt-0.8.5
| |
− | ./configure --without-xen --prefix=/usr && make && make install
| |
− | /etc/init.d/libvirtd start
| |
− | | |
− | <li>Install SysVirt manually:</li>
| |
− | wget http://search.cpan.org/CPAN/authors/id/D/DA/DANBERR/Sys-Virt-0.2.4.tar.gz
| |
− | tar xfvz Sys-Virt-0.2.4.tar.gz
| |
− | cd Sys-Virt-0.2.4
| |
− | perl Makefile.PL
| |
− | make install
| |
− | <!--
| |
− | <li> Instalar VNUML sobre Fedora 11 siguiendo la receta en http://www.dit.upm.es/vnumlwiki/index.php/Fedora11</li>
| |
− | | |
− | <li> Instalar paquetes y librerías necesarias:</li>
| |
− | yum install qemu-kvm libvirt virt-manager virt-viewer perl-XML-LibXML perl-Sys-Virt
| |
− | yum -y install bridge-utils readline-devel perl-Module-Build screen expat-devel libpcap-devel
| |
− | yum -y install perl-Net-Pcap perl-NetAddr-IP perl-Net-IPv6Addr perl-XML-DOM perl-Exception-Class
| |
− | yum -y install perl-TermReadKey perl-Error perl-CPAN uml_utilities xterm tunctl
| |
− | | |
− | <li>Install XML::Checker perl library:</li>
| |
− | perl -MCPAN -e shell
| |
− | install XML::Checker
| |
− | -->
| |
− | <li>Add symbolic link for kvm:</li>
| |
− | ln -s /usr/bin/qemu-kvm /usr/bin/kvm
| |
− | | |
− | <li>Install VNX:</li>
| |
− | mkdir /tmp/vnx-update
| |
− | cd /tmp/vnx-update
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/vnx-latest.tgz
| |
− | tar xfvz vnx-latest.tgz
| |
− | cd vnx-*
| |
− | ./install_vnx
| |
− | | |
− | <li>Create the VNX config file (/etc/vnx.conf). You just can move the sample config file:</li>
| |
− | mv /etc/vnx.conf.samble /etc/vnx.conf
| |
− | | |
− | <li>Disable host firewall or, alternatively, configure "tun" type network interfaces as trusted interfaces (System->Firewall->Trusted Interfaces).</li>
| |
− | | |
− | <li>Download root file systems from http://idefix.dit.upm.es/download/vnx/filesystems and copy them to /usr/share/vnx/filesystems directory:</li>
| |
− | cd /usr/share/vnx/filesystems
| |
− |
| |
− | # ubuntu server
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_ubuntu-10.10-v01.qcow2.bz2
| |
− | bunzip2 root_fs_ubuntu-10.10-v01.qcow2.bz2
| |
− | ln -s root_fs_ubuntu-10.10-v01.qcow2 root_fs_ubuntu
| |
− |
| |
− | # ubuntu with gui
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_ubuntu-10.10-gui-v01.qcow2.bz2
| |
− | bunzip2 root_fs_ubuntu-10.10-gui-v01.qcow2.bz2
| |
− | ln -s root_fs_ubuntu-10.10-gui-v01.qcow2 root_fs_ubuntu-gui
| |
− |
| |
− | # freebsd server
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_freebsd-8.1-v01.qcow2.bz2
| |
− | bunzip2 root_fs_freebsd-8.1-v01.qcow2.bz2
| |
− | ln -s root_fs_freebsd-8.1-v01.qcow2 root_fs_freebsd
| |
− |
| |
− | # freebsd gui
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_freebsd-8.1-gui-v01.qcow2.bz2
| |
− | bunzip2 root_fs_freebsd-8.1-gui-v01.qcow2.bz2
| |
− | ln -s root_fs_freebsd-8.1-gui-v01.qcow2 root_fs_freebsd-gui
| |
− |
| |
− | # winxp and win7
| |
− | # Sorry! Unfortunately for legal reasons we cannot distribute windows XP
| |
− | # or Windows 7 root filesystems. See VNX documentation for detailed recipes
| |
− | # to create these root fylesystems from scratch
| |
− | | |
− | </ul>
| |
− | | |
− | === Additional install steps for Dynamips support ===
| |
− | | |
− | * Install Dynamips and Dynagen: | |
− | wget http://downloads.sourceforge.net/project/dyna-gen/dynamips%20Linux%20RPM/0.2.8-RC2/dynamips-0.2.8RC2-1.i386.rpm
| |
− | rpm -i dynamips-0.2.8RC2-1.i386.rpm
| |
− | wget http://downloads.sourceforge.net/project/dyna-gen/dynagen%20source%20_%20Linux/dynagen%200.11.0/dynagen-0.11.0-1.fc9.noarch.rpm
| |
− | rpm -i dynagen-0.11.0-1.fc9.noarch.rpm
| |
− | | |
− | * Set execution permissions for the script and add it to system start-up: | |
− | chkconfig --add dynamips
| |
− | /etc/init.d/dynamips start
| |
− | | |
− | * Download and install cisco IOS image: | |
− | cd /usr/share/vnx/filesystems
| |
− | # Cisco image
| |
− | wget ... c3640-js-mz.124-19.image
| |
− | ln -s c3640-js-mz.124-19.image c3640
| |
− | | |
− | * Calculate the idle-pc value for your computer following the procedure in http://dynagen.org/tutorial.htm: | |
− | dynagen /usr/share/vnx/examples/R.net
| |
− | console R # type 'no' to exit the config wizard and wait
| |
− | # for the router to completely start
| |
− | idle-pc get R
| |
− | Once you know the idle-pc value for your system, include it in /etc/vnx.conf file.
| |
− | | |
− | === Additional install steps for Olive support ===
| |
− | | |
− | Several additional steps are needed to support Olive (Juniper) routers in VNX scenarios:
| |
− | | |
− | <ul>
| |
− | | |
− | <li>Download old qemu bios from 0.10.6 version and copy it to /usr/share/qemu directory:</li>
| |
− | wget http://downloads.sourceforge.net/project/kvm/qemu-kvm/0.10.6/qemu-kvm-0.10.6.tar.gz
| |
− | tar xfvz qemu-kvm-0.10.6.tar.gz
| |
− | cp qemu-kvm-0.10.6/pc-bios/bios.bin /usr/share/qemu/bios-0.10.6.bin
| |
− | | |
− | </ul>
| |
− | | |
− | == Installation over CentOS 5.6(Draft) ==
| |
− | | |
− | Follow this steps to install VNX over CentOS 5.6:
| |
− | <ul>
| |
− | | |
− | <li>Once installation is finished, configure the RPMForge repository following the procedure described [http://wiki.centos.org/AdditionalResources/Repositories/RPMForge?action=show&redirect=Repositories%2FRPMForge#head-5aabf02717d5b6b12d47edbc5811404998926a1b here]:</li>
| |
− | wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.i386.rpm
| |
− | rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
| |
− | rpm -K rpmforge-release-0.5.2-2.el5.rf.*.rpm
| |
− | rpm -i rpmforge-release-0.5.2-2.el5.rf.*.rpm
| |
− | | |
− | <li>Install packages:</li>
| |
− | yum -y groupinstall "Development Tools"
| |
− | yum install qemu-kvm libvirt virt-manager virt-viewer perl-XML-LibXML
| |
− | yum install perl-Net-Telnet
| |
− | yum install tunctl screen wget
| |
− | yum install libxml2-devel gnutls-devel
| |
− | | |
− | yum install perl-Net-Pcap perl-Net-IPv6Addr perl-Error
| |
− | yum install perl-XML-DOM perl-NetAddr-IP perl-Readonly perl-TermReadKey
| |
− | yum install perl-Exception-Class
| |
− | | |
− |
| |
− | yum install graphviz perl-AppConfig
| |
− | | |
− | --- Fallan
| |
− | roxterm
| |
− | yum install device-mapper-devel uml_utilities
| |
− | perl-ExtUtils-MakeMaker
| |
− | | |
− | | |
− | <li>Install uml_utilities manually (I have not found any rpm for CentOS 5):</li>
| |
− | mkdir src
| |
− | cd src
| |
− | wget http://user-mode-linux.sourceforge.net/uml_utilities_20070815.tar.bz2
| |
− | tar xfvj uml_utilities_20070815.tar.bz2
| |
− | cd tools-20070815/
| |
− | yum install readline-devel ncurses-devel fuse-devel
| |
− | make
| |
− | make install
| |
− | | |
− | | |
− | <li>Install libvirt 0.8.5:</li>
| |
− | /etc/init.d/libvirtd stop
| |
− | wget http://libvirt.org/sources/libvirt-0.8.5.tar.gz
| |
− | tar xfvz libvirt-0.8.5.tar.gz
| |
− | cd libvirt-0.8.5
| |
− | ./configure --without-xen --prefix=/usr && make && make install
| |
− | /etc/init.d/libvirtd start
| |
− | | |
− | <li>Install SysVirt manually:</li>
| |
− | wget http://search.cpan.org/CPAN/authors/id/D/DA/DANBERR/Sys-Virt-0.2.4.tar.gz
| |
− | tar xfvz Sys-Virt-0.2.4.tar.gz
| |
− | cd Sys-Virt-0.2.4
| |
− | perl Makefile.PL
| |
− | make install
| |
− | <!--
| |
− | <li> Instalar VNUML sobre Fedora 11 siguiendo la receta en http://www.dit.upm.es/vnumlwiki/index.php/Fedora11</li>
| |
− | | |
− | <li> Instalar paquetes y librerías necesarias:</li>
| |
− | yum install qemu-kvm libvirt virt-manager virt-viewer perl-XML-LibXML perl-Sys-Virt
| |
− | yum -y install bridge-utils readline-devel perl-Module-Build screen expat-devel libpcap-devel
| |
− | yum -y install perl-Net-Pcap perl-NetAddr-IP perl-Net-IPv6Addr perl-XML-DOM perl-Exception-Class
| |
− | yum -y install perl-TermReadKey perl-Error perl-CPAN uml_utilities xterm tunctl
| |
− | | |
− | <li>Install XML::Checker perl library:</li>
| |
− | perl -MCPAN -e shell
| |
− | install XML::Checker
| |
− | -->
| |
− | <li>Add symbolic link for kvm:</li>
| |
− | ln -s /usr/bin/qemu-kvm /usr/bin/kvm
| |
− | | |
− | <li>Install VNX:</li>
| |
− | mkdir /tmp/vnx-update
| |
− | cd /tmp/vnx-update
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/vnx-latest.tgz
| |
− | tar xfvz vnx-latest.tgz
| |
− | cd vnx-*
| |
− | ./install_vnx
| |
− | | |
− | <li>Create the VNX config file (/etc/vnx.conf). You just can move the sample config file:</li>
| |
− | mv /etc/vnx.conf.samble /etc/vnx.conf
| |
− | | |
− | <li>Disable host firewall or, alternatively, configure "tun" type network interfaces as trusted interfaces (System->Firewall->Trusted Interfaces).</li>
| |
− | | |
− | <li>Download root file systems from http://idefix.dit.upm.es/download/vnx/filesystems and copy them to /usr/share/vnx/filesystems directory:</li>
| |
− | cd /usr/share/vnx/filesystems
| |
− |
| |
− | # ubuntu server
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_ubuntu-10.10-v01.qcow2.bz2
| |
− | bunzip2 root_fs_ubuntu-10.10-v01.qcow2.bz2
| |
− | ln -s root_fs_ubuntu-10.10-v01.qcow2 root_fs_ubuntu
| |
− |
| |
− | # ubuntu with gui
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_ubuntu-10.10-gui-v01.qcow2.bz2
| |
− | bunzip2 root_fs_ubuntu-10.10-gui-v01.qcow2.bz2
| |
− | ln -s root_fs_ubuntu-10.10-gui-v01.qcow2 root_fs_ubuntu-gui
| |
− |
| |
− | # freebsd server
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_freebsd-8.1-v01.qcow2.bz2
| |
− | bunzip2 root_fs_freebsd-8.1-v01.qcow2.bz2
| |
− | ln -s root_fs_freebsd-8.1-v01.qcow2 root_fs_freebsd
| |
− |
| |
− | # freebsd gui
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/filesystems/root_fs_freebsd-8.1-gui-v01.qcow2.bz2
| |
− | bunzip2 root_fs_freebsd-8.1-gui-v01.qcow2.bz2
| |
− | ln -s root_fs_freebsd-8.1-gui-v01.qcow2 root_fs_freebsd-gui
| |
− |
| |
− | # winxp and win7
| |
− | # Sorry! Unfortunately for legal reasons we cannot distribute windows XP
| |
− | # or Windows 7 root filesystems. See VNX documentation for detailed recipes
| |
− | # to create these root fylesystems from scratch
| |
− | | |
− | </ul>
| |
− | | |
− | === Additional install steps for Dynamips support ===
| |
− | | |
− | * Install Dynamips and Dynagen: | |
− | wget http://downloads.sourceforge.net/project/dyna-gen/dynamips%20Linux%20RPM/0.2.8-RC2/dynamips-0.2.8RC2-1.i386.rpm
| |
− | rpm -i dynamips-0.2.8RC2-1.i386.rpm
| |
− | wget http://downloads.sourceforge.net/project/dyna-gen/dynagen%20source%20_%20Linux/dynagen%200.11.0/dynagen-0.11.0-1.fc9.noarch.rpm
| |
− | rpm -i dynagen-0.11.0-1.fc9.noarch.rpm
| |
− | | |
− | * Set execution permissions for the script and add it to system start-up:
| |
− | chkconfig --add dynamips
| |
− | /etc/init.d/dynamips start
| |
− | | |
− | * Download and install cisco IOS image:
| |
− | cd /usr/share/vnx/filesystems
| |
− | # Cisco image
| |
− | wget ... c3640-js-mz.124-19.image
| |
− | ln -s c3640-js-mz.124-19.image c3640
| |
− | | |
− | * Calculate the idle-pc value for your computer following the procedure in http://dynagen.org/tutorial.htm:
| |
− | dynagen /usr/share/vnx/examples/R.net
| |
− | console R # type 'no' to exit the config wizard and wait
| |
− | # for the router to completely start
| |
− | idle-pc get R
| |
− | Once you know the idle-pc value for your system, include it in /etc/vnx.conf file.
| |
− | | |
− | === Additional install steps for Olive support ===
| |
− | | |
− | Several additional steps are needed to support Olive (Juniper) routers in VNX scenarios:
| |
− | | |
− | <ul>
| |
− | | |
− | <li>Download old qemu bios from 0.10.6 version and copy it to /usr/share/qemu directory:</li>
| |
− | wget http://downloads.sourceforge.net/project/kvm/qemu-kvm/0.10.6/qemu-kvm-0.10.6.tar.gz
| |
− | tar xfvz qemu-kvm-0.10.6.tar.gz
| |
− | cp qemu-kvm-0.10.6/pc-bios/bios.bin /usr/share/qemu/bios-0.10.6.bin
| |
− | | |
− | </ul>
| |
− | | |
− | | |
− | | |
− | | |
− | | |
− | <!-- COSAS ANTIGUAS -->
| |
− | | |
− | <!--li>Modificar vnumlparser.pl, sustituyendo en la función mode_t la línea en ):</li>
| |
− | !$execution->execute ($bd->get_binaries_path_ref->{"modprobe"} . " tun") or $execution->smartdie ("module tun can not be initialized: $!");
| |
− | | |
− | por:
| |
− | | |
− | if (! -e "/dev/net/tun") {
| |
− | !$execution->execute ($bd->get_binaries_path_ref->{"modprobe"} . " tun") or $execution->smartdie ("module tun can not be initialized: $!");
| |
− | }
| |
− | | |
− | Explicación: el módulo tun se ha integrado en el kernel a partir de la 10.04, por lo que no es necesario cargarlo como hasta ahora mediante "modprobe tun". El cambio anterior simplemente comprueba si existe el dispositivo /dev/net/tun y carga el modulo en caso de que no exista.
| |
− | -->
| |
− | | |
− | | |
− | <!--li>Modificar vnumlparser.pl, sustituyendo en la función mode_t la línea en ):</li>
| |
− | !$execution->execute ($bd->get_binaries_path_ref->{"modprobe"} . " tun") or $execution->smartdie ("module tun can not be initialized: $!");
| |
− | | |
− | por:
| |
− | | |
− | if (! -e "/dev/net/tun") {
| |
− | !$execution->execute ($bd->get_binaries_path_ref->{"modprobe"} . " tun") or $execution->smartdie ("module tun can not be initialized: $!");
| |
− | }
| |
− | | |
− | Explicación: el módulo tun se ha integrado en el kernel a partir de la 10.04, por lo que no es necesario cargarlo como hasta ahora mediante "modprobe tun". El cambio anterior simplemente comprueba si existe el dispositivo /dev/net/tun y carga el modulo en caso de que no exista.
| |
− | -->
| |
− | | |
− | <!--
| |
− | Pasos a seguir para instalar VNX sobre Ubuntu 9.10.
| |
− | | |
− | '''Nota importante''': se han detectado importantes problemas de prestaciones cuando se utiliza el sistema de ficheros ext4 con Ubuntu 9.10. Por ello, y hasta que se localice el origen de dichas ineficiencias, se recomienda utilizar ext3.
| |
− | <ul>
| |
− | | |
− | <li> Instalar Ubuntu 9.10 y actualizar con:</li>
| |
− | apt-get update; apt-get dist-upgrade
| |
− | -->
| |
− | <!--
| |
− | <li>Añadir repositorios VNUML a /etc/apt/sources.lst:</li>
| |
− | echo "deb http://jungla.dit.upm.es/~vnuml/debian binary/" >> /etc/apt/sources.list
| |
− | echo "deb http://jungla.dit.upm.es/~vnuml/debian-testing binary/" >> /etc/apt/sources.list
| |
− | -->
| |
− | <!--
| |
− | <li>Install paquetes básicos de desarrollo, paquetes de virtualización (qemu-kvm, libvirt, vnuml) y librerías y paquetes auxiliares</li>
| |
− | apt-get update
| |
− | apt-get install build-essential qemu-kvm libvirt-bin libvirt-dev \
| |
− | virt-manager virt-viewer vlan xterm bridge-utils screen uml-utilities \
| |
− | libxml-checker-perl libxml-parser-perl libnetaddr-ip-perl libnet-pcap-perl \
| |
− | libnet-ipv6addr-perl liberror-perl libexception-class-perl libxml-libxml-perl \
| |
− | libxml2-dev libgnutls-dev libdevmapper-dev libterm-readline-perl-perl
| |
− | | |
− | | |
− | | |
− | curl vnuml linux-um
| |
− | | |
− | <li>Si se usa la versión de Ubuntu de 64 bits hay que instalar las librerías de compatibilidad de 32 bits:</li>
| |
− | apt-get install ia32-libs
| |
− | | |
− | <li>Install qemu-kvm version 0.12.4 (version 0.11 which comes as apackage in 9.10 provokes hanging problems in Windows virtual machines when executing commands -something relates apparently with mounting cdroms in vms-):</li>
| |
− | wget http://sourceforge.net/projects/kvm/files/qemu-kvm/0.11.1/qemu-kvm-0.11.1.tar.gz/download
| |
− | tar xfvz qemu-kvm-0.11.1.tar.gz
| |
− | cd qemu-kvm-0.11.1
| |
− | ./configure --prefix=/usr && make && make install
| |
− | ln -s /usr/bin/qemu-system-x86_64 /usr/bin/kvm
| |
− | Editar /etc/modules y añadir:
| |
− | kvm
| |
− | kvm_intel
| |
− | | |
− | wget http://sourceforge.net/projects/kvm/files/kvm-kmod/2.6.31.6b/kvm-kmod-2.6.31.6b.tar.bz2/download
| |
− | | |
− | <li>Instalar libvirt 0.8.0:</li>
| |
− | /etc/init.d/libvirt-bin stop
| |
− | wget http://libvirt.org/sources/libvirt-0.8.0.tar.gz
| |
− | tar xfvz libvirt-0.8.0.tar.gz
| |
− | cd libvirt-0.8.0
| |
− | ./configure --prefix=/usr && make && make install
| |
− | /etc/init.d/libvirt-bin start
| |
− | | |
− | <li> Instalar la librería perl de acceso a libvirt (Sys::Virt) desde CPAN (dicha librería no esta disponible como paquete para Ubuntu 9.10):</li>
| |
− | --> | |
− | <!-- wget http://search.cpan.org/CPAN/authors/id/D/DA/DANBERR/Sys-Virt-0.2.2.tar.gz
| |
− | tar xfvz Sys-Virt-0.2.2.tar.gz
| |
− | cd Sys-Virt-0.2.2
| |
− | perl Makefile.PL
| |
− | make install
| |
− | --> | |
− | <!--
| |
− | perl -MCPAN -e "CPAN::Shell->force(qw(install Sys::Virt));"
| |
− | Nota: constestar YES a la pregunta "Would you like me to configure as much as posible automatically?" y a "Is it OK to try to connect to the Internet?"
| |
− | | |
− | <li>Instalar rootfilesystem de VNUML, enlaces del kernel y crear clave rsa:</li>
| |
− | cd /usr/share/vnuml/filesystems
| |
− | wget http://www.dit.upm.es/vnuml/download/scripts/root-fs-installer
| |
− | perl root-fs-installer
| |
− | cd ../kernels
| |
− | ln -s linux-2.6.28.10-1m linux
| |
− | ssh-keygen -t rsa1
| |
− | | |
− | <li>Instalar VNX:</li>
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/vnx-0.12b.tgz
| |
− | tar xfvz vnx-0.12b.tgz
| |
− | cd vnx-0.12b
| |
− | ./install-vnx
| |
− | </ul>
| |
− | | |
− | Notas:
| |
− | http://www.ubuntu-es.org/node/128867
| |
− | 175 wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.32.9/linux-headers-2.6.32-02063209_2.6.32-02063209_all.deb
| |
− | 176 http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.32.9/linux-image-2.6.32-02063209-generic_2.6.32-02063209_amd64.deb
| |
− | 177 wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.32.9/linux-image-2.6.32-02063209-generic_2.6.32-02063209_amd64.deb
| |
− | 178 wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.32.9/linux-headers-2.6.32-02063209-generic_2.6.32-02063209_amd64.deb
| |
− | -->
| |
− | | |
− | <!--
| |
− | === Sobre Ubuntu 8.04 ===
| |
− | | |
− | Pasos a seguir para instalar VNX sobre Ubuntu 8.04:
| |
− | <ul>
| |
− | | |
− | <li> Instalar Ubuntu 8.04 y actualizar con:</li>
| |
− | apt-get update; apt-get dist-upgrade
| |
− | Rearrancar la máquina en caso de que se actualice la versión del kernel.
| |
− | | |
− | <li> Añadir repositorio VNUML a /etc/apt/sources.lst:</li>
| |
− | echo "deb http://jungla.dit.upm.es/~vnuml/debian binary/" >> /etc/apt/sources.list
| |
− | echo "deb http://jungla.dit.upm.es/~vnuml/debian-testing binary/" >> /etc/apt/sources.list
| |
− | | |
− | <li> Instalar paquetes:</li>
| |
− | apt-get update
| |
− | apt-get install virt-manager virt-viewer build-essential \
| |
− | libxml-libxml-perl vncviewer vlan xterm bridge-utils screen \
| |
− | curl vnuml linux-um libterm-readline-perl-perl zlib-bin zlib1g-dev \
| |
− | libxen3-dev libxml2-dev libgnutls-dev libsasl2-dev libsdl1.2-dev \
| |
− | libdevmapper-dev dnsmasq xbase-clients pkg-config
| |
− | | |
− | <li>Si se usa la versión de Ubuntu de 64 bits hay que instalar las librerías de compatibilidad de 32 bits:</li>
| |
− | apt-get install ia32-libs
| |
− | | |
− | <li>Instalar qemu-kvm version 0.11.1 (la version 0.12.2 da errores):</li>
| |
− | wget http://sourceforge.net/projects/kvm/files/qemu-kvm/0.11.1/qemu-kvm-0.11.1.tar.gz/download
| |
− | tar xfvz qemu-kvm-0.11.1.tar.gz
| |
− | cd qemu-kvm-0.11.1
| |
− | ./configure --prefix=/usr && make && make install
| |
− | ln -s /usr/bin/qemu-system-x86_64 /usr/bin/kvm
| |
− | Editar /etc/modules y añadir:
| |
− | kvm
| |
− | kvm_intel
| |
− | | |
− | <li>Instalar libvirt 0.7.6:</li>
| |
− | apt-get install libvirt-bin
| |
− | /etc/init.d/libvirt-bin stop
| |
− | wget http://libvirt.org/sources/libvirt-0.7.6.tar.gz
| |
− | tar xfvz libvirt-0.7.6.tar.gz
| |
− | cd libvirt-0.7.6
| |
− | ./configure --prefix=/usr --without-storage-disk && make && make install
| |
− | /etc/init.d/libvirt-bin start
| |
− | | |
− | <li>Instalar librería perl de acceso a libvirt (Sys::Virt) mediante CPAN (no está disponible como paquete ubuntu)</li>
| |
− | perl -MCPAN -e "CPAN::Shell->force(qw(install Sys::Virt));"
| |
− | Note: answer NO to the question "Are you ready for manual configuration?"
| |
− | | |
− | <li>Instalar rootfilesystem de VNUML, enlaces del kernel y crear clave rsa:</li>
| |
− | cd /usr/share/vnuml/filesystems
| |
− | wget http://www.dit.upm.es/vnuml/download/scripts/root-fs-installer
| |
− | perl root-fs-installer
| |
− | cd ../kernels
| |
− | ln -s linux-2.6.28.10-1m linux
| |
− | ssh-keygen -t rsa1
| |
− | | |
− | <li>Instalar VNX:</li>
| |
− | wget -N http://idefix.dit.upm.es/download/vnx/vnx-0.12b.tgz
| |
− | tar xfvz vnx-0.12b.tgz
| |
− | cd vnx-0.12b
| |
− | ./install-vnx
| |
− | </ul>
| |
− | -->
| |