SWDENET – SOFTWARE-DEFINED NETWORKING AND VIRTUALIZATION AY 2023-2024, 2nd TERM LAB ACTIVITY 3: Wireshark in Mininet and Flow Management GROUP MEMBERS: Camarillo, Danny Boy Jr. Dulaca, Joanna Grace P. Kundert, Thadeus Emmanuel DATE: SECTION 02/09/2024 BSIT212 PLEASE READ ALL OF THE INSTRUCTIONS CAREFULLY. FOR SCREENSHOTS USING THE TERMINAL, PLEASE INCLUDE THE DATE AND TIME USING THE date COMMAND IN THE VM, USING sh WHILE IN THE MININET APPLICATION TO SUCCESSFULLY USE THE COMMAND. Learning Objectives To learn how to use Wireshark using the Mininet VM To learn how to add and delete flow entries in the Mininet application Software Needed Mininet 2.3.0 VM image Ubuntu legacy image https://github.com/mininet/mininet/releases/download/2.3.0/mininet-2.3.0210211-ubuntu-20.04.1-legacy-server-amd64-ovf.zip X Server for Windows https://x410.dev/download/ PuTTY https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html Pre-requisites Make sure that the X Server (X410) is installed and running on your machine Make sure that PuTTY, or any other terminal that supports X11 tunnelling, is installed in your machine Get the IP address of the Mininet VM, using commands such as hostname –I, ifconfig, and ip addr. Setting up PuTTY for X11 Tunnelling 1. Open PuTTY, by default it is open on the Session category 2. In the lefthand side (Category), expand the SSH category (click the plus (+) icon) and click the X11 entry 3. Check the Enable X11 forwarding option 4. Click the Session category and fill up the Host Name (or IP address) field using the IP address obtained from Pre-requisites. 5. (Optional, but recommended) Save the session by entering a name in Saved Sessions and clicking the Save button. To open a saved session, double click the name of the saved session. Running Wireshark Before running Wireshark, the mininet user should be able to capture and analyze packets using Wireshark without elevated privileges (without using sudo or changing to the root user). When executing Wireshark with sudo, i.e. sudo wireshark, there will be errors and solutions regarding this may lead to breaking the VM. Running Wireshark without sudo, i.e. wireshark, will open Wireshark in a window, but capturing packets is not possible unless root access is given. To setup the mininet user to capture packets in Wireshark, making sure to restart the terminal after to be sure: To run Wireshark on the terminal where the user cannot execute commands while Wireshark is open: To run Wireshark on the terminal where Wireshark is opened as a background process, enabling the user to execute other commands, pressing the Enter key in the terminal when the Wireshark window appears (preferred option): For Mininet, the loopback (lo) interface is used. Double click the Loopback: lo item to initiate packet capture: Apply a display filter of openflow_v1 to see OpenFlow messages: While Wireshark is running in the background AND capturing packets in the lo interface, run sudo mn --topo=linear,3: [TASK #1] IN THE WIRESHARK CAPTURE, WHAT OPENFLOW MESSAGES WERE DISCUSSED DURING THE OPENFLOW LECTURE? SHOW SOME SCREENSHOTS OF THE MESSAGES IN WIRESHARK, INCLUDING THE TYPE AND CONTENT OF THE OPENFLOW MESSAGE, AND THE HEX DUMP OF THE ENTIRE PACKET. [TASK #2] GIVEN THE WIRESHARK CAPTURE, HOW DOES THE MININET APPLICATION ROUTE MESSAGES TO SPECIFIC NODES IN THE NETWORK? ANALYZE THE OPENFLOW MESSAGE PACKETS CAREFULLY AND SHOW USING SCREENSHOTS WHAT DIFFERENTIATES NODES FROM EACH OTHER. Manually Managing Flows General Syntax By default, the switches in the Mininet network are Open vSwitch (OVS). These can be managed manually using the ovs-ofctl command. [TASK #3] USING THE MANUAL COMMAND, PASTE A SCREENSHOT OF THE ovs-ofctl MANUAL PAGE WITH THE HEADER, NAME, SYNOPSIS, AND FIRST PARAGRAPH OF THE DESCRIPTION. ovs-ofctl can be used to configure the switch manually, including the addition, deletion, and modification of flow entries. Given the specified configuration, no SDN controller, and simplified MAC address allocation: [TASK #4] PLEASE PASTE A SCREENSHOT OF THE dump OUTPUT [TASK #5 AND #6] PLEASE PASTE A SCREENSHOT OF THE net OUTPUT AND DRAW THE NETWORK TOPOLOGY. NETWORK TOPOLOGY: To add flows onto an OVS Switch, the add-flow command with ovs-ofctl is to be used, with the following format: FLOW can be seen in the manual page of ovs-ofctl, ovs-fields, and ovsactions. For example, adds a flow entry with the normal forwarding function is added to the flow table of OVS switch 1 (s1). To show the current flow entries in an OVS switch: [TASK #6 AND #7] PLEASE PASTE A SCREENSHOT OF THE COMMAND RESULT AND A PINGALL RESULT. To delete flow entries, the del-flows command with ovs-ofctl is to be used, with the following format: If FLOW is not present, then all existing flow entries are deleted, as with the following example: [TASK #8 AND #9] PLEASE DISPLAY THE FLOW ENTRIES IN SWITCH 1 (s1) AFTER EXECUTING THE COMMAND ABOVE AND A PINGALL RESULT.