set ns [new Simulator] source tb_compat.tcl # You must replace YOURPROJECT with the name of your project set scriptTar "/proj/YOURPROJECT/tor_setup.tgz" # Tor Clients set Bob [$ns node] set Alice [$ns node] set Proxy [$ns node] tb-set-node-os $Bob Ubuntu1004-STD tb-set-node-os $Alice Ubuntu1004-STD tb-set-node-os $Proxy Ubuntu1004-STD tb-set-node-tarfiles $Bob /usr/share $scriptTar tb-set-node-tarfiles $Alice /usr/share $scriptTar tb-set-node-tarfiles $Proxy /usr/share $scriptTar tb-set-node-startcmd $Bob "sudo /usr/share/tor-scripts/tor_setup.py -m client >& /tmp/tor_setup.log" tb-set-node-startcmd $Alice "sudo /usr/share/tor-scripts/tor_setup.py -m client >& /tmp/tor_setup.log" # Tor Relays set TorRelay1 [$ns node] set TorRelay2 [$ns node] set TorRelay3 [$ns node] tb-set-node-os $TorRelay1 Ubuntu1004-STD tb-set-node-os $TorRelay2 Ubuntu1004-STD tb-set-node-os $TorRelay3 Ubuntu1004-STD tb-set-node-tarfiles $TorRelay1 /usr/share $scriptTar tb-set-node-tarfiles $TorRelay2 /usr/share $scriptTar tb-set-node-tarfiles $TorRelay3 /usr/share $scriptTar tb-set-node-startcmd $TorRelay1 "sudo /usr/share/tor-scripts/tor_setup.py -m relay >& /tmp/tor_setup.log" tb-set-node-startcmd $TorRelay2 "sudo /usr/share/tor-scripts/tor_setup.py -m relay >& /tmp/tor_setup.log" tb-set-node-startcmd $TorRelay3 "sudo /usr/share/tor-scripts/tor_setup.py -m relay >& /tmp/tor_setup.log" # Tor Directory set TorDirectory [$ns node] tb-set-node-os $TorDirectory Ubuntu1004-STD tb-set-node-tarfiles $TorDirectory /usr/share $scriptTar tb-set-node-startcmd $TorDirectory "sudo /usr/share/tor-scripts/tor_setup.py -m directory >& /tmp/tor_setup.log" # Web Server set Server1 [$ns node] set Server2 [$ns node] tb-set-node-os $Server1 Ubuntu1004-STD tb-set-node-os $Server2 Ubuntu1004-STD tb-set-node-tarfiles $Server1 /usr/share $scriptTar tb-set-node-tarfiles $Server2 /usr/share $scriptTar # dpkg-preconfigure dies trying reopen stdin and ngircd fails to install. We use screen to get around this. tb-set-node-startcmd $Server1 "screen -LDm sudo /usr/share/tor-scripts/tor_setup.py -m Server1" tb-set-node-startcmd $Server2 "screen -LDm sudo /usr/share/tor-scripts/tor_setup.py -m Server2" # Generic Router set Router1 [$ns node] set Router2 [$ns node] set link0 [$ns duplex-link $Alice $Router1 100000.0kb 0.0ms DropTail] set link1 [$ns duplex-link $Bob $Router1 100000.0kb 0.0ms DropTail] set link2 [$ns duplex-link $Server1 $Router2 100000.0kb 0.0ms DropTail] set link3 [$ns duplex-link $Server2 $Router2 100000.0kb 0.0ms DropTail] set WideArea [$ns make-lan "$Router1 $Router2 $Proxy $TorRelay1 $TorRelay2 $TorRelay3 $TorDirectory" 100000.0kb 0.0ms] $ns rtproto Static $ns run