Using tuntap to simulate router port, and C to implement software router and related network functions.
We demostrate this virtual router with 2 router ports for simplicity. All environment can be run on single computer with linux network virtualization support.
- Using namespace to simulate host machine.
- Using
tuntapclient to simulate router's port. - Using virtual link (
veth) to connect namespace with our ports inbridge.
- Build demo topology
./.scripts/create_topo.sh
- Build and run virtual router
make./router.exe -i tap0 tap1
- Run the traffic
- ping
- h1 to h2:
ip netns exec h1 ping 10.0.1.1 - h1 to port0:
ip netns exec h1 ping 10.0.0.2 - h2 to h1:
ip netns exec h2 ping 10.0.0.1 - h2 to port1:
ip netns exec h2 ping 10.0.1.2
- h1 to h2:
- ping
- Kevin Cyu, [email protected]
