260 likes | 425 Views
Software Forum CORE and EMANE Overview. 1/30/2018. Introduction. CORE and EMANE are emulation tools geared towards network modeling Creates an emulation session of multiple network nodes Run custom protocols for development and testing
E N D
Software ForumCORE and EMANE Overview 1/30/2018
Introduction CORE and EMANE are emulation tools geared towards network modeling Creates an emulation session of multiple network nodes Run custom protocols for development and testing Evaluate effects of distance between nodes, node mobility, loss of connectivity
What are CORE and EMANE? • CORE – Common Open Research Emulator • Emulate multiple nodes on a single host • All nodes share same OS, network stack and resources are isolated • Uses Linux containers (LXC) and Ethernet bridging • Emulates network layers 3 and above (network, transport, session, application) • EMANE – Extendable Mobile Ad-hoc Network Emulator • Emulate network layers 1 and 2 (physical and datalink) • Framework of radio models configured with XML files • Both free, open source tools that can run on many popular Linux distributions
Motivation • CORE allows to you run actual software within the emulation environment • Most networking simulators are discrete event simulators • Based on performance models • Simulation does not run in real (clock) time – can be quicker than real time since just stepping through a series of generated events • Useful for developing networking protocols, routing algorithms • CORE uses virtualization and the Linux network stack • User protocols and applications do not need to be modified • No interface or wrapper software required • Generate real protocol data units in approximately real time
Advantages/Disadvantages Advantages Disadvantages Of course inaccuracies in lower layer models Consumes system resources, not suitable for high performance networking Not flight-like system (hardware, driver development, RTOS, etc.) • Can emulate many nodes on single or distributed host • Easy to script node mobility • Easier to administer than lots of physical or full virtual machines • Much cheaper than physical nodes and saves on lab space • Can connect emulated network to real physical network
CORE Features • GUI environment • Drag and drop nodes • Open Linux terminal by clicking on node • View data rate, addresses, processes via widgets • Node mobility • Location based on pixel coordinates • NS2 scripts • EMANE location events • Node connectivity • Simple netem based • EMANE model based • Python API • Connect emulated network to physical network • Developed by NRL and Boeing
EMANE Features • XML based radio models • RF pipe, 802.11abg, bypass • Run inside containers • Location based on GPS longitude and latitude or Cartesian coordinated • Determine when packets should be dropped based on calculation from radio parameters and location or precomputed path loss • Generate location and path loss events via EMANE Event Log script or Python API • Interface to Scripted Display Tools (sdt3d) • Developed by NRL and Adjacent Link
How Does It Work? • The CORE GUI or configuration files (CORE’s .imn or NRL’s XML Scenario Plan schema) can be used to define nodes and topology • CORE uses Linux network namespace containers, FreeBSD jails, or Xen hypervisor for building the virtual machines • Store node file system, session configuration and log files in /tmp/pycore.nnnnn • Network namespaces(LXC) provides resource isolation • A radio model in EMANE is represented as a NEM (Network Emulation Module) • MAC/link-layer module and physical-layer module • OTA (over-the-air) manager delivers packets between NEMs using multicast channel • Physical Ethernet interfaces (raw transport using libpcap) or virtual interfaces (TUN/TAP devices) deliver packets from OTA manager to NEM • Programs read/write to /dev/net/tun but instead of being hardware, it’s another user program
CORE/EMANE Interface • The interface between CORE and EMANE is a TAP device • CORE builds the virtual node using Linux network namespaces • Installs the TAP device into the namespace • Instantiates one EMANE process in the namespace. • The EMANE process binds a user space socket to the TAP device for sending and receiving data from CORE. • CORE uses a control network to allow the virtual nodes to communicate with their host environment • Each virtual node will have a ctrl0 interface • An Ethernet bridge to the host system • Seen as b.ctrlnet.nnnn interface on the host • Send/receive EMANE events from python scripts
EMANE Events • emaneeventservice application reads an EMANE Event Log file format (.eel file) to generate events • Runs on host machine outside of emulation • Sends events to EMANE through the control port • Configured with eventservice.xml file • Generates location or path loss events • Events are broadcast, event message will determine what node the event is addressed to • Example location event: • 0.0 nem:1 location gps 40.031075,-74.523518,3.000000 • EMANE can also receive events from python API and NRL network modeling XML files
EMANE Shell • emanesh (EMANE Shell) interface • View NEM statistics • Send events • Update configuration parameters
Scripted Display Tools (sdt3d) In addition to CORE GUI, CORE and EMANE can drive sdt3d display for visualization Uses NASA World Wind JAVA SDK Show node placement on 3D globe based on GPS coordinates Show node link and unlink events CORE can send network topology and events through TCP port NRL’s NMF (Network Modelling Framework) XML files and scripts can be used to map between sdt configuration and EMANE configuration Developed by NRL’s Protean research group
Sdt3d/World Wind Java SDK • Interactive, zoomable interface • Lots of terrain and other layers available from NASA World Wind • Customizable sprites for nodes
NASA DTN Dev Kit • Development Kit ISO is an Ubuntu VM • ION 3.5.0 and CORE installed • Lots of example scenarios running ION • How to develop user defined services • Developed by Mitre Corp.
References • CORE downloads and tutorials: https://www.nrl.navy.mil/itd/ncs/products/core https://github.com/coreemu/core http://coreemu.blogspot.com/ • EMANE downloads and tutorials: https://www.nrl.navy.mil/itd/ncs/products/emane https://github.com/adjacentlink • Scripted Display Tools - https://www.nrl.navy.mil/itd/ncs/products/sdt • DTN Dev Kit - http://ipnsig.org/2017/04/14/mitre-publishes-updated-dtn-development-kit/ • Papers • B. Adamson and D. Claypool, “Mobile Network Emulation –Experiences and Challenges”, 2013 IEEE Military Communications Conference • J. Ahrenholz, Tom Goff and B. Adamson, “Integration of the CORE and EMANE Network Emulators”, 2011 IEEE Military Communications Conference • J. Ahrenholz, “Comparison of CORE Network Emulation Platforms”, 2010 IEEE Military Communications Conference • L. Veytser, B. Cheng and R. Charland, “Integrating Radio-to-Router Protocols into EMANE”, 2012 IEEE Military Communications Conference • J. Ahrenholz, C. Danilov, T. Henderson and J. Kim, “CORE: A Real-Time Network Emulator”, 2008, IEEE Military Communications Conference • R. Muzaffar, “Routing and Video Streaming in Drone Networks”, PhD Dissertation July 2017, Queen Mary University of London