Mentor: Dr. Anyi Liu Outline Timeline Key Terms Schedule and Achievement of Week 2 Setting up basic domains with OpenStack Dashboard Using SecureCRT and SecureFX Testing Python scripts Downloading and running virtual images Editing scripts Examining the profile file and the scripts that generates it The Plan of Week 3 References Timeline (Week 1 Week 10) Week Task Week Task Week 1 Research the background about the project Week 6 Write the module that can change the routing rules (Part Get familiar with CloudLab, OpenStack, and Amazon EC2 1) Week 7 Continue working on the module that can change the Week 2 Get familiar with SecureCRT routing rules (Part 2) Get familiar with current Python code Draft the research paper Continue to get familiar with CloudLab, OpenStack, and Amazon EC2 Week 8 Improve the performance and efficiency of the virtual Write the module that can set up different domains using laboratory the OpenStack API and Python (Part 1) Refine the user interface Conduct research on constructing virtual laboratory Continue work on research paper Working on the documentation (Part 1) Week 3 Continue setting up the domains using the OpenStack API and Python (Part 2) Week 9 Conduct tests in virtual laboratory environment Working on the documentation (Part 2) Week 4 Wrap up Domains Construction Revise the research paper Write the module that can change network topologies Continue work on the poster using OpenStack API (Part 1) If possible, work with VMI library (libVMI) Prepare for midterm presentation Week 5 Give midterm presentation Week 10 Finalize the research paper Continue working on the module that can change Finalize the poster network topologies using OpenStack API (Part 2) Finalize the documentation Key Terms Network Domain: Refers to any group of users, workstations, devices, printers, computers and database servers that share different types of data via network resources[1]. Extensible Markup Language (XML): Used to describe data. The XML standard is a flexible way to create information formats and electronically share structured data via the public Internet [2]. Schedule and Achievement of Week 2 Schedule Day 1: Setting up basic network domains with OpenStack Dashboard Day 2: Using SecureCRT and SecureFX Day 3: Testing Python scripts Day 4: Downloading and running virtual images Day 5: Examining the profile file and the scripts that generates it Achievement Got familiar with SecureCRT Got familiar with current Python code Continued to get familiar with CloudLab, OpenStack, and Amazon EC2 Started writing the module that can set up different domains using the OpenStack API and Python Conducted research on constructing virtual laboratory Day 1: Setting up basic network domains with OpenStack Dashboard
We need three network
domains: an attack domain, a target domain, and a control domain So far, we have built the basic infrastructure One of our tasks is recreating this network from a .xml file created using our Python scripts Three network domains Day 2: Using SecureCRT and SecureFX SecureCRT and SecureFX are software tools developed by VanDyke Software that provide SSH and file transfer capabilities above that which PuTTY can provide [3] We use SecureCRT to access an TesterScript.py script menu Amazon EC2 VM and SecureFX to transfer our Python scripts to the VM We can then run our scripts on the Amazon EC2 VM to perform the same actions we would on the OpenStack dashboard, but through a command line interface SecureFX Day 2: Using SecureCRT and SecureFX (cont.) At first, when we tried to run the Python tester script, "ImportError: No module named 'os_client_config' would show and the script could not be run Certain packages are needed to run the program, and they need to be compatible with Python 3 We were able to solve the issue and run the Python Diagram showing the Import Error tester script on Day 3 Day 3: Testing Python scripts We first created a bash script that runs the installation commands at one time to speed up the process of getting the tester script running We then tested each option on the menu, and looked at the OpenStack Dashboard to see if the changes we had made with the tester script were reflected
Document showing steps to run our scripts
Creating a new VM using the Python tester
script
The VM created by the Python script shown on CloudStack Dashboard
Day 3: Testing Python scripts (cont.) One of the functionalities of the Python script is generating a .xml file containing all of the information about a CloudLab experiment One of our goals is being able to successfully import that .xml file and fully recreate a previously generated experiment CloudLab experiments are set to expire after a certain amount of time, thus deleting that experiment Currently, the scripts can only successfully import routers
The .xml file showing the information about a subnet
Day 4: Downloading and running virtual images Before we downloaded a VM, we added a function to the code that outputs the list of VM images available when a connection is successful Originally, there was no indication that a connection was unsuccessful until an option from the menu was chosen and an error occurred We use the Python tester script to download a VM image, then use SecureFX to transfer the VM to our local computer We then must convert the downloaded file to a format that our local virtualization software can use Downloaded VM from the CloudLab to our local Once we convert the file, we can computer successfully run the downloaded image on our computer Day 5: Examining XML files and Python scripts In their current state, the Python scripts cannot successfully import everything from a generated .xml file We are in the process of finding ways we can fix the code so that the information can be successfully imported For large scale experiments, being able to automate the process of creating these The snippet of code from Python script that parses OpenStack information into an XML file experiments again is important References
[1] What is a Domain? - Definition from Techopedia. (n.d.). Retrieved
from https://www.techopedia.com/definition/1326/domain-networking [2] Rouse, Margaret What is XML (Extensible Markup Language)? - Definition from WhatIs.com. Retrieved from the TechTarget website: http://searchmicroservices.techtarget.com/definition/XML-Extensible- Markup-Language [3]VanDyke Software. (n.d.). Retrieved from the VanDyke Software website: https://www.vandyke.com/index.php