4.3.4. TABELE TRAS ŁĄCZNOŚCI
W oprogramowaniu
NOS występują trzy główne sposoby wyboru tras łączności (ang. routing): wybór na poziomie
protokółu AX.25, na poziomie protokółu NET/ROM i na poziomie protokółu IP. Pierwsza z
możliwości jest identyczna z metodami stosowanymi w trakcie zwykłych łączności pakiet
radio. Do aktualizacji zbioru tras służy grupa rozkazów "ax25 route", przykładowo dodanie
trasy połączenia ze stacją oe1kda przez przekaźnik oe1xgr wymaga podania rozkazu
"ax25 route add oe1kda oe1xgr". Grupa rozkazów "netrom route" pozwala na aktualizację
listy tras prowadzących przez węzły NET/ROM. Trasy te aktualizowane są zasadniczo
automatycznie, w niektórych przypadkach konieczne może być przeprowadzenie korektur.
Najwyższym stopniem jest wybór na poziomie protokółu IP. Do aktualizacji zestawu tras
służy grupa rozkazów "route".
Łączność ze stacjami dostępnymi przez stacje przekaźnikowe poziomu
drugiego - przekaźniki cyfrowe (ang. digipeater) - może być nawiązana za pomocą rozkazu
"connect stacja przek1 przek2 ....", nie występuje tu słowo via. Trasa połączenia jest
w tym wypadku ustalona z góry przez operatora. Podany wyżej rozkaz "connect" powoduje
wpisanie na stałe trasy połączenia do tabeli arp. Zawartość tabeli może być wywołana
za pomocą rozkazu "ax25 route". Wpisu tras do tabeli można dokonać także za pomocą
rozkazu (podobnie jak w poprzednim przypadku jest to wpis stały)
"ax25 route add stacja przek1 przek2 ... ".
Rozkaz ten może występować w zbiorze autoexec.nos lub być podany na
bieżąco. Połączenia ze stacjami, do których trasy są znane mogą być nawiązywane za pomocą
rozkazu "connect" bez konieczności wymieniania stacji przekaźnikowych. Trasy połączeń
wpisywane są do tabeli automatycznie w przypadku nawiązania połączenia przez korespondenta.
Są to wpisy dynamiczne o ograniczonym czasie przechowywania.
W łącznościach pakiet radio stosowane są pakiety numerowane
(pakiety informacyjne typu I). Natomiast w łącznościach TCP/IP numeracja pakietów jest
zbędna i powoduje nadmierną liczbę powtórzeń. Datagramy TCP/IP są numerowane niezależnie
co pozwala na wykrycie braków i zażądanie powtórzenia przez warstwy wyższe protokółu. Dla
komunikacji TCP/IP jest więc korzystniejsze podanie rozkazu "mode ax0 datagram" w zbiorze
autoexec.nos.
Tryb ten obowiązywałby dla wszystkich połączeń, dlatego też dla
połączeń AX.25 konieczne jest podanie w zbiorze autoexec.nos lub routes.net rozkazów
"ax25 route mode znak vc" dla każdej z tras. Zbiór routes.net należy do zbiorów
dodatkowych i musi być zadeklarowany w zbiorze autoexec.nos za pomocą rozkazu source,
podobnie jak zbiór config.net.
Przykłady:
ax25 route add sp5bd sr5bbs
ax25 route add sp5wca sr5bbs
ax25 route mode sp5bd vc
ax25 route mode sp5wca vc
ax25 route mode sr5bbs vc
Jeżeli najbliższa stacja TCP/IP nie jest osiągalna bezpośrednio lub
przez stację przekaźnikową można posłużyć się retransmisją przez stacje węzłowe NET/ROM lub
podobne. W tym celu należy uruchomić protokół NET/ROM. Datagramy TCP/IP pakowane są wówczas
do pakietów NET/ROM i transportowane przez sieć stacji węzłowych. Jak opisano poprzednio
węzeł NET/ROM uruchamiany jest za pomocą rozkazów: attach netrom, mode netrom vc i start
netrom.
Rozkaz "netrom verbose on" deklaruje stację jako węzeł przeznaczony
do użytku przez inne stacje i udostępnienie innym węzłom tabeli tras, a rozkaz
"netrom bcnodes" powoduje natychmiastowe nadanie zawartości tej tabeli. Znaczenie
parametrów węzła NET/ROM zostało omówione poprzednio.
Retransmisja datagramów TCP/IP z wykorzystaniem protokółu NET/ROM
wymaga dokonania odpowiednich wpisów w tabeli tras IP, w tabeli ARP i w tabeli tras NET/ROM.
Są to następujące wpisy (w zbiorze autoexec.nos lub routes.net):
route add <nazwa_stacji> netrom <nazwa_węzła_netrom>,
arp add <nazwa_stacji> netrom <znak_stacji>,
netrom route add <pseudonim> <znak_netrom> ax0 192 <nazwa_netrom>,
netrom route add <pseudonim> <znak_stacji> ax0 192 <nazwa_netrom>.
Przykład (przy założeniu, że węzeł NET/ROM stacji sp5bd ma znak sp5bd-11):
route add region5/24 netrom sp5bd,
arp add sp5bd netrom sp5bd-6,
netrom route add wars sr5net ax0 192 sr5net,
netrom route add wil sp5bd-11 ax0 192 sr5net.
Wpis "route add .... netrom" jest konieczny dla każdej stacji
osiągalnej za pomocą protokółu NET/ROM. W tym przykładzie stacja sp5bd znajduje się w
regionie 5. Grupowanie adresów omówione jest w następnym punkcie. Rozkaz
"arp add ... netrom" wiąże adres IP z adresem zawartym w tabeli tras NET/ROM. Rozkaz
"netrom route add" dokonuje wpisu do tabeli tras (węzłów) NET/ROM. Wpisy te zasadniczo
dokonywane są automatycznie i tylko w nielicznych, uzasadnionych przypadkach muszą być
dokonywane przez operatora jako wpisy stałe (wpis 3). Wpis czwarty dotyczy węzła NET/ROM
u korespondenta. Dokonanie wymienionych wpisów pozwala na nawiązanie łączności na poziomie
protokółów TCP/IP przez węzeł NET/ROM (przykładowo komunikacji TELNET, FTP lub TTYLINK).
Wpisy typu "netrom route add <pseudonim> >znak1_netrom>
ax0 192 <znak2_netrom>" pozwalają na nawiązywanie połączeń na poziomie protokółu
NET/ROM z wymienionymi stacjami za pomocą rozkazu "netrom connect <znak>" lub
"netrom connect <pseudonim>". Pseudonimy węzłów NET/ROM-TCP/IP powinny być dobierane
tak, aby umożliwić odróżnienie ich od regularnych węzłów NET/ROM/TheNet sieci pakiet
radio. W sieci pakiet radio pseudonimy związane są najczęściej z lokalizacją stacji.
Rejestracja tabeli tras NET/ROM na dysku dokonywana jest za pomocą
rozkazu "netrom save" a jej odczyt - za pomocą rozkazu "netrom load".
Tabela arp zawiera przyporządkowanie nazw stacji i ich adresów AX.25.
Przykładowo, jeżeli stacja oe1kda pracuje w protokóle TCP/IP korzystając z identyfikatora -5
w tabeli należy umieścić wpis "arp add oe1kda ax25 oe1kda-5" i podobnie dla wszystkich
znanych stacji. Wpisy dokonane za pomocą rozkazu "arp add" są wpisami stałymi. Do ich
skasowania należy posłużyć się rozkazem "arp drop", np. "arp drop oe1kda". Wyświetlenie
zawartości tablicy dokonywane jest za pomocą rozkazu "arp". W przypadku braku wpisu w
tabeli program net (nos) nadaje zapytanie arp; po czym w przypadku otrzymania odpowiedzi,
dokonuje automatycznie wpisu do tabeli. Wpis ten jest wpisem dynamicznym o ograniczonym
czasie przechowywania. Wpisy dynamiczne pozwalają na uwzględnienie zmian zachodzących w
sieci bez interwencji operatora. Usunięcie dynamicznych wpisów do tabeli arp dokonywane
jest za pomocą polecenia "arp flush".
Protokół IP, podobnie jak protokół NET/ROM, może wyszukiwać
samodzielnie trasy połączeń. Nie muszą więc one być w całości znane w momencie nawiązywania
połączenia (w odróżnieniu od omówionych poprzednio połączeń AX.25 przez stacje przekaźnikowe,
nie dotyczy to połączeń przez stacje węzłowe poziomu trzeciego). Pozwala to na uwzględnienie
zmian w sieci pod warunkiem zainstalowania dostatecznej ilości węzłów TCP/IP.
Tabela tras IP zawiera następujące wpisy (umieszczone w zbiorach
autoexec.nos lub routes.net):
route add default ax0,
route add <nazwa_stacji> ax0 <nazwa_węzła_ip>,
route add region5/24 tnc0 <nazwa_węzła_ip>,
route addprivate <nazwa_stacji> ax0 <nazwa_węzła_ip>,
przykład: "route add sp5bd ax0 sr5tcp" przy założeniu, że stacja sr5tcp jest węzłem TCP/IP.
Pierwszy z nich oznacza, że wszystkie nadawane datagramy TCP/IP
są kierowane do kontrolera TNC oznaczonego symbolem ax0. Dla stacji oddalonych, nie
osiągalnych bezpośrednio, podane są nazwy najbliższych węzłów pośredniczących. Dalsza
trasa retransnisji musi być znana jedynie przez ten węzeł (praktycznie musi on znać
tylko węzeł następny). We wpisach tych używane są nazwy węzłów, a nie ich znaki
wywoławcze AX.25. Przyporządkowanie nazw i znaków musi być oczywiście zawarte w
tabeli arp jak to omówiono poprzednio. Zawartość tabeli tras protokółu IP wywoływana
jest za pomocą polecenia "route". Zawartość tabeli tras nadawana jest automatycznie do
stacji sąsiednich. Wpisy dokonane za pomocą polecenia "route addprivate nie są nadawane".
Możliwe jest także podanie trasy do grupy stacji (przykładowo znajdujących się w danym
rejonie). Liczba podana po ukośnej kresce powoduje, że sprawdzane są tylko np. pierwsze
24 bity adresu IP. Stacje o adresach różniących się tylko w ostatnim członie traktowane
są jako jedna grupa. Lista tras przeszukiwana jest aż do momentu znalezienia najbardziej
pasującego wpisu, dla innych stacji obowiązuje wpis ogólny (default).