diff --git a/www/faq.html b/www/faq.html index e745f2c0543b74938a2b4cc28a516552a34f9725..4559be33304af2e3bebc14d542b1ed319bd0c8ec 100644 --- a/www/faq.html +++ b/www/faq.html @@ -40,10 +40,12 @@ <li> <a href="#SWS-2">How do I select which OS to run on each node?</a> <li> <a href="#SWS-3">Can I load my own software (RPMs) on my nodes?</a> <li> <a href="#SWS-4">Can I schedule programs to run - automatically when a node boots</a> - <li> <a href="#SWS-5">How does my software determine when other + automatically when a node boots?</a> + <li> <a href="#SWS-5">How can I turn on routing or set up routes + automatically in my nodes?</a> + <li> <a href="#SWS-6">How does my software determine when other nodes in my experiment are ready?</a> - <li> <a href="#SWS-6">Can I run my own Operating System?</a> + <li> <a href="#SWS-7">Can I run my own Operating System?</a> </ul> <li> <a href="#SEC">Security Issues</a> @@ -347,8 +349,66 @@ <a href = "tutorial/tutorial.php3">Emulab Tutorial</a> for an example. </p> - + <li><a NAME="SWS-5"></a> + <h3>How can I turn on routing or set up routes automatically + in my nodes?</h3> + <p> + You can use command mentioned above (<tt>tb-set-node-startup</tt>) + in your NS file to specify a simple script in your home directory + that will do this. For instance, if I had a node called router, + and wanted to turn on routing in it, I would add these two lines + to my NS file: +<pre> +tb-set-node-os $router FBSD40-STD +tb-set-node-startup $router /users/myname/router-startup +</pre> + That would cause router to boot FreeBSD, and call my + router-startup script, which should look like this: +<pre> +#!/bin/sh +/usr/site/bin/su1 sysctl -w net.inet.ip.forwarding=1 +/usr/site/bin/su1 sysctl -w net.inet.ip.fastforwarding=1 +exit 0 +</pre> + That will make sure that routing gets turned on when my router + node boots. Now say I have a client on one side of the router, + and a server on the other side, and I want to establish a route + from the client to the server through the router, and vice + versa. I would add these lines to my NS file: +<pre> +tb-set-node-startup $client /users/myname/clientroutecmd +tb-set-node-startup $server /users/myname/serverroutecmd +</pre> + This will have the client and the server each call a small script + to set up routes. To add a route (on client) to interface 0 of the + server through router, I would run a script called clientroutecmd + that looks like this (for a node running FreeBSD): +<pre> +#!/bin/sh +sudo route add server-0 router +exit 0 +</pre> + Similarly, to add a route (on server) to interface 0 of the client + through router, I would use this serverroutecmd script: +<pre> +#!/bin/sh +sudo route add client-0 router +exit 0 +</pre> + That should do it. We now will have a router node that really + routes and forwards packets, and a client and a server that know + how to talk to each other through a gateway router. + </p> + <p> + Please see the + <a href="docwrapper.php3?docname=tutorial/nscommands.html">Extensions</a> + page for a summary of all Emulab NS extensions, and the + <a href = "tutorial/tutorial.php3">Emulab Tutorial</a> for an + example. + </p> + +<li><a NAME="SWS-6"></a> <h3>How does my software determine when other nodes in my experiment are ready?</h3> <p> @@ -370,7 +430,7 @@ Daemon</a> documentation. </p> -<li><a NAME="SWS-6"></a> +<li><a NAME="SWS-7"></a> <h3>Can I run my own Operating System?</h3> <p> Yes! You can run your own OS on any of the PCs (the Sharks do not