[FlexNet] cross port digipeating - I wish KISS.EXE was an L1
driver :-(
John Papson
[email protected]
Mon, 8 Sep 2003 07:34:07 -0500
Maiko:
Nothing worst than a bad cable to drive one nuts...
And nothing better than being able to admit to ones error !
FYI to our NOS users:
Here is a nice piece written by Brian N1URO explaining in
extreme detail how to make MFNOS work perfectly with FlexNet
<<HOWTO.FLX.txt>>
73
John WB2CIK
How-to install MFNOS on a pc-FlexNet link
Drafted by N1URO and edited by K2MF
Requires: MFNOS 1.29.2 or greater
March 21, 2003 ver-1.0.7
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
As we all know, there have been issues with linking MFNOS into a Flex-
net machine, and running TCP/IP successfully through Flexnet. After=20
many hours spent, much debating, and some decent code modifications by=20
K2MF to MFNOS to include yet another kluge for the behavior of Flex-
net, N1URO discovered some interesting things (some of which make=20
sense, some do not) that severely affected the behavior of using an=20
IP-VC or an AX.25 virtual circuit IP mode. Whether you are using an=20
AXIP link from NOS to Flexnet, a KISS serial link from NOS to Flexnet=20
or an RF AX.25 path from NOS to digipeat through a Flexnet machine=20
there are many new things to consider due to the dynamic behaviors of=20
how pc-Flexnet operates.
Now to configure! Simply connect NOS to pc-Flexnet as you normally=20
would. I personally happen to use the IPPD module for Flexnet and use=20
AXIP over ethernet between my MFNOS and Flexnet, however a KISS serial=20
interface may be treated in an identical fashion.
In Flexnet, it is BEST to configure the NOS link so that NOS' SSID is=20
independent of the Flexnet machine. If you don't, then it is quite=20
possible (and very probable) that Flexnet's kernel may try to take=20
control over the link layer 2 processes and prohibit the IP-VC from=20
getting through to NOS as shown below:
797: S2 P9 : N1URO-6>WA2SNA-1 v WA2SNA-6*
796: S0 P7 : WA2SNA-1>N1URO-6 v WB2ZII-9
Here we have an attempt to create an IP-VC through WA2SNA's Flexnet=20
from N1URO-6 [44.88.44.1] however because the NOS SSID (WA2SNA-1)=20
is aliased within the range of Flexnet (WA2SNA 0-14), the kernel is=20
responding quicker than NOS is and grabs control of the link layer 2.=20
You will notice above in process number 796 where the digipeater=20
WA2SNA-6* is omitted as proof of my theory. It is my personal sug-
gestion from many tests that (depending on your individual configura-
tion) if you are going to add an IP gateway using MFNOS to your Flex-
net site you plan out your SSID range in Flexnet so that one non-user=20
SSID (0 or 15) is allocated for the MFNOS node. If you are going to=20
allocate your Flexnet SSID range from 1-14, I would suggest using -1=20
for MFNOS, and then set your SSID range in Flexnet from 2-14 instead. =20
This way if MFNOS unfortunately locks up, freezes, vanishes, etc. for=20
whatever reason, or is overburdoned with another process at the same=20
time an IP-VC request comes in, the Flexnet kernel will not answer the=20
incoming request and create a bogus link layer 2 connection. Here I=20
have Flexnet configured as N1URO (1-4) with NOS having the next avail-
able SSID which is 5.
NOTE: Remember that in a pc-Flexnet network, when a machine vanishes=20
from the direct link, Flexnet will tell the WAN to delete that machine=20
from the Flexnet destination lists, which also will successfully dis-
connect the VC to the remote NOS machine.
On a wired AX.25 link, Flexnet will poll NOS approximately every 2-3=20
minutes, so if you have a batch file to restart NOS, you may wish to=20
add a timer using the DOS CHOICE command which will wait 3 minutes=20
before reloading NOS. This will give Flexnet a chance to see that NOS=20
is down and Flexnet will force a flush of VC links to all other remote=20
NOS ends. I personally observed this one night where the path from=20
K2BJG-8 to N1URO-5 failed during a TCP connection. While the fault=20
was within the Flexnet WAN cloud, Flexnet did disconnect the VC at=20
both NOS machines which automatically re-established itself without=20
disrupting the TCP connection when the Flexnet path was restored.
Now let's first configure Flexnet properly.
Step 1:
Create your SSID range properly. The first SSID you configure in=20
Flexnet is also the node's primary SSID. Since I will give MFNOS an=20
SSID of 5, I will configure Flexnet to have the SSID range of 1-4 as=20
follows:
=3D>mycall n1uro 1 4
Remember, if you are also a user on the network, do *not* assign your=20
nodes with an SSID of 0 or 15 or you will lock yourself out of the=20
network!
Step 2:
Configure your pc-Flexnet machine with a link to NOS as a non-Flexnet=20
destination that is routable within the Flexnet WAN. You may do so by=20
telling Flexnet to link the interface number to NOScall-SSID. In my=20
example, NOS links on interface 3 so my link statement in pc-Flexnet=20
is:
=3D>L 3 N1URO-5 @ <-- @ =3D routable non-Flexnet aware machine
Step 3:
You have to give the interface an SSID to enable connections through=20
the Flexnet digipeater. This must be an unused interface SSID within=20
the SSID range you specified for Flexnet. You do this by using the=20
parameter command in Flexnet. In my example I will set an SSID of=20
2 to interface 3:
=3D>P S 2 3
Failure to do so will cause Flexnet to deny any and all outbound link=20
requests from NOS!
Flexnet's side is now complete.
Now let's configure NOS. I personally use independent interface .src=20
files for managing interfaces on my copy of MFNOS which I call using=20
the 'source <filename>' command in autoexec.nos. The following exam-
ples are from my file called 'flexnet.src' in which I name the=20
interface "FlexNet". You will have to adjust your timers accordingly
to your specific needs. The example below shows TCP settings for my=20
interface with an initial retry timer of 20 seconds (if no TCP ACK is=20
received) and it will use a linear timer type to back itself off to a=20
retry time of 1 full minute in case the network is busy with other=20
traffic such as PBBS mail forwarding connections. The retries setting=20
of 8 will let TCP retry a maximum of 8 times in case the IP-VC fails=20
for whatever reason and needs restarting... thus allowing TCP to pick=20
up where it left off and not totally time out. Using your existing=20
'ifconfig <interface>' commands modify the following:
ifconfig FlexNet tcp blimit 3
ifconfig FlexNet tcp irtt 20000
ifconfig FlexNet tcp maxwait 60000
ifconfig FlexNet tcp retries 8
ifconfig FlexNet tcp timertype linear
Similar settings for the AX.25 layer can also be applied to the inter-
face. The example below shows that on link layer 2, it will initially=20
retry the packet within 5 seconds if it has not heard an ACK. This=20
will give Flexnet more than enough time to digipeat the packet for=20
you. The check timer is almost void since in reality all it will be=20
doing is checking the process link to Flexnet, not the *real* virtual=20
circuit. Flexnet itself will check the IP-VC circuit to see whether=20
or not the processes are still valid and if not will close them. =20
Again, you will have to adjust these pending your own specific tests. =20
It is quite possible that your link to Flexnet itself is very rapid=20
however if the direct neighbor *to* the Flexnet link is slow then we=20
don't wish to flood the network with retries too fast.
ifconfig FlexNet ax25 blimit 3
ifconfig FlexNet ax25 check 60000
ifconfig FlexNet ax25 irtt 5000
ifconfig FlexNet ax25 retries 10
ifconfig FlexNet ax25 timertype linear
Now let's tell AX.25 in NOS how to deal with the interface, and add=20
other things Flexnet likes such as digipeating, etc.:
ax25 digipeat FlexNet on
This enables digipeating on the interface.
ax25 mode FlexNet vc
Set the default IP mode to virtual circuit. This also forces any con-
nections on this interface to prohibit a mailbox server from launching=20
unless the user 'kicks' the mailbox with a packet having a Text PID=20
(by pressing the [Enter] key). This also blocks Flexnet's link pol-
ling connections from showing up as user logins by you! In a 24 hour=20
time period Flexnet can login as you to your NOS mailbox over 200=20
times! That is just simply annoying and irritating and presents you=20
with bogus mailbox login statistics. It is also a requirement of the=20
kluge code (see K2MF's modifications in 1.29.2).
Now add a route to the local Flexnet machine and let the VC default IP=20
mode comply with anti-polling/login kluges. If there is no pre-exist-
ing AX.25 connection from Flexnet to NOS, Flexnet will check the link=20
by issuing an SABM (connect request) packet to NOS. In compliance=20
with normal AX.25 specifications, NOS will send a UA (unnumbered ack-
nowledgement) packet back to Flexnet which verifies to Flexnet that=20
the link is still valid and to which Flexnet will then immediately=20
send a DISC (disconnect request) packet to NOS.
ax25 route perm n1uro-1 FlexNet # Add a route to FlexNet N1URO (1-4)
ax25 hport FlexNet on # Log callsigns heard
ip hport FlexNet on # Log IP addresses heard
In autoexec.nos, be sure to have the following set:
ax25 jumpstart on
Jumpstart being on when the IP mode is VC has no meaning during the=20
initial setup of the VC but it is now necessary for the K2MF kluge=20
code to work properly.
Now let's configure the routing. Personally, I keep all IP routing=20
commands in a seperate file called 'iproutes.src' (like with my inter-
face configuration commands). If you used the install.bat file, you=20
will notice that these commands (as with the interface commands) were=20
included in autoexec.nos. Either will work, but if you call routines=20
from external files they must be loaded with the 'source=20
<drive>:/<path>/<filename>.src' command in NOS. With that said,=20
let's create an IP route through N1URO (1-4) Flexnet to IPUE:AA1UE-8=20
MFNOS using the following commands:
ax25 route perm aa1ue-8 FlexNet n1uro-1
This configures an AX.25 digipeated route to AA1UE-8 through Flexnet. =20
It also raises the question, if the Flexnet port SSID is -2, why did=20
we use -1? This simply helps NOS tap into the power of Flexnet's=20
dynamic routing. When a packet is received by Flexnet, it looks at=20
four possible ways to route it! First, it checks its Link list to=20
determine whether or not the callsign belongs to a direct neighboring=20
link. If it doesn't, then Flexnet checks its Destinations list for=20
the callsign. If the callsign is not on the Destinations list, then=20
Flexnet checks its Mheard list for the callsign. If the callsign is=20
not on the Mheard list, then Flexnet will attempt to connect to the=20
callsign through all interfaces that have SSIDs attached to them until=20
the request times out or the remote machine sends an acknowledgement=20
to Flexnet, which then puts the callsign on the MHeard list and Flex-
net will start to route to it that way. Also, remember that the first=20
SSID configured in Flexnet is its primary SSID.
ax25 jumpstart exclude aa1ue-8
Ignore any I (information) frame that contains a Text PID from AA1UE-8=20
and also prohibit the mailbox server from ever spawning to AA1UE-8,=20
unless the source connection is from a human (see K2MF's release notes=20
for 1.29.2).
arp add 44.88.40.42 ax25 aa1ue-8 FlexNet
Create an ARP list entry to which the 'next IP gateway', in this case=20
44.88.40.42, may be resolved.
route add 44.88.40.42/32 FlexNet 44.88.40.42
Create an IP route to this single machine using the FlexNet interface. =
If 44.88.40.42 was routing for a larger block, then that entire block=20
may be added to the route list instead.
Now load NOS and let's attempt to ping AA1UE-8 [44.88.40.42] over my=20
1k2 user interface:
ipuro-R> ping aa1ue
ipuro-R> 44.88.40.42: rtt =3D 2680 ms
Let's also check the AX.25 virtual circuit:
ipuro-R> ax25 status
74e2 0 0 N1URO-5 AA1UE-8 FlexNet Connected
and the AX.25 route:
ipuro-R> ax25 route
AA1UE-8 FlexNet Perm default N1URO-1
At this point, all should be fine!
I hope this "How-to" helps you in not only successfully routing IP=20
through a Flexnet WAN cloud, but also gives you some basic under-
standing as to how Flexnet handles the link layer 2 encapsulation=20
of IP frames through a Flexnet digipeater node. Flexnet is much more=20
dynamic and robust in how it handles its AX.25 routing, and unlike our=20
previous TheNet/X1J network is more of a real time router where nodes=20
come and go quickly throughout the WAN. Also, in this configuration,=20
the Net/Rom layer 3 has been eliminated (which is good in the sense=20
that there is less packet overhead and more room for data).
Comments are always welcomed.
73 de
Barry K2MF
Brian N1URO
eof >>
--- StripMime Report -- processed MIME parts ---
multipart/mixed
text/plain (text body -- kept)
text/plain (text body -- kept)
The reason this message is shown is because the post was in HTML
or had an attachment. Attachments are not allowed. To learn how
to post in Plain-Text go to: http://www.expita.com/nomime.html ---