SIECI
KOMPUTEROWE – adresacja IP
Konfiguracja TCP/IP na Linuxie
Ponieważ
TCP/IP jest niezależne od dolnej warstwy fizycznej, adresy IP nie są
implementowane w sprzęcie, lecz w oprogramowaniu sieciowym. W odróżnieniu od
adresów Ethernet, które są określone wewnątrz kart sieciowych, administrator
przypisuje adresy TCP/IP do każdego interfejsu. Do przypisania adresu
sieciowego do danego interfejsu służy polecenie ifconfig.
Dodatkowo
należy każdy adres dodać do tablicy routingu, do tego celu służy komenda route.
ifconfig
Polecenie
ifconfig przypisuje lub sprawdza konfiguracyjne wartości interfejsu sieciowego.
Polecenie to jest używane do nadawania każdemu interfejsowi adresu IP, maski
podsieci i adresu rozgłoszeniowego. Przypisanie adresu IP ma następującą
postać:
ifconfig eth0 172.16.121.5 netmask
255.255.255.0 broadcast 172.16.121.255
W
powyższym wywołaniu występują następujące parametry:
interfejs
Nazwa
sieciowego interfejsu, który chcemy skonfiguraować poleceniem ifconfig.
adres
Adres
IP przypisywany do interfejsu. Należy wprowadzić adres IP w postaci dziesiętnej
z kropkami lub podać nazwę komputera.
netmask
Maska
podsieci dla danego interfejsu. Jeżeli sieć nie jest podzielona na podsieci to
argument ten można ignorować.
broadcast
Używany
w sieci adres rozgłoszeniowy. W większości systemów jest to adres w którym w
części oznaczającej komputer występują same jedynki.
Dane
określające adres, maskę oraz broadcast muszą zostać ustalone przez
administratora sieci.
Po
wywołaniu polecenia ifconfig bez podania parametrów otrzymamy opis bieżącej
konfiguracji:
lo
Link encap:Local Loopback
inet addr:127.0.0.1
Bcast:127.255.255.255
Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING
MTU:3584 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0
TX packets:2 errors:0 dropped:0 overruns:0 eth0
Link encap:Local Ethernet
inet addr:172.16.121.5
Bcast:129.1.255.255
Mask:255.255.255.0
UP BROADCAST LOOPBACK RUNNING
MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0 sl0
Link encap:Serial line
inet addr:172.16.228.5
Bcast:172.16.255.255
Mask:255.255.255.0
UP BROADCAST LOOPBACK RUNNING MTU:296
Metric:1
RX packets:1 errors:0 dropped:0 overruns:0
TX packets:0 errors:0 dropped:0 overruns:0 |
Występują
tu następujące nazwy interfejsów:
lo -
loopback
eth0 -
pierwsza karta sieciowa
sl0 -
pierwszy modem lub linia szeregowa
Routing
statyczny
Routing statyczny używany jest
wówczas, gdy mapa połączeń sieciowych jest programowana w routerze „ręcznie”
przez administratora. W razie, gdy jakaś ścieka zostanie przerwana,
administrator
musi przeprogramować router, aby
odpowiednie pakiety mogły dotrze do celu. W systemach sieciowych o kluczowym
znaczeniu taki sposób trasowania jest niemożliwy do zaakceptowania.
Stosuje się więc dynamiczne routery,
które automatycznie diagnozują stan połączeń i wyznaczają połączenia
alternatywne.
Polecenia route można używać do dodawania lub usuwania
elementów w tablicy rutowania. Aby dodać host do tablicy rutowania należy
wpisać następującą komendę:
route
add -host 172.16.121.1 network 255.255.255.0
pierwszy parametr add powoduje dodanie elementu, kolejny
parametr mówi o rodzaju dodawanego interfejsu może to być -host tak ja w
powyższym przykładzie, lub -net dla dodania rutingu dla określonej sieci. Dalej
jest podany numer IP danego elementu oreaz jego maska sieciowa. Podawanie masek
sieciowych nie jest konieczne, ale zalecane, ponieważ przy ich braku polecenie
route samo wylicza maskę i często jest ona inna niż spodziewana.
Można również dodawać domyślne gateway'e aby uprościć
trasy rutowania. Polecenie dodawania wartości domyślnej wygląda następująco:
route
add default gw technel
po wykonaniu tego polecenia serwer technel stanie się
domyślnym ruterem w sieci. Trasa ta będzie używana w przypadku gdy nie jest
wyspecyfikowana konkretna marszruta do miejsca przeznaczenia. W przypadku gdy w
sieci istnieje tylko jeden gateway, kieruje się na niego wszystkie trasy
domyślne.
Wywołanie polecenie route bez parametrów powoduje
wyświetlenie tablicy rutingu podobnej do poniższej: Kernel IP routing table Destination Gateway Genmask Flags
Metric Ref Use Iface 127.0.0.0
* 255.0.0.0 U 0 0 0
lo 172.16.121.0 * 255.255.255.0 U 0 0 0 eth0 technel * 255.255.255.0 UH 0 0 0
eth0 default technel 255.255.255.255 U 0 0 0
eth0 w powyższej tablicy widać też adres sieci
127.0.0.0, jest to adres wewnętrznej pętli loopback używanej do wewnętrznej
komunikacji serwera. |
Adresy grupowe (multicast)
Niektóre adresy klasy D sa zarezerwowane dla dobrze
znanych grup multicastowych
• 224.0.0.1 – grupa wszystkich hostów
akceptujacych multicast; kazdy
host akceptujacy multicasty zapisuje sie do tej
grupy przy uruchamianiu
• 224.0.0.2 – grupa wszystkich routerów
multicastowych
• 224.0.0.4 – grupa routerów DVMRP (Distance
Vector MulticastRouting
Protocol )
• 224.0.0.5 – grupa routerów OSPF
• · · ·
• 224.0.0.0 - 224.0.0.255 sa zarezerwowane na
potrzeby lokalne (administrowanie
i konserwowanie urzadzen i usług) i nie sa nigdy
przekazywane
dalej przez routery multicastowe
• 239.0.0.0 - 239.255.255.255 zarezerwowane na
potrzeby administrative
scoping
Aby dwa systemy mogły się komunikować między sobą, muszą istnieć możliwość zidentyfikowania i odnalezienia siebie nawzajem. Każdy komputer pracujący w sieci TCP/IP winien mieć przypisany unikalny adres warstwy trzeciej modelu ISO/OSI (adres IP). Wszystkie komputery posiadają ponadto w unikatowy adres warstwy drugiej (adres MAC) przypisywany przez producenta danego urządzenia. Każda informacja (pakiet) wychodzący z komputera posiada w nagłówku dwa w/w adresy (Rys. 1).
Adres IP zawiera pełną informację odnośnie sieci oraz hosta i pozwala jednoznacznie zlokalizować komputer w sieci podczas komunikacji międzysegmentowej. Adres IP nie ulega modyfikacji podczas przemieszczania się pakietu poprzez sieć (z wyłączeniem mechanizmów NAT).
Rys. 2. Informacje zawarte w adresie logicznym
Każdy adres logiczny zawiera podstawowe informacje dotyczące lokalizacji sieci oraz komputera wewnątrz sieci docelowej. Informacje te nazywane są: adresem sieci oraz adresem hosta. Adres sieci jest wykorzystywany przez elementy routujące w celu określenia trasy do hosta docelowego:
[Adres IP] AND [Maska podsieci] → [Adres sieci].
Adres hosta jest wykorzystywany w obrębie właściwej sieci do odnalezienia właściwego odbiorcy:
[Adres IP] AND NOT [Maska podsieci] → [Adres hosta w sieci].
Definicja 1
Komputery nazywamy lokalnymi (potrafiącymi komunikować się bez pośrednictwa elementów routujących), jeżeli identyfikator sieci obydwu hostów jest identyczny oraz zakres adresowy maski pozwala na wzajemną komunikację (adresowanie). Komputery nazywamy zdalnymi, jeśli posiadają one różne adresy sieciowe.
Przykłady:
Identyfikator sieci A: 192.168.79.51 AND 255.255.128.0 →
192.168.0.0
Identyfikator sieci B: 192.168.27.1 AND 255.255.128.0 → 192.168.0.0
Komputery są lokalne względem siebie.
Adresy komputerów posiadają identyczne dwa pierwsze
oktety, stąd pierwsze dwa oktety maski będą wynosić 255.
3. oktet adresu A: 156 → 10011100 B
3. oktet adresu B: 197 → 11000101B
Optymalna maska: 255.255.128.0.
Protokół IP w wersji 4 wykorzystuje 32-bitowy schemat adresowania w celu
identyfikowania sieci, urządzeń sieciowych i komputerów przyłączonych do sieci.
Jest to sekwencją zer i jedynek. Aby ułatwić posługiwanie się adresami IP
zwykle zapisuje się je w postaci czterech liczb dziesiętnych oddzielonych
kropkami.
Adresy IP podzielone są na klasy (schemat adresowania klasego) i każdy adres IP należy do określonej klasy adresowej:
W obrębie każdej klasy sieci możemy utworzyć maksymalnie tyle adresów urządzeń,
na ile pozwala część hosta adresu. Ilość użytecznych adresów wewnątrz każdej
klasy jest jednak pomniejszana o dwa szczególne adresy - jeden będący
identyfikatorem sieci (część hosta wypełniona zerami) oraz drugi będący adresem
rozgłoszeniowym (część hosta wypełniona jedynkami) przeznaczonym do rozsyłania
wiadomości do wszystkich urządzeń w sieci. Ogólnie liczba urządzeń możliwych do
zaadresowania określona jest zależnością:
2ilosc_bitow_hosta − 2
Polityka adresowania klasowego posiada wiele mankamentów wśród których
najwięszym jest duża rozbieżność pomiędzy rozmiarami klas: 28-2
(klasa A), 216-2 (klasa B), 224-2 (klasa C) urządzeń,
powodująca nieefektywne zarządzanie przydzielaniem adresów dla poszczególnych
nabywców. Sytuacja ta spowodowała szybkie wyczerpanie pól adresowych.
Przykładowo chcąc zaadresować 300 urządzeń w sieci musielibyśmy skorzystać z
adresu klasy B (w klasie C możemy zaadresować tylko 254 urządzenia). To
spowodowałoby, że ponad 65000 adresów pozostałoby niewykorzystanych.
Wśród adresów poszczególnych klas wyszczególniono specjalną grupę adresów, tzw. adresów prywatnych, które nie powinny być routowane na zewnątrz. Są to odpowiednio:
W
oparciu o w/w adresy zaleca się projektowanie lokalnych sieci wewnętrznych.
Dodatkowo wyszczególnia się adres specjalny będący adresem lokalnego komputera
(adresem pętli zwrotnej, ang. loop back) postaci 127.0.0.1. Pakiety z
takimi adresami nie wydostają się na zewnątrz wysyłającej maszyny. Adres ten
pozwala zweryfikować poprawność działania interfesju sieciowego na danym
komputerze.
Maska podsieci oddziela część adresową hosta od części sieci. Miejsca, gdzie maska przyjmuje wartość 1 zakładają stałość adresu, natomiast miejsca, w których posiada wartość 0 umożliwiają jego zmianę. Maska może ulegać modyfikacjom, jednakże nie może posiadać wartości 1 po pierwszym wystąpieniu wartości 0, stąd standardowe wartości maski to 128, 192, 224, 240, 248, 252, 254, 255. Częstym zapisem maski jest zapis skrócony określający ilość bitów ustawionych na jeden w masce, tzn. zapis 192.168.1.1 255.255.255.0 oraz 192.168.1.1/24 są równoważne.
W
związku z gwałtownym rozwojem Internetu publiczne adresy IP zaczęły się
wyczerpywać. W celu rozwiązania tego problemu, wprowadzono technikę o nazwie
bezklasowy routing międzydomenowy CIDR (classless interdomain routing). Jest to
jedna z metod mająca na celu poprawienie wykorzystania adresów IP. W technice
tej długość maski podsieci zależy od potrzeb danej podsieci lub wpisu w tablicy
routingu. Zastosowanie CIDR pozwala na efektywniejsze wykorzystanie dostępnej
puli adresowej poprzez jej podział na odpowiednie podsieci. Technika CIDR
zmniejsza problem adresacji, ale go nie likwiduje. Wydzielanie podsieci jest
zabiegiem umożliwiającym podział adresu sieciowego odpowiedniej klasy na
mniejsze rozdzielne części. Technika CIDR eliminuje koncepcję podziału adresów
na klasy i stosowania masek tylko o długości 8-, 16- 24-bitowych. Fizycznie
operacja wydzielania podsieci sprowadza się do zabrania odpowiedniej ilości
bitów z części hosta i przypisanie ich do części sieci adresu IP. Wynikiem
takiej operacji jest powstanie nowych podsieci o ilości hostów mniejszej niż
sieć, z której wyszczególniamy podsieci.
Mechanizm nadsieci polega na łączeniu kilku adresów sieciowych (następujących
po sobie) w większe struktury. Fizycznie operacja wydzielania nadsieci
sprowadza się do zabrania odpowiedniej ilości bitów z części sieci i
przypisanie ich do części hosta. Wynikiem takiej operacji jest powstanie
mniejszej ilości sieci o większej ilości urządzeń.
Przykład:
00000000 →
212.51.216.0,
00100000 →
212.51.216.32,
01000000 →
212.51.216.64,
01100000 →
212.51.216.96,
10000000 →
212.51.216.128,
10100000 →
212.51.216.160,
11000000 →
212.51.216.192,
11100000 →
212.51.216.224.
Pierwszy z adresów utworzonej podsieci nie jest funkcjonalnie
poprawny, gdyż pokrywa się z adresem sieci, z której podsieć została
wydzielona. Ostatni z adresów nie jest również poprawny i nie może być
wykorzystywany, gdyż adres rozgłoszeniowy tej podsieci pokryłby się z adresem
rozgłoszeniowym sieci, z której podsieć wydzielono.
Komputery w sieci są
identyfikowane na podstawie adresów IP (Internet Protocol adress). Każdy z nich
jest kombinacją czterech liczb od 0 do 255. Cóż, przynajmniej my tak to
widzimy. W rzeczywistości jest to ciąg 32 bitów (zer i jedynek). Pokażemy to na
przykładzie:
Adres IP (liczby):
192.168.0.2 Adres IP (bity):
11000000 10101000 00000000 00000010
-------- -------- -------- --------
192 168 0 2 |
Adres IP musi być unikalny dla
każdego komputera, przynajmniej w obrębie jednej sieci. Aby oddzielić maszyny w
sieci i poza nią IP podzielono na dwie części: część sieci oraz część hosta.
Podział zapisany jest za pomocą
maski sieciowej, czyli zbioru zer poprzedzonego zbiorem jedynek. Ta część
adresu, którą można odwzorować w jedynkach jest częścią sieci, reszta to część
hosta. Zazwyczaj maskę zapisujemy jak zwykły adres IP.
Przykład oddzielenia sieci/hosta Adres IP:
192 168 0 2
11000000 10101000 00000000 00000010 Maska:
11111111 11111111 11111111 00000000
255 255 255 0
+--------------------------+--------+
Sieć Host |
Innymi słowy, 192.168.0.14 wciąż
jest częścią naszej przykładowej sieci, ale 192.168.1.2 już nie.
Adres broadcast składa się z
części sieci takiej samej jak reszta komputerów oraz samych jedynek w części
hosta. Każdy komputer nasłuchuje jego adresu IP, gdyż służy on do nadawania
pakietów rozgłaszających.
Adres
broadcast Adres
IP: 192 168
0 2 11000000 10101000
00000000 00000010 Broadcast: 11000000 10101000 00000000 11111111 192
168 0 255
+--------------------------+--------+
Sieć Host |
Podczas połączenia z Internetem,
konieczne jest określenie, który komputer udostępnia z nim połączenie. Komputer
ten nazywamy bramą. To zwyczajna maszyna, ze zwyczajnym adresem IP (np.
172.168.0.1).
Wskazanie serwerów DNS
jest obowiązkową pozycją konfiguracji resolvera nazw. Operacja ta następuje
automatycznie, o ile korzystamy z serwera DHCP, w przeciwnym wypadku musimy
podać ich adresy samodzielnie. Serwery nazw ustawiamy edytując plik:
/etc/resolv.conf. Jeśli
go nie ma, to możemy go utworzyć za pomocą dowolnego edytora lub poleceniem
touch. Podajemy od jednego do trzech serwerów nazw za pomocą słowa kluczowego
nameserver np.:
nameserver 192.168.0.1
Jeśli często odwołujemy się do
maszyn w naszej domenie to możemy ułatwić sobie życie i ustawić domenę
domyślną. Od tej pory podanie samej nazwy hosta (bez części domenowej), będzie
uważane za podanie pełnego adresu. Przykładowe ustawienie domyślnej domeny (np.
jakasdomena.cos) podano poniżej:
domain nazwa.dm
Monitorowanie ruchu sieciowego
drugiej warstwy modelu ISO/OSI w sieci Ethernet
a) Sposoby odwzorowywania adresów
logicznych na adresy fizyczne (m. in. ARP). Aby zobaczyć listę
odwzorawań adresów logicznych na adresy fizyczne, z którymi nasz komputer
miał do czynienia, wydajemy komendę 'arp'. # arp Address HWtype HWaddress Flags Mask Iface 192.168.0.102 ether 00-0D-60-CD-5F-5D C eth0 192.168.0.1 ether 00:0B:6A:32:CA:5D C eth0 Jest to zawartość cache'u
ARP. Aby dowiedzieć się jaki adres fizyczny ma komputer o danym daresie IP,
możemy wykorzystać program
'arping'. $
sudo arping 192.168.0.102 ARPING 192.168.0.2 from 192.168.0.1 eth0 Unicast reply from 192.168.0.102 [00-0D-60-CD-5F-5D] 0.886ms Unicast reply from 192.168.0.102 [00-0D-60-CD-5F-5D] 0.804ms Sent 2 probes (1 broadcast(s)) Received 2 response(s) |
Ruting statyczny
a) Tablice rutingu i pamięć cache rutingu. Aby wyświetlić tablicę
routingu wydajemy komendę: # ip route show 192.168.0.0/24 dev
eth0 proto kernel scope link
src 192.168.0.102 10.22.0.0/24 dev
eth1 proto kernel scope link
src 10.22.0.2 default
via 10.22.0.1 dev eth1 Pamięć podręczną (cache)
tablicy routingu uzyskujemy wydając komendę: #
ip route show cache Aby wyczyścić tablicę
routingu wydajemy komendę: # ip route flush cache |
b)
Znajomość poszczególnych pól tablicy rutingu (m.in. MSS, metryka, brama) w
odniesieniu do decyzji podejmowanej przez ruter przy trasowaniu pakietu IP. Standardowy
algorytm dopasowania pakietu do wpisów tablicy rutingu i sposób podjęcia
decyzji przy określaniu dalszej trasy pakietu (zasada najlepszego
dopasowania). Komenda
'route' jest kolejnym sposobem na odczytanie tablicy routingu: # route -e Kernel IP routing table Destination Gateway Genmask Flags MSS Window
irtt Iface 192.168.0.0 * 255.255.255.0 U
0 0 0 eth0 10.22.0.0 * 255.255.255.0 U
0 0 0 eth1 default 10.22.0.1 0.0.0.0 UG 0 0 0 eth1 |
Każdy wpis opisywany jest następującymi atrybutami:
●
cel
●
brama
●
maska
●
flagi
●
MSS - Maximum Segment
Size – czyli maksymalna wielkość segmentu. Wykorzystywana często do wymuszania
mniejszej wielkości pakietów IP, przechodzących daną drogą
●
jest to wielkość okna
protokołu TCP (u nas 0 – brak ograniczeń)
●
interfejs
●
metryka
●
arp
Bardzo rozpowszechnionym protokołem trasowania jest RIP.
Protokół RIP (Routing Information Protocol) stosuje metryki
zliczania ilości skoków w celu pomiaru odległości do przeznaczenia. W metryce
RIP, router rozgłasza sieci przyłączone bezpośrednio z metryką „1” . Sieci,
które są osiągalne przez inny router mają metrykę „2”, a sieci osiągalne przez
dwa routery mają metrykę „3” (trzy skoki), itd. Wykorzystanie ilości skoków w
celu skalkulowania najkrótszej ścieżki, nie zawsze daje optymalny rezultat.
Biorąc za przykład: ścieżka z metryką „3”, która przechodzi przez trzy sieci
Ethernet, może się okazać znacząco szybsza od ścieżki z metryką „2”,
przechodzącej przez dwie linie szeregowe, małej szybkości.
Oto lista flag jakie mogą być ustawione pojedynczemu wpisowi
w tablicy routingu (pochodzi ze strony http://linux.die.net/man/8/route):
Possible flags include
U (route is up)
H (target is a host)
G (use gateway)
R (reinstate route for dynamic routing)
D (dynamically installed by daemon or redirect)
M (modified from routing daemon or redirect)
A (installed by addrconf)
C (cache entry)
! (reject route)
c) Definiowanie
nowych/usuwanie istniejących wpisów z tablicy rutingu. Trasa do hosta, sieci,
sieci dostępnej przez bramę. Znaczenie trasy domyślnej. Dodajemy nowy wpis do tablicy routingu: # route add 127.0.0.0
lo # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 127.0.0.0 * 255.255.255.255 UH 0
0 0 lo 192.168.0.0 * 255.255.255.0 U
0 0 0 eth0 10.22.0.0 * 255.255.255.0 U
0 0 0 eth1 Usuwamy wpis do tablicy routingu: # route # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U
0 0 0 eth0 10.22.0.0 * 255.255.255.0 U
0 0 0 eth1 Ustawiamy bramę domyślną: # route add default gw
10.22.0.1 # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U
0 0 0 eth0 10.22.0.0 * 255.255.255.0 U
0 0 0 eth1 default 10.22.0.1 0.0.0.0 UG
0 0 0 et |
/etc/networks
/etc/sysconfig/network/config
/etc/sysconfig/network/ifcfg.template
/etc/sysconfig/network/ifcfg-eth0
/etc/sysconfig/network/routes
/etc/sysconfig/network/ifroute-config
/etc/networks
Zawiera nazwy sieci
Przydatne przy starcie systemu,
gdy nie ma jeszcze
dostępnych serwerów nazw
Przykładowe wpisy:
loopback 127.0.0.0
lokalna 192.168.0.0
/etc/sysconfig/network/config
Zawiera ogólne informacje
Wpisy są postaci zmienna=wartość
Przykładowe zmienne:
USE_SYSLOG="yes" |
"no" (czy używać sysloga, czy na
stderr)
MODIFY_RESOLV_CONF_DYNAMICALLY="yes" | "no"
(czy pozwalać np. ppp0 na
dynamiczną modyfikację pliku /
etc/resolv.conf)
FIREWALL="yes" | "no"
/etc/sysconfig/network/ifcfg-ethX
Konfiguracja interfejsu sieciowego
Można się spotkać z plikiem
postaci
ifcfg-eth-id-adres-MAC
Konfiguracja polega na
ustawieniu szeregu
zmiennych
Szablon konfiguracji interfejsu
znajduje się w
/etc/sysconfig/network/ifcfg.template
/etc/sysconfig/network/ifcfg-ethX
Przykładowe zmienne:
STARTMODE="onboot"|"manual"|"hotplug"|"off"
BOOTPROTO="static"|"dhcp"
IPADDR=adres-ip/bity-maski
NETMASK=maska
PREFIXLEN=ilość-bitów-maski
BROADCAST=adres-rozgłoszenia
MTU=rozmiar
Ścieżki sieciowe – pliki:
/etc/sysconfig/network/routes
– ustala ścieżki dla wszystkich
interfejsów
/etc/sysconfig/network/ifroute-eth0
– ustala ścieżkę dla wybranego
interfejsu
Czytane przez polecenie
ifup-route, które jest
uruchamiane przez polecenie ifup
Ścieżki sieciowe – pliki
Konfiguracja plików
Pierwsza kolumna – określa adres
docelowy; słowo
default określa ścieżkę domyślną
Druga kolumna – określa bramę;
jeśli nie chcemy
podawać bramy, piszemy 0.0.0.0
Trzecia kolumna – określa maskę
dla adresu
Czwarta kolumna – określa
interfejs, przez który będą
szły pakiety
Ścieżki sieciowe – pliki
Przykład konfiguracji pliku
routes
127.0.0.0 0.0.0.0 255.255.0 lo
204.12.35.0 0.0.0.0 255.255.255.0 eth0
default 204.12.35.1 0.0.0.0
eth0
192.168.0.0 10.2.0.254 255.255.0.0 eth1