This is my bachelor thesis.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
Frederik Maaßen f06bfd8a3d new gitignore for runtime tex files 2 years ago
mininet_topology_test Initial commit 2 years ago
short_cut_implementation added iperf test between hosts 2 years ago
thesis new gitignore for runtime tex files 2 years ago
.gitignore new gitignore for runtime tex files 2 years ago
Readme.md added current state information to readme 2 years ago

Readme.md

Mini Net Setup Notes

process

example mininet topology

  • use LinuxRouter class with IP forwarding to simulate routers
  • created minimalistic network (simplenetwork.py) with only 2 routers, 2 switches and 2 hosts
  • switches are unnecessary as we only connect 1 host per router, but might become relevant in the future when adding multiple hosts
  • added simple_extendednetwork.py containing 3 hosts and 3 routers

errors

IP Routing and FRR

General setup

  • created example from Short-Cut Paper
  • added static ip routing for hosts and routers
  • fast rerouting requires routing by inport, using ip policies and ip rules in linux kernel
  • ip policies allow requests from specific ethernet interfaces to use a specific routing table
  • routing tables would then include specific frr routes, e.g. if a packet going to R4 would be received on the port connected to R2 on R1

IP Route configuration

  • created python dictionaries that have entries for each router and for each routing table
  • routing tables consist of the default table for all requests from connected host and router itself and a table for each additional network interface, reacting on incoming packets for fast rerouting
  • "from" keyword in ip rules could be used to differentiate between returning packets and "normally" routed packets

Testing suite

  • implemented simple testing suite that is able to create tests by definition

failure scenarios

  • 2 types of failure scheduling: intermediate and concurrent
  • intermediate: a certain test operation is performed (like pings), a failure is induced, and the same test is performed again
  • concurrent: a timer is started and the test is run, timer should act while the test is running and performs the failure on runtime

failure types

  • interface shutdown: an interface is deactivated by calling "ifconfig {interface} down" to simulate a broken link

General information

networks to look out for

  • mesh ()
  • ring/double ring (clock- and counterclockwise)

openflow learning

installation

  • start controller on port 6633, change port in protocol configuration of wireshark from 6653 to 6633

wireshark filter for displaying openflow packets

openflow_v1 and not (openflow_1_0.type == 2 or openflow_1_0.type == 3)

Technologies

Mininet

A tool for creating virtual networks. Is able to emulate hosts, switches, routers, hubs etc. It uses Openflow to realise many of these emulations.

Openflow

A tool used to create virtual switches etc. Can be connected to a controller (e.g. created with POX) to write custom flow handling.

POX

A python library to create a controller for handling flow of switches etc.

Questions

Current state

  • implementing local FRR in test routers -> policy routing (performance?)
  • implementing short cut
  • using "ifconfig {if} down" for failing link simulation

Resources

Tasks

  • end of february -> write "Basics" section

Tools