1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306
|
ax25rtd with DG2FEF/DG1KJD Linux-AX.25 Kernel NOTES:
- Here is an example ax25rtd.conf file:
ax25-maxroutes 256
ip-maxroutes 256
ip-encaps-dev ipax0
[sp0]
ax25-learn-routes yes
ax25-learn-only-mine yes
ip-adjust-mode no
ip-learn-routes no
arp-add yes
[ipax0]
arp-add yes
ip-learn-routes yes
- ax25-learn-only-mine has to be on for now, since ax25rtd is not able to
recognize digipeater paths yet when this node is part of it.
- ax25rtd will be replaced as soon as possible by something reasonable, so
this is only a temporary solution
- ipax0 must be up when ax25rtd is startet
- all other listeners (ax25d et al) must be registrated at this point of
time, too
- There must be an entry for ipax0 in /etc/axports, here is an example:
ipax0 dg1kjd-10 76800 256 7 IP-encap device
----
Jens
*****************************************************************
* Please send all comments and suggestions regarding ax25rtd to *
* Klaus Kudielka (klaus.kudielka@ieee.org). *
*****************************************************************
Just a quick small README...
This will hopefully go into the man pages ASAP.
Ax25routed
----------
/usr/sbin/ax25rtd
This is a daemon that:
- emulates the ceased "autorouter" of Linux Kernel AX.25
- sets up ARP entries automagically
- may adjust IP routes and encapsulation mode
(although I really do not recommend to use this feature...)
The "autorouter" is not really an autorouter. It just listens to the AX.25
traffic on your ports and uses this information to setup AX.25 routes. This
can be turned on or off by altering the configuration file
/etc/ax25/ax25rtd.conf.
Ax25routed provides a socket /var/ax25/ax25rtd/control which is used for
runtime maintainance through ax25rtctl or to set up new routes by other
daemons (a Flexnet router, perhaps?)
On startup ax25rtd reads the configuration file and afterwards preloads
the caches from the files /var/ax25/ax25rtd/ax25_route and
/var/ax25/ax25rtd/ip_route. On SIGTERM or ax25rtctl --save it saves the
caches to those files.
ax25rtd.conf
---------------
The file /etc/ax25/ax25rtd.conf is the configuration file for ax25rtd.
The parameters of the options shown here are the default values except the
ones marked with (example)
ax25-maxroutes 256
ip-maxroutes 256
The maximum size of the three lists / caches. On overflow,
ax25rtd will substitute the oldest entry with the new one.
[1k2]
This marks the beginning of per-port definitions. Note that
you have to use port names as defined in axports(5) here,
anywhere else you may use the port or the device name.
ax25-learn-routes no
Set this to "yes", ax25rtd will add the routing information
for every heard frame (with complete digipeater path) to the
kernel AX.25 routing table. Note that ax25rtd's internal cache
will be updated anyway, regardless of this option.
ax25-learn-only-mine no
If you set it to "yes", only frames that are sent to (1) the
interface callsign, (2) any of the listeners on this device, or
(3) the callsigns specified by ax25-more-mycalls will be used
to update the internal cache and (depending on
ax25-learn-routes) the kernel routing table.
ax25-add-path db0ach (example)
This is useful on DAMA digipeaters. In this case, the DAMA
master has to be used for _every_ AX.25 connection, thus
ax25rtd will add this digipeater(s) to every target we learn
that has no digipeater path (yet). "db0ach" is just an
example here.
ax25-more-mycalls dl1bke dl1bke-8 (example)
You can specify more calls as calls here that belong to
this interface... "dl1bke" and "dl1bke-8" are examples.
ip-learn-routes no
If set to "yes", ax25rtd will modify the IP routing table if it
receives an IP frame (directed to us). This is dangerous!
It should not screw up your routing table, though. Ax25rtd
recognizes the netmask of the device and will adjust the route
only if it fits the netmask and the old route points to
one of the devices ax25rtd knows about (hence an AX.25 device).
The problems begin if you have more than one port and a user
is able to hear your outgoing traffic on at least two of them.
Due to technical reasons ax25rtd adjusts the route _after_ the
kernel has sent the reply to the received TCP frame already.
This has technical reasons.
If the remote does the same both are switching between the two
ports.
Don't use this feature unless you know what you are doing.
It _should_ be safe do enable this on one-port machines, although
I strongly recommend to set a network route instead, i.e.:
route add -net 44.0.0.0 scc3
Note that ax25rtd's internal cache will be updated anyway,
regardless of this option.
irtt <irtt>
If ip-learn-routes is enabled this will assign newly added
routes an initial round trip time (IRTT) for TCP. <irtt>
is measured in msec, hence
irtt 10000
sets the irtt to 10 seconds. A value of 0 disables this
feature (default).
ip-adjust-mode no
If you set this option to "yes" ax25rtd will change the IP
encapsulation mode according to the last received IP frame.
The problem with this option is that the kernel AX.25 sends
a received IP frame to the IP layer regardless if it was
sent in UI frame encapsulation "mode datagram (dg)" or
in I frame encaps, hence in an AX.25 connection, "mode virtual
connect (vc)". The Linux kernel will respond to this frame
before ax25rtd can adjust the mode. If the remote does the
same... You get the picture.
Don't use this feature unless you know what you are doing.
arp-add no
This option, if set to "yes", changes the ARP table to the
source callsign of the received frame. It should be harmless,
just has the the effect that if it is a new entry, the Linux
ARP code will send one ARP request before ax25rtd has adjust
the ARP table. If there was already an existing ARP entry
for this IP route, one IP datagram will be sent to the old
address. Not really a problem, I hope.
Ax25rtctl
---------
/usr/sbin/ax25rtctl <option>
This is a program to control ax25rtd. There are several options:
ax25rtctl --add ax25 <callsign> <dev> <time> [digipeater]
ax25rtctl -a ax25 <callsign> <dev> <time> [digipeater]
Add an entry to the AX.25 routing table. If time is "0"
this entry will be marked permanent, hence: the daemon will not
overwrite this route.
ax25rtctl --del ax25 <callsign> <dev>
ax25rtctl -d ax25 <callsign> <dev>
Remove an entry from the AX.25 routing table.
ax25rtctl --add ip <ip> <dev> <time> <call> <ipmode>
ax25rtctl -a ip <ip> <dev> <time> <call> <ipmode>
Add an entry to the IP routing table. If time is "0" the
entry will be marked permanent.
ax25rtctl --del ip <ip>
ax25rtctl -d ip <ip>
Remove an entry from the IP routing table.
ax25rtctl --list ax25
ax25rtctl -l ax25
Lists the content of the cache for the AX.25 routing table.
ax25rtctl --list ip
ax25rtctl -l ip
Lists the content of the cache for the IP routing table.
ax25rtctl --expire <minutes>
ax25rtctl -e <minutes>
Removes the entries older than <minutes> from the caches and
the kernel routing tables.
ax25rtctl --save
ax25rtctl -s
Saves the AX.25 and IP cache to /var/ax25/ax25rtd/ax25_route and
/var/ax25/ax25rtd/ip_route (or the files specified in
/etc/ax25/ax25rtd.conf).
ax25rtctl --reload
ax25rtctl -r
Reloads the config file /etc/ax25/ax25rtd.conf. This will
*not* affect the caches or the heard list.
ax25rtctl --shutdown
ax25rtctl -q
Same as 'killall -TERM ax25rtd' ;-)
ax25rtctl --version
ax25rtctl -V
Guess what...
Note that you can specify either the port name (as defined in
/etc/ax25/axports) or the interface name (shown by ifconfig). If names
conflict (i.e. port scc0 is in fact interface scc3, and vica versa), the
interface name has precedence over the port name. Example:
ax25rtctl --add ax25 dl0tha scc3 0 db0pra
is equivalent to
ax25rtctl --add ax25 dl0tha 9k6 0 dbpra
All commands return port names in their output, though.
With one exception: ax25_route and ip_route use interface names.
/var/ax25/ax25rtd/control
----------------------------
The commands recognized on this socket are:
add ax25 <callsign> <dev> <time> [<digipeater>]
Add an AX.25 route
add ip <ip> <dev> <time> <call> <mode>
Add an IP route & mode
del ax25 <callsign> <dev>
Remove an AX.25 route from cache an kernel routing table
del ip <ip>
Remove an IP route from cache and kernel routing table
list [ax25|ip]
List cache entries.
reload
Reload config
save
Save cache
expire <min>
Expire cache entries older than <min> minutes
shutdown
Save caches and exit
version
Prints the version of the ax25rtd
Note that every command has to end with a '\n', and every line of the
response ends with an '\n' as well. The last line of a cache list
is just a period alone on a line (".\n").
|