Centre for Advanced Internet Architectures, Swinburne University of Technology, Melbourne, Australia 11th July, 2014 Multipath TCP For FreeBSD Kernel Patch v0.4 ---------------------------------------------- CONFIGURATION FILES FOR VM-based MPTCP TESTBED ---------------------------------------------- This document provides host configuration files for a Virtual Machine testbed topology shown in: http://caia.swin.edu.au/urp/newtcp/mptcp/tools/mptcp-vm-topology-v0.4.pdf It is supplimentary to the example topology file: http://caia.swin.edu.au/urp/newtcp/mptcp/tools/mptcp-example-v0.4.txt An overview of the MPTCP kernel patch and usage can be found in the readme: http://caia.swin.edu.au/urp/newtcp/mptcp/tools/mptcp-readme-v0.4.txt DummynetVM1 ----------- /etc/rc.conf gateway_enable="YES" hostname="dummynetvm1" ifconfig_em0="DHCP" ifconfig_em1="192.168.0.11/24" ifconfig_em2="192.168.3.11/24" ifconfig_em3="192.168.5.11/24" keymap="us.iso" sshd_enable="YES" firewall_enable="YES" firewall_type="/etc/ipfw.rules" firewall_script="" dummynet_enable="YES" static_routes="internal2 internal4" route_internal2="-net 192.168.1.0/24 192.168.5.22" route_internal4="-net 192.168.4.0/24 192.168.5.22" DummynetVM2 ----------- /etc/rc.conf gateway_enable="YES" hostname="dummynetvm2" ifconfig_em0="DHCP" ifconfig_em1="192.168.1.22/24" ifconfig_em2="192.168.4.22/24" ifconfig_em3="192.168.5.22/24" keymap="us.iso" sshd_enable="YES" firewall_enable="YES" firewall_type="/etc/ipfw.rules" firewall_script="" dummynet_enable="YES" static_routes="internal1 internal3" route_internal1="-net 192.168.0.0/24 192.168.5.11" route_internal3="-net 192.168.3.0/24 192.168.5.11" MPTCP1 ------ /boot/loader.conf net.inet.ip.fw.default_to_accept=1 net.inet.tcp.sack.enable=0 net.inet.tcp.tso=0 /etc/rc.conf hostname="mptcp1" ifconfig_em0="DHCP" ifconfig_em1="192.168.0.1/24" ifconfig_em2="192.168.1.1/24" sshd_enable="YES" # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable dumpdev="AUTO" defaultroute_delay="3" pf_enable="YES" pflog_enable="YES" # static routes for fib 0 route add 192.168.3.0 192.168.0.11 route add 192.168.4.0 192.168.1.22 /etc/pf.conf mp_net1 = "192.168.0.0/24" mp_net2 = "192.168.1.0/24" def_if = "em0" mp_if1 = "em1" mp_if2 = "em2" mp_gw1 = "192.168.0.11" mp_gw2 = "192.168.1.22" # Packets that originate with us should be sent out interface based on src # IP address, not out the default route. Send to: (interface, gateway) pass out on {$def_if, $mp_if2} route-to {($mp_if1 $mp_gw1)} from $mp_net1 to any pass out on {$def_if, $mp_if1} route-to {($mp_if2 $mp_gw2)} from $mp_net2 to any # Respond to packets via the interface on which they arrived. E.g the # SYN/ACK for a received SYN is sent back via the incoming interface, rather # than via the default route pass in log quick on $mp_if1 reply-to {($mp_if1 $mp_gw1)} from any to any keep state pass in log quick on $mp_if2 reply-to {($mp_if2 $mp_gw2)} from any to any keep state MPTCP2 ------ /boot/loader.conf net.inet.ip.fw.default_to_accept=1 net.inet.tcp.sack.enable=0 net.inet.tcp.tso=0 /etc/rc.conf hostname="mptcp2" ifconfig_em0="DHCP" ifconfig_em1="192.168.3.2/24" ifconfig_em2="192.168.4.2/24" sshd_enable="YES" # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable dumpdev="AUTO" defaultroute_delay="3" pf_enable="YES" pflog_enable="YES" # static routes for fib 0 route add 192.168.0.0 192.168.3.11 route add 192.168.1.0 192.168.4.22 /etc/pf.conf mp_net1 = "192.168.3.0/24" mp_net2 = "192.168.4.0/24" # interfaces on the host def_if = "em0" mp_if1 = "em1" mp_if2 = "em2" # The gateways for MP addresses mp_gw1 = "192.168.3.11" mp_gw2 = "192.168.4.22" # Packets that originate with us should be sent out interface based on src # IP address, not out the default route. Send to: (interface, gateway) pass out on {$def_if, $mp_if2} route-to {($mp_if1 $mp_gw1)} from $mp_net1 to any pass out on {$def_if, $mp_if1} route-to {($mp_if2 $mp_gw2)} from $mp_net2 to any # Respond to packets via the interface on which they arrived. E.g the # SYN/ACK for a received SYN is sent back via the incoming interface, rather # than via the default route pass in log quick on $mp_if1 reply-to {($mp_if1 $mp_gw1)} from any to any keep state pass in log quick on $mp_if2 reply-to {($mp_if2 $mp_gw2)} from any to any keep state ---------------------------------------------- DEVELOPMENT TEAM ---------------------------------------------- This FreeBSD MPTCP implementation was first released in 2013 by the Multipath TCP research project at Swinburne University of Technology's Centre for Advanced Internet Architectures (CAIA), Melbourne, Australia. The members of this project team are: Lead developer: Nigel Willams (njwilliams@swin.edu.au) Technical advisor/developer: Lawrence Stewart (lastewart@swin.edu.au) Project leader: Grenville Armitage (garmitage@swin.edu.au)