commit bbc3ecbb76cd4fb6b762484ea58b2abe2b4a1c67 Author: teor teor2345@gmail.com Date: Mon Jul 6 16:23:54 2015 +1000
Add new networks for performance testing
Each network has exits flagged with exit=1 --- networks/bridges+ipv6-min | 21 +++++++++++++++++++++ networks/bridges-min | 20 ++++++++++++++++++++ networks/hs-025 | 10 ++++++++++ networks/hs-100 | 12 ++++++++++++ networks/hs-100-clients | 13 +++++++++++++ networks/hs-min | 17 +++++++++++++++++ networks/ipv6-exit-min | 12 ++++++++++++ 7 files changed, 105 insertions(+)
diff --git a/networks/bridges+ipv6-min b/networks/bridges+ipv6-min new file mode 100644 index 0000000..4542f31 --- /dev/null +++ b/networks/bridges+ipv6-min @@ -0,0 +1,21 @@ +# By default, Authorities are not configured as exits +Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl") +ExitRelay = Node(tag="r", relay=1, exit=1, torrc="relay.tmpl") + +BridgeAuthority = Node(tag="ba", authority=1, bridgeauthority=1, + relay=1, torrc="bridgeauthority.tmpl") +BridgeIPv6 = Node(tag="br", bridge=1, relay=1, ipv6_addr="[::1]", + torrc="bridge-v6.tmpl") +BridgeClient = Node(tag="bc", torrc="bridgeclient.tmpl") + +# Since only 25% of relays get the guard flag, +# TestingDirAuthVoteGuard * may need to be used in small networks +# (However, bridge clients use bridges instead of guards, so this +# is only an issue for the exit bootstrapping) + +# The minimum number of authorities/relays/exits is 3, the minimum path length +# But bridge networks with 3 relays don't bootstrap, so we use 4 +NODES = Authority.getN(1) + BridgeAuthority.getN(1) + ExitRelay.getN(1) + \ + BridgeIPv6.getN(1) + BridgeClient.getN(1) + +ConfigureNodes(NODES) diff --git a/networks/bridges-min b/networks/bridges-min new file mode 100644 index 0000000..ffa3194 --- /dev/null +++ b/networks/bridges-min @@ -0,0 +1,20 @@ +# By default, Authorities are not configured as exits +Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl") +ExitRelay = Node(tag="r", relay=1, exit=1, torrc="relay.tmpl") + +BridgeAuthority = Node(tag="ba", authority=1, bridgeauthority=1, + relay=1, torrc="bridgeauthority.tmpl") +Bridge = Node(tag="br", bridge=1, relay=1, torrc="bridge.tmpl") +BridgeClient = Node(tag="bc", torrc="bridgeclient.tmpl") + +# Since only 25% of relays get the guard flag, +# TestingDirAuthVoteGuard * may need to be used in small networks +# (However, bridge clients use bridges instead of guards, so this +# is only an issue for the exit bootstrapping) + +# The minimum number of authorities/relays/exits is 3, the minimum path length +# But bridge networks with 3 relays don't bootstrap, so we use 4 +NODES = Authority.getN(1) + BridgeAuthority.getN(1) + ExitRelay.getN(1) + \ + Bridge.getN(1) + BridgeClient.getN(1) + +ConfigureNodes(NODES) diff --git a/networks/hs-025 b/networks/hs-025 new file mode 100644 index 0000000..bb75ed1 --- /dev/null +++ b/networks/hs-025 @@ -0,0 +1,10 @@ +# By default, Authorities are not configured as exits +Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl") +NonExitRelay = Node(tag="r", relay=1, torrc="relay-non-exit.tmpl") +Client = Node(tag="c", torrc="client.tmpl") +HS = Node(tag="h", hs=1, torrc="hs.tmpl") + +NODES = Authority.getN(4) + NonExitRelay.getN(10) + \ + Client.getN(6) + HS.getN(5) + +ConfigureNodes(NODES) diff --git a/networks/hs-100 b/networks/hs-100 new file mode 100644 index 0000000..a8401c9 --- /dev/null +++ b/networks/hs-100 @@ -0,0 +1,12 @@ +# WARNING: This network can bring down a low-specced machine + +# By default, Authorities are not configured as exits +Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl") +NonExitRelay = Node(tag="r", relay=1, torrc="relay-non-exit.tmpl") +Client = Node(tag="c", torrc="client.tmpl") +HS = Node(tag="h", hs=1, torrc="hs.tmpl") + +NODES = Authority.getN(5) + NonExitRelay.getN(25) + \ + Client.getN(10) + HS.getN(60) + +ConfigureNodes(NODES) diff --git a/networks/hs-100-clients b/networks/hs-100-clients new file mode 100644 index 0000000..aecaf37 --- /dev/null +++ b/networks/hs-100-clients @@ -0,0 +1,13 @@ +# Each client sends to the hidden service simultaneously +# This requires the appropriate chutney arguments to make each client send data +# By default, Authorities are not configured as exits +Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl") +NonExitRelay = Node(tag="r", relay=1, torrc="relay-non-exit.tmpl") +Client = Node(tag="c", torrc="client.tmpl") +HS = Node(tag="h", hs=1, torrc="hs.tmpl") + +# Well, 100 instances, with lots of clients +NODES = Authority.getN(3) + NonExitRelay.getN(10) + \ + Client.getN(86) + HS.getN(1) + +ConfigureNodes(NODES) diff --git a/networks/hs-min b/networks/hs-min new file mode 100644 index 0000000..e7b7403 --- /dev/null +++ b/networks/hs-min @@ -0,0 +1,17 @@ +# By default, Authorities are not configured as exits +Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl") +NonExitRelay = Node(tag="r", relay=1, torrc="relay-non-exit.tmpl") +Client = Node(tag="c", torrc="client.tmpl") +HS = Node(tag="h", hs=1, torrc="hs.tmpl") + +# Since only 25% of relays get the guard flag, +# TestingDirAuthVoteGuard * may need to be used in small networks + +# A hidden service needs 5 authorities/relays to ensure it can build HS +# connections: +# a minimum path length of 3, plus the client-nominated rendezvous point, +# plus a seperate introduction point +NODES = Authority.getN(3) + NonExitRelay.getN(2) + \ + Client.getN(1) + HS.getN(1) + +ConfigureNodes(NODES) diff --git a/networks/ipv6-exit-min b/networks/ipv6-exit-min new file mode 100644 index 0000000..70379cc --- /dev/null +++ b/networks/ipv6-exit-min @@ -0,0 +1,12 @@ +# By default, Authorities are not configured as exits +Authority = Node(tag="a", authority=1, relay=1, torrc="authority.tmpl") +IPv6ExitRelay = Node(tag="r", relay=1, exit=1, torrc="relay-exit-v6-only.tmpl") +Client = Node(tag="c", torrc="client.tmpl") + +# Since only 25% of relays get the guard flag, +# TestingDirAuthVoteGuard * may need to be used in small networks + +# The minimum number of authorities/relays/exits is 3, the minimum path length +NODES = Authority.getN(2) + IPv6ExitRelay.getN(1) + Client.getN(1) + +ConfigureNodes(NODES)