dnf install bash bridge-utils ebtables iproute libev python procps-ng net-tools tcl tk tkimg autoconf automake make libev-devel python-devel ImageMagick help2man
//重要,在CORE中,执行 /root/.core/configs/m-MPE-manet.imn,不能正常初始化。需要执行如下命令。
//
http://blog.csdn.net/ztguang/article/details/51262543
dnf install kernel-modules-extra-`uname -r`
CentOS 7:
yum install bash bridge-utils ebtables iproute libev python procps-ng net-tools tcl tk tkimg autoconf automake make libev-devel python-devel ImageMagick help2man
You can obtain the CORE source from the CORE source page. Choose either a stable release version orthe development snapshot available in thenightly_snapshots directory.The-j8 argument tomake will run eight simultaneous jobs, to speed upbuilds on multi-core systems. Notice theconfigure flag to tell the buildsystem that a systemd service file should be installed under Fedora.
[root@localhost core-4.8]# ./bootstrap.sh
[root@localhost core-4.8]# ./configure --with-startup=systemd
[root@localhost core-4.8]# make -j4
[root@localhost core-4.8]# make install
Note that the Linux RPM and Debian packages do not use the/usr/local prefix, and files are instead installed to/usr/sbin, and /usr/lib. This difference is a result of aligning with the directorystructure of Linux packaging systems and FreeBSD ports packaging.
Another note is that the Python distutils in Fedora Linux will install the COREPython modules to/usr/lib/python2.7/site-packages/core, instead ofusing thedist-packages directory.
The CORE Manual documentation is built separately from thedoc/ sub-directory in the source. It requires Sphinx:
sudo yum install python-sphinxcd core-4.8/doc
make html
make latexpdf
-----------------------INSTALL CORE --- OK OK
-----------------------Test CORE
To test that the CORE Network Emulator is working, start the CORE daemon and the GUI.
[root@localhost core-4.8]# pwd
/opt/tools/network_simulators/core/core-4.8
[root@localhost core-4.8]# /etc/init.d/core-daemon start
[root@localhost core-4.8]# core-gui
[root@localhost core-4.8]# ls /tmp/pycore.56386/
n1 n1.xy n3.pid n5.log n7.conf/ n9
n10 n2 n3.xy n5.pid n7.log n9.conf/
n10.conf/ n2.conf/ n4 n5.xy n7.pid n9.log
n10.log n2.log n4.conf/ n6 n7.xy n9.pid
n10.pid n2.pid n4.log n6.conf/ n8 n9.xy
n10.xy n2.xy n4.pid n6.log n8.conf/ nodes
n1.conf/ n3 n4.xy n6.pid n8.log servers
n1.log n3.conf/ n5 n6.xy n8.pid session-deployed.xml
n1.pid n3.log n5.conf/ n7 n8.xy state
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
关键点
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
core-svnsnap.tgz
[root@localhost core]# pwd
/opt/tools/network_simulators/core/core
[root@localhost core]# gedit ./daemon/core/mobility.py
-------------------------------------设置节点移动的时间间隔
def runround(self):
''' Advance script time and move nodes.
'''
#ztg add
time.sleep(6)
-------------------------------------设置节点移动的间距
#ztg add
#wp = self.WayPoint(time, nodenum, coords=(x,y,z), speed=speed)
wp = self.WayPoint(time, nodenum, coords=(x,y,z), speed=3)
-------------------------------------
[root@localhost core]# systemctl start squid.service
[root@localhost core]# systemctl start docker
[root@localhost core]# /etc/init.d/core-daemon stop
[root@localhost core]# make uninstall ; make clean
[root@localhost core]# make -j4
[root@localhost core]# make install
[root@localhost core]# systemctl enable core-daemon
Created symlink from /etc/systemd/system/multi-user.target.wants/core-daemon.service to /etc/systemd/system/core-daemon.service.
problem:
[root@n6 n6.conf]# docker info
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
resolve:
[root@localhost core]# iptables -F
[root@localhost core]# ip6tables -F
[root@localhost 桌面]# service core-daemon status
Redirecting to /bin/systemctl status core-daemon.service
core-daemon.service - Common Open Research Emulator Service
Loaded: loaded (/etc/systemd/system/core-daemon.service; disabled)
Active: inactive (dead)
[root@localhost 桌面]# cat /etc/systemd/system/core-daemon.service
[Unit]
Description=Common Open Research Emulator Service
After=network.target
[Service]
Type=forking
PIDFile=/var/run/core-daemon.pid
ExecStart=/usr/bin/python /usr/local/sbin/core-daemon -d
[Install]
WantedBy=multi-user.target
Here maybe what is installed with 'make install':
/usr/local/bin/core-gui
/usr/local/sbin/core-daemon
/usr/local/sbin/[vcmd, vnoded, coresendmsg, core-cleanup.sh]
/usr/local/lib/core/*
/usr/local/share/core/*
/usr/local/lib/python2.6/dist-packages/core/*
/usr/local/lib/python2.6/dist-packages/[netns,vcmd].so
/etc/core/*
/etc/init.d/core
[root@localhost core]# /usr/share/openvswitch/scripts/ovs-ctl --system-id=random start
Starting ovsdb-server [ OK ]
Configuring Open vSwitch system IDs [ OK ]
Starting ovs-vswitchd [ OK ]
Enabling remote OVSDB managers [ OK ]
//Fedora 23 & CentOS 7
[root@localhost core]# systemctl daemon-reload
[root@localhost core]# systemctl start core-daemon.service
[root@localhost core]# core-gui
----------------
NOTE: first to run the following command if using docker.
# systemctl start docker.service
----------------
NOTE: /root/.core/configs/m-MPE-manet.imn
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
----------------
error:
----------------
File "/usr/lib/python2.7/site-packages/docker/client.py", line 142, in _raise_for_status
raise errors.APIError(e, response, explanation=explanation)
APIError: 400 Client Error: Bad Request ("client version 1.10 is too old. Minimum supported API version is 1.21, please upgrade your client to a newer version")
----------------
solution:
----------------
# gedit /opt/tools/network_simulators/core/core/daemon/core/services/dockersvc.py
----------------
if 'Client' in globals():
client = Client(version='1.21')
----------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++