1 | set ns [new Simulator] |
---|
2 | source tb_compat.tcl |
---|
3 | |
---|
4 | |
---|
5 | # You must replace YOURPROJECT with the name of your project |
---|
6 | set scriptTar "/proj/YOURPROJECT/tor_setup.tgz" |
---|
7 | |
---|
8 | # Tor Clients |
---|
9 | set Bob [$ns node] |
---|
10 | set Alice [$ns node] |
---|
11 | set Proxy [$ns node] |
---|
12 | |
---|
13 | tb-set-node-os $Bob Ubuntu1004-STD |
---|
14 | tb-set-node-os $Alice Ubuntu1004-STD |
---|
15 | tb-set-node-os $Proxy Ubuntu1004-STD |
---|
16 | |
---|
17 | tb-set-node-tarfiles $Bob /usr/share $scriptTar |
---|
18 | tb-set-node-tarfiles $Alice /usr/share $scriptTar |
---|
19 | tb-set-node-tarfiles $Proxy /usr/share $scriptTar |
---|
20 | |
---|
21 | |
---|
22 | tb-set-node-startcmd $Bob "sudo /usr/share/tor-scripts/tor_setup.py -m client >& /tmp/tor_setup.log" |
---|
23 | tb-set-node-startcmd $Alice "sudo /usr/share/tor-scripts/tor_setup.py -m client >& /tmp/tor_setup.log" |
---|
24 | |
---|
25 | |
---|
26 | # Tor Relays |
---|
27 | set TorRelay1 [$ns node] |
---|
28 | set TorRelay2 [$ns node] |
---|
29 | set TorRelay3 [$ns node] |
---|
30 | |
---|
31 | tb-set-node-os $TorRelay1 Ubuntu1004-STD |
---|
32 | tb-set-node-os $TorRelay2 Ubuntu1004-STD |
---|
33 | tb-set-node-os $TorRelay3 Ubuntu1004-STD |
---|
34 | |
---|
35 | tb-set-node-tarfiles $TorRelay1 /usr/share $scriptTar |
---|
36 | tb-set-node-tarfiles $TorRelay2 /usr/share $scriptTar |
---|
37 | tb-set-node-tarfiles $TorRelay3 /usr/share $scriptTar |
---|
38 | |
---|
39 | |
---|
40 | tb-set-node-startcmd $TorRelay1 "sudo /usr/share/tor-scripts/tor_setup.py -m relay >& /tmp/tor_setup.log" |
---|
41 | tb-set-node-startcmd $TorRelay2 "sudo /usr/share/tor-scripts/tor_setup.py -m relay >& /tmp/tor_setup.log" |
---|
42 | tb-set-node-startcmd $TorRelay3 "sudo /usr/share/tor-scripts/tor_setup.py -m relay >& /tmp/tor_setup.log" |
---|
43 | |
---|
44 | |
---|
45 | # Tor Directory |
---|
46 | set TorDirectory [$ns node] |
---|
47 | tb-set-node-os $TorDirectory Ubuntu1004-STD |
---|
48 | tb-set-node-tarfiles $TorDirectory /usr/share $scriptTar |
---|
49 | tb-set-node-startcmd $TorDirectory "sudo /usr/share/tor-scripts/tor_setup.py -m directory >& /tmp/tor_setup.log" |
---|
50 | |
---|
51 | # Web Server |
---|
52 | set Server1 [$ns node] |
---|
53 | set Server2 [$ns node] |
---|
54 | tb-set-node-os $Server1 Ubuntu1004-STD |
---|
55 | tb-set-node-os $Server2 Ubuntu1004-STD |
---|
56 | |
---|
57 | tb-set-node-tarfiles $Server1 /usr/share $scriptTar |
---|
58 | tb-set-node-tarfiles $Server2 /usr/share $scriptTar |
---|
59 | |
---|
60 | |
---|
61 | # dpkg-preconfigure dies trying reopen stdin and ngircd fails to install. We use screen to get around this. |
---|
62 | tb-set-node-startcmd $Server1 "screen -LDm sudo /usr/share/tor-scripts/tor_setup.py -m Server1" |
---|
63 | tb-set-node-startcmd $Server2 "screen -LDm sudo /usr/share/tor-scripts/tor_setup.py -m Server2" |
---|
64 | |
---|
65 | # Generic Router |
---|
66 | set Router1 [$ns node] |
---|
67 | set Router2 [$ns node] |
---|
68 | |
---|
69 | set link0 [$ns duplex-link $Alice $Router1 100000.0kb 0.0ms DropTail] |
---|
70 | set link1 [$ns duplex-link $Bob $Router1 100000.0kb 0.0ms DropTail] |
---|
71 | set link2 [$ns duplex-link $Server1 $Router2 100000.0kb 0.0ms DropTail] |
---|
72 | set link3 [$ns duplex-link $Server2 $Router2 100000.0kb 0.0ms DropTail] |
---|
73 | |
---|
74 | |
---|
75 | set WideArea [$ns make-lan "$Router1 $Router2 $Proxy $TorRelay1 $TorRelay2 $TorRelay3 $TorDirectory" 100000.0kb 0.0ms] |
---|
76 | |
---|
77 | $ns rtproto Static |
---|
78 | $ns run |
---|