mirror of
				https://github.com/yggdrasil-network/yggdrasil-go.git
				synced 2025-11-03 10:45:09 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			76 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# Connects nodes in a network resembling an s-channel feynmann diagram.
 | 
						|
 | 
						|
# 1      5
 | 
						|
#  \    /
 | 
						|
#   3--4
 | 
						|
#  /    \
 | 
						|
# 2      6
 | 
						|
 | 
						|
# Bandwidth constraints are applied to 4<->5 and 4<->6.
 | 
						|
# The idea is to make sure that bottlenecks on one link don't affect the other.
 | 
						|
 | 
						|
ip netns add node1
 | 
						|
ip netns add node2
 | 
						|
ip netns add node3
 | 
						|
ip netns add node4
 | 
						|
ip netns add node5
 | 
						|
ip netns add node6
 | 
						|
 | 
						|
ip link add veth13 type veth peer name veth31
 | 
						|
ip link set veth13 netns node1 up
 | 
						|
ip link set veth31 netns node3 up
 | 
						|
 | 
						|
ip link add veth23 type veth peer name veth32
 | 
						|
ip link set veth23 netns node2 up
 | 
						|
ip link set veth32 netns node3 up
 | 
						|
 | 
						|
ip link add veth34 type veth peer name veth43
 | 
						|
ip link set veth34 netns node3 up
 | 
						|
ip link set veth43 netns node4 up
 | 
						|
 | 
						|
ip link add veth45 type veth peer name veth54
 | 
						|
ip link set veth45 netns node4 up
 | 
						|
ip link set veth54 netns node5 up
 | 
						|
 | 
						|
ip link add veth46 type veth peer name veth64
 | 
						|
ip link set veth46 netns node4 up
 | 
						|
ip link set veth64 netns node6 up
 | 
						|
 | 
						|
ip netns exec node4 tc qdisc add dev veth45 root tbf rate 100mbit burst 8192 latency 1ms
 | 
						|
ip netns exec node5 tc qdisc add dev veth54 root tbf rate 100mbit burst 8192 latency 1ms
 | 
						|
 | 
						|
ip netns exec node4 tc qdisc add dev veth46 root tbf rate 10mbit burst 8192 latency 1ms
 | 
						|
ip netns exec node6 tc qdisc add dev veth64 root tbf rate 10mbit burst 8192 latency 1ms
 | 
						|
 | 
						|
ip netns exec node1 ip link set lo up
 | 
						|
ip netns exec node2 ip link set lo up
 | 
						|
ip netns exec node3 ip link set lo up
 | 
						|
ip netns exec node4 ip link set lo up
 | 
						|
ip netns exec node5 ip link set lo up
 | 
						|
ip netns exec node6 ip link set lo up
 | 
						|
 | 
						|
echo '{AdminListen: "none"}' | ip netns exec node1 env PPROFLISTEN=localhost:6060 ./yggdrasil --useconf &> /dev/null &
 | 
						|
echo '{AdminListen: "none"}' | ip netns exec node2 env PPROFLISTEN=localhost:6060 ./yggdrasil --useconf &> /dev/null &
 | 
						|
echo '{AdminListen: "none"}' | ip netns exec node3 env PPROFLISTEN=localhost:6060 ./yggdrasil --useconf &> /dev/null &
 | 
						|
echo '{AdminListen: "none"}' | ip netns exec node4 env PPROFLISTEN=localhost:6060 ./yggdrasil --useconf &> /dev/null &
 | 
						|
echo '{AdminListen: "none"}' | ip netns exec node5 env PPROFLISTEN=localhost:6060 ./yggdrasil --useconf &> /dev/null &
 | 
						|
echo '{AdminListen: "none"}' | ip netns exec node6 env PPROFLISTEN=localhost:6060 ./yggdrasil --useconf &> /dev/null &
 | 
						|
 | 
						|
echo "Started, to continue you should (possibly w/ sudo):"
 | 
						|
echo "kill" $(jobs -p)
 | 
						|
wait
 | 
						|
 | 
						|
ip netns delete node1
 | 
						|
ip netns delete node2
 | 
						|
ip netns delete node3
 | 
						|
ip netns delete node4
 | 
						|
ip netns delete node5
 | 
						|
ip netns delete node6
 | 
						|
 | 
						|
ip link delete veth13
 | 
						|
ip link delete veth23
 | 
						|
ip link delete veth34
 | 
						|
ip link delete veth45
 | 
						|
ip link delete veth46
 |