Interfejsy to sprzętowy lub programowy
pośrednik pomiędzy... i tu mamy wielki obszar do wymieniania.
Interfejs może łączyć urządzenia wejścia-wyjścia z jądrem systemu
(porty szeregowe, równoległe, USB itd). Interfejsem programowym
jest np. powłoka okienkowa KDE, która pośredniczy w przekazywaniu
treści zlecenia (wynikłej po kliknięciu myszy) do
shella. Nas
interesują tutaj
interfejsy sieciowe.
Mamy interfejsy sieciowe urządzeń warstwy sieciowej (eth0, ppp0 itp.) oraz wirtualne interfejsy sieciowe: lo oraz sit0 (lo to interfejs pętli zwrotnej loopback, zaś sit0 służy do tunelowania protokołu IPv6 wewnątrz IPv4).
Interfejsy sieciowe typu eth0 (karta sieciowa pierwsza),
eth1 (karta sieciowa druga),
ppp0 (modem np. SDI pracujący pod kontrolą demona pppd) to
nazwy urządzeń warstwy sieciowej, jednak należy pamiętać, że faktycznym urządzeniem (warstwą fizyczną) dla
protokołu PPP (modem) jest najczęściej port szeregowy (w Linuksie
oznaczany ttyS0, ttyS1). Tak więc konfigurujemy
interfejsy sieciowe urządzeń warstwy sieciowej (ewentualnie interfejsy wirtualne) i uznajemy, że
sterowniki warstwy fizycznej (sterowniki kart sieciowych, urządzeń typu port szeregowy)
są zainstalowane. W przypadku modemu powinien działać demon
pppd (opis
instalacji na przykładzie Mandrake 10.0).
Aby w Linuksie zobaczyć jakie mamy interfejsy sieciowe,
proponuję byś jako root wydał polecenie ifconfig (lub ifconfig -a).
W powyższym przykładzie mamy następujący zestaw: eth0 (czyli karta sieciowa
pracująca na adresie np. 192.168.0.1), lo (czyli wirtualny
interfejs, który jest potrzebny do komunikacji serwera z samym sobą
na zasadzie tzw. "pentelki", pracujący na adresie 127.0.0.1),
ppp0 (czyli modem np. SDI pracujący na adresie np.
217.96.171.101).
Oczywiście zlecenie ifconfig umie znacznie
więcej: wyświetla ustawienia interfejsów sieciowych, konfiguruje je oraz aktywuje/wyłącza. Opcji jest wiele np.:
- up (lub down)- aktywuje lub dezaktywuje określony
interfejs np. eth0
- netmask - ustawia maskę
- irq numer - ustawia nr przerwania IRQ dla danego
urządzenia
- adress - określa adres IP przypisany temu
interfejsowi
*
Uwaga: opis wyliczania parametrów sieci (maska, broadcast itp.) w postaci przykładowych zadań, znajdziesz na stronie:
IPsieciABC.php.
*
Sieć uruchomisz zleceniem o następującej
budowie (spacje oddzielają poszczególne segmenty zlecenia):
ifconfig eth0 IP netmask MASKA up
czyli w praktyce:
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
up
Wyjaśnienie: na interfejsie eth0 będzie
ustawiony IP o numerze 192.168.0.1. Maska sieci
otrzyma postać 255.255.255.0. Wpis up oznacza start.
*
Wpis uruchamiający łączność z siecią (na komputerze klienckim) - zwróć uwagę, że podano więcej parametrów:
ifconfig eth0 IP netmask IP_maski_podsieci broadcast IP_Broadcast gateway IP_routera-bramy up
czyli w praktyce:
ifconfig eth0 192.168.0.10 netmask 255.255.255.0 broadcast 255.255.255.255 gateway 192.168.0.1 up
*
Oczywiście tak ustawione parametry interfejsu eth0 będą
nietrwałe (do restartu systemu), dlatego utworzono plik
/etc/sysconfig/network-scripts/ifcfg-eth0 zawierający dane
sieciowe odczytywane przez system. Dane te mogą być czytane podczas
startu (gdy aktywna jest opcja ONBOOT=yes) lub
po wydaniu zlecenia ifconfig eth0 up (nie
trzeba podawać szczegółowych parametrów, gdyż te są zapisane w
pliku ifcfg-eth0). Polecam przeglądnąć zawartość katalogu
/etc/sysconfig/network-scripts
Przykładowa zawartość pliku
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
Mamy skonfigurowaną i włączoną kartę sieciową. Podłączamy ją
fizycznie do switha, gdyż będziemy konfigurować na naszym Linuksie
router i udostępnianie Internetu (dostarczanego poprzez modem SDI
na interfejsie ppp0) wg schematu:
[INTERNET] -----
ppp0 -
[Linux] -
eth0 --------------[klient w domowej sieci]
Chwila teorii: klienty w wewnętrznej sieci muszą wiedzieć jaki
komputer (o jakim adresie IP) nasłuchuje, aby umożliwić kontakt z inną
siecią np. Internetem. Przyjmujemy, że skonfigurowany przed chwilą Linux ma dwa interfejsy: wewnętrzny oraz zewnętrzny.
Wewnętrzny o adresie 192.168.0.1, na interfejsie eth0, będzie
pełnił funkcję BRAMY (GATEWAY). Zewnętrzny, o adresie np. 217.96.171.101, na interfejsie ppp0, będzie pod takim adresem widziany w Internecie.
Przed wykonaniem jakichkolwiek kroków
sprawdźmy jak obecnie wygląda nasz routing (tablica routingu)
zleceniem:
route czyli /sbin/route -
bierząca tablica routingu
lub
route -n - tablica routingu
Kernela bez tłumaczenia nazw hostów (bez kontakowania się z
DNS)
lub
netstat -nr (j.w.)
Jeżeli w tablicy routingu nie ma nic, wpisz jako root
zlecenie:
route add default gw 192.168.0.1
Ustawisz w ten sposób domyślną trasę do adresu 192.168.0.1
Co jednak w sytuacji, gdy za jedną bramą pakiet z
komputera-klienta musi przejść przez kolejną sieć (klient znajdzuje
się w podsieci, która łączy się z Internetem poprzez nadrzędną,
kolejną sieć)? Trzeba jako root dodać nową trasę routingu (nie
kasując starej) zleceniem:
route add -net 192.168.200.0 netmask
255.255.255.0 gw 192.168.0.1
Teraz klient o numerze np. 192.168.0.26 z sieci
192.168.0.0 (nie musimy tutaj podawać maski) wyśle wezwanie
do Internetu na komputer-router (BRAMĘ) o adresie adres
192.168.0.1. Następnie w nowej sieci 192.168.200.0/255.255.255.0
będzie szukał informacji o kolejnej BRAMIE.
Powyższe zlecenia konfiguracyjne wykonywaliśmy na linuksowym routerze. Natomiast na linuksowym kliencie w domowej sieci, BRAMĘ ustawimy zleceniem:
route add default gw 192.168.0.1
(jeżeli
łączymy się poprzez kartę sieciową opartą na eth0, nasz adres sieci to
192.168.0.xxx, a BRAMA to 192.168.0.1).
W przypadku konfigurowania routera dostępowego do Internetu, należy pamiętać o ustawieniu opcji masq za
pomocą firewalla. Serwer dhcpd będzie narzucał IP klientom w domowej sieci.
*
Na koniec kilka dodatkowych informacji związanych z konfiguracją
sieci. Należy wiedzieć, że w sieci ruch pakietów odbywa się pod
opieką numerów IP. Oczywiście z czysto praktycznych powodów
stosujemy także adresy słowne (domeny) np. adres 217.96.171.101
dzięku serwerom DNS jest także dostępny w sieci pod domeną
pd100.gorzow.sdi.tpnet.pl. Plik /etc/
resolv.conf
(znany Ci już z konfiguracji
SDI) zawiera
informacje konieczne do odnajdywania nazw hostów z pomocą usługi
DNS. W moim
przykładzie
wpisując adres pimpek zmusimy system do próby połaczenia z adresem
pimpek.sdi.tpnet.pl . Jeżeli nie istnieje, to będzie dalej
szukał innych domen (jeżeli w pliku
resolv.conf po spacji
dopisałeś inne domeny). Pozycja
nameserver to adres IP
serwera DNS. Oczywiście system umie także skorzystać z danych w
pliku /etc/
hosts . Aby narzucić systemowi kolejność
odczytywania plików w trakcie zamiany nazw domenowych na IP, należy
w pliku /etc/
nsswitch.conf, w wierszu
hosts: files
dns ustawić kolejność:
files (czyli /etc/hosts),
dns (czyli /etc/resolv.conf).
*
Można zmienić nr MAC kart sieciowych - opis na
sąsiedniej stronie.
*
Ciekawa stronka na temat narzędzi sieciowych:
http://pl.docs.pld-linux.org/siec_narzedzia.html (mam ją w swoim
archiwum).
*

Wszelkie prawa są zastrzeżone, z wyłączeniem hobbystów, którzy umieszczają opracowania na stronach bez reklam. Dla hobbystów zawartość tej strony jest dostępna bez ograniczeń - używanie i przerabianie moich artykułów są jak najbardziej wskazane, ale na swoją odpowiedzialność.
Aby uniknąć zasysania całej witryny gorzow-wlkp.pl/linux za pomocą programów typu TeleportPro, WebCopier itd. informuję, że udostępniłem spakowaną wersję (w formacie RAR).