| 45 | {{{ |
| 46 | [DEFAULT] |
| 47 | |
| 48 | # The directory containing this file |
| 49 | base: /vim/fedd_desktop |
| 50 | |
| 51 | [access] |
| 52 | |
| 53 | log_level: debug |
| 54 | # Saved controller state |
| 55 | access_state: %(base)s/desktop_access.state |
| 56 | # saved access info (generated by access_to_abac.py) |
| 57 | accessdb: %(base)s/desktop_access_map |
| 58 | # The ABAC database (generated by access_to_abac.py) |
| 59 | certdir: %(base)s/certs |
| 60 | # Location of generated scripts and temp data |
| 61 | localdir: %(base)s/local |
| 62 | |
| 63 | auth_type: abac |
| 64 | auth_dir: %(base)s/abac |
| 65 | |
| 66 | # The hostname of the machine we run on |
| 67 | hostname: vim.isi.edu |
| 68 | |
| 69 | # If set the first hop router to DETER (DNS name or IP address) |
| 70 | # gateway: first_hop.your.domain |
| 71 | |
| 72 | # If set the IP address of the interface to use in accessing DETER (Linux only) |
| 73 | # interface_address 192.168.1.1 |
| 74 | |
| 75 | [globals] |
| 76 | # The controllers self-signed identity (X.509 cert) |
| 77 | cert_file: %(base)s/fedd.pem |
| 78 | # Port on which to listen |
| 79 | services: 23235 |
| 80 | # This is a desktop access controller |
| 81 | access_type: desktop |
| 82 | }}} |
| 83 | |
| 84 | You will want to change {{{base}}} to point to the configuration file, and {{{hostname}}} to be the DNS name of the machine the controller runs on. If you want to route the experimental traffic through a particular interface, you can use the {{{gateway}}} or {{{interface_address}}} parameters to select the interface to use. If {{{gateway}}} is set, the interface that routes to that gateway will be used. If {{{interface_address}}} is set, the interface that has that address assigned will be used. Currently {{{interface_address}}} only works on Linux machines. |
| 85 | |
| 86 | The rest of the defaults are probably acceptable, but they are described in the comments and [FeddConfig#MainConfigurationFilefedd.conf this documentation]. |
| 87 | |
| 88 | In addition, in the configuration directory create 3 subdirectories: |
| 89 | |
| 90 | * certs - used to hold allocation fedids (if you prefer another name, change the {{{certdir}}} parameter in {{{desktop.conf}}} to point at it) |
| 91 | * local - used to hold controller data and the startup and shutdown scripts (if you prefer another name, change the {{{localdir}}} parameter in {{{desktop.conf}}} to point at it) |
| 92 | * abac - used to hold ABAC data (if you prefer another name, change the {{{auth_ir}}} parameter in {{{desktop.conf}}} to point at it) |
| 93 | |
| 94 | === Configuring ABAC === |
| 95 | |
| 96 | The simplest configuration of the desktop controller allows a specific DETER user to access it. To set that up, create a file called {{{desktop_access}}} with a line similar to the following: |
| 97 | |
| 98 | {{{ |
| 99 | (fedid:e630047380b1060ce03d19e373b8047bb785031a,<any>,faber)-> access, (access) |
| 100 | }}} |
| 101 | |
| 102 | Change {{{faber}}} to the username of the DETER user you wish to grant access. If you want multiple users to be able to federate this machine, add additional lines with the same format. The fedid at the beginning of the line is the fedid of the DETER experiment controller. This line allows the named DETER users (as validated by the experiment controller) to federate this machine. |
| 103 | |
| 104 | To make that operative, use the [FeddABAC#access_to_abac.py access_to_abac.py] command to create the ABAC database: |
| 105 | |
| 106 | {{{ |
| 107 | $ access_to_abac.py --cert=fedd.pem --dir=/usr/local/etc/fedd/abac --type=skel --mapfile=desktop_access_map ./desktop_access |
| 108 | }}} |
| 109 | |
| 110 | That command must be run from the configuration directory. The argument to {{{--dir}}} must be an absolute pathname. |
| 111 | |
| 112 | At this point you should be able to start the controller: |
| 113 | |
| 114 | {{{ |
| 115 | $ fedd.py --config /usr/local/etc/fedd/desktop.conf |
| 116 | }}} |
| 117 | |
| 118 | == A test experiment == |
| 119 | |
| 120 | This file contains a two node experiment, one node on DETER and the other on your desktop: |
| 121 | |
| 122 | {{{ |
| 123 | # simple DETER topology federated to a desktop |
| 124 | # |
| 125 | # SERVICE: project_export:deter::project=SAFER |
| 126 | # |
| 127 | |
| 128 | set ns [new Simulator] |
| 129 | source tb_compat.tcl |
| 130 | |
| 131 | set a [$ns node] |
| 132 | set b [$ns node] |
| 133 | tb-set-node-testbed $a "deter" |
| 134 | |
| 135 | tb-set-node-testbed $b "desktop" |
| 136 | |
| 137 | set link0 [ $ns duplex-link $a $b 100Mb 0ms DropTail] |
| 138 | |
| 139 | $ns rtproto Static |
| 140 | $ns run |
| 141 | |
| 142 | }}} |