Serwer DHCP, z angielskiego
Dynamic Host
Configuration Protocol (czyli protokół do dynamicznego
konfigurowania hostów - klientów w sieci), jest narzędziem które pozwala zapanować
nad komputerami w domowej sieci. Serwer dhcp narzuca klientom adres
IP i umożliwia w ten sposób pracę w sieci na protokole TCP/IP.
Adres IP może być nadawany "na sztywno" lub może być zmieniany po
każdym restarcie klienta. Mamy wówczas do czynienia z adresem
stałym (przydzielonym przez dhcpd) lub dynamicznym. Jak za pomocą
tego samego demona
dhcpd narzucić klientom stały lub
dynamiczny adres IP, pokażę na przykładzie linuksowego pliku
konfiguracyjnego /etc/
dhcpd.conf . Pewną dodatkową opcją
jest powiązanie adresów IP z adresami kart sieciowych i wymuszenie
w ten sposób porządku w sieci. Jest to jednak zadanie troszeczkę
trudniejsze i nie polecam tego na początek nauki ;)
Większość dystrybucji Linuksa umieszcza instalkę demona
dhcpd na płytkach instalacyjnych. Stosuje się różne nazwy i
różne ilości paczek do instalowania. Wynika to z indywidualnego
podejścia informatyków opiekujących się poszczególnymi
dystrybucjami Linuksa. Jedni załączają wyłącznie instalkę oryginalną
(ze strony domowej projektu dhcp), inni (np. w Mandrake/Mandriva)
zaprojektowali narzędzie drakgw, które instaluje dhcp
łącznie z dodatkowymi usługami: udostępnianiem Internetu dla
domowej sieci (czyli konfiguracją iptables za pomocą skryptów
shorewall), instalacją serwera DNS. Więcej na ten temat znajdziesz
na sąsiednich stronach: Mandrake 8.1,
9.0, Mandrake 9.1, Mandrake 9.2, Mandrake 10.0.
Serwerowy komplet paczek instalacyjnych w Mandrake to: dhcp-server, dhcp-common, iptables, bind,
bind-utils, caching-nameserver, choć oczywiście można
zainstalować ręcznie tylko pakiety w kolorze brązowym i dhcp
też będzie działać (iptables instalowane jest bez pytania o
zgodę).
Na komputerze-kliencie w lokalnej sieci zainstaluj (pod
Mandrakiem) dwa pliki dhcp-common
oraz dhcp-client (każdy plik na innej płytce
CD).
Wszystkie instalki demona dhcpd mają swój pierwowzór w
pliku, który można pobrać ze strony http://www.isc.org/products/DHCP/
(w czerwcu 2003 był to plik dhcp-3.0pl2.tar.gz).
Jeżeli jesteś nowicjuszem linuksowym, to pobierz plik w formacie
*rpm. Instaluje się go bardzo prosto (pod rootem) zleceniem:
rpm -i nazwapaczki.rpm .
Jeżeli po instalacji (na serwerze) pakietu dhcpd nie pojawi się plik /etc/dhcpd.conf , to utwórz go pod rootem za pomocą
zlecenia touch /etc/dhcpd.conf i nadaj
mu prawa root.root 644 zleceniami: chown
root.root /etc/dhcpd.conf oraz chmod 644
/etc/dhcpd.conf .
Jeżeli masz wpięte dwie karty sieciowe do dwóch osobnych domowych
podsieci, to wystarczy w tym samym pliku dhcpd.conf powielić pod
spodem wpis pierwszej podsieci i pozmieniać takie dane jak: subnet,
option-routers, range dynamic-bootp.
Plik /etc/
dhcpd.conf odpowiada za przydzielanie adresów IP w
domowej sieci przez
demona dhcpd. Na początku proponuję jak
najprostszą konstrukcję, czyli sieć domową
192.168.0.0/255.255.255.0 . Więcej o teori tworzenia sieci
tutaj. W
takiej sieci plik będzie wyglądał następująco. Zwróć uwagę na
średniki [
;], nawiasy klamrowe
{} oraz znak hasz [
#].
ddns-update-style none;
subnet 192.168.0.0 netmask 255.255.255.0 {
# default gateway
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name "pd132.wroclaw.sdi.tpnet.pl";
option domain-name-servers 194.204.159.1;
range dynamic-bootp 192.168.0.2 192.168.0.254;
default-lease-time 21600;
max-lease-time 43200;
}
Co można odczytać z powyższego przykładu? Sieć domowa o numerze
IP 192.168.0.0, pracująca na masce 255.255.255.0.
Posiada 256 sztuk nr IP, z tego do użycia na stacje 253 sztuk (256
minus maska sieci, minus boroadcast, minus serwer). Czyli możemy
wpiąć maksymalnie 253 komputerów klienckich. Zakres numerów do
użycia przez komputery-klienty w domowej sieci jest określony
poprzez range dynamic-bootp (w naszym przypadku pokrywa się z
maksymalną ilością dla sieci o masce 255.255.255.0). Serwer ma
wewnętrzny adres IP 192.168.0.1, a zewnętrzny
217.96.171.101 (w naszym pliku konfiguracyjnym nie ma tego
wpisu, gdyż IP zewnętrzne jest reprezentowane przez adres domenowy
pd132.wroclaw.sdi.tpnet.pl) . Nie ma powiązania nr IP z MAC. Jeżeli
tego nie rozumiesz, to MUSISZ przejść przez wspomniany
powyżej, przyspieszony kurs teori
sieci. Zauważyłeś na pewno, że z netem łączymy się za pomocą SDI,
stąd DNS jest pobierany od TPSA, a domenę mamy narzuconą wg wzorca
numer.miasto.sdi.tpnet.pl :)
*
Oczywiście można narzucić sieć o mniejszej liczbie numerów
IP:
ddns-update-style none;
subnet 192.168.0.0 netmask 255.255.255.248 {
# default gateway
option routers 192.168.0.1;
option subnet-mask 255.255.255.248;
option domain-name "pd132.wroclaw.sdi.tpnet.pl";
option domain-name-servers 194.204.159.1;
range dynamic-bootp 192.168.0.2 192.168.0.6;
default-lease-time 21600;
max-lease-time 43200;
}
Mamy tutaj sieć opartą na 8 sztukach nr IP (z tego na klienckie
komputery przeznaczymy 5 szt. nr IP). Jeżeli jesteś leniwy i nie
chce Ci się przepisywać zawartości pliku dhcpd.conf
(powyższy przykład), to skopiuj go sobie z mojego archiwum.
Można teraz powiązać numery IP klientów z numerami kart
sieciowych MAC. Pojawiły się (w porównaniu do wersji
prostszej-domyślnej) nowe wiersze definiujące numer MAC
karty sieciowej przyporządkowanej klientowi. Serwer ma wewnętrzny
adres IP 192.168.0.1, a zewnętrzny 217.96.171.101.
Domena otrzymana od TPSA wraz z usługą SDI:
pd132.wroclaw.sdi.tpnet.pl . Przypominam zasady: planujemy
sieć o adresie 192.168.0.0/255.255.255.248, zbudowaną z 8 nr
IP (czyli przewidującą obsługę 5 szt. komputerów-klientów). Przy
masce 255.255.255.248 broadcast-address wyniesie
192.168.0.7 , natomiast przy masce 255.255.255.0
broadcast-address wyniesie 192.168.0.255. Komentarz (wiersz
ze znaczkiem # na początku) możesz go usunąć ze swojego pliku.
ddns-update-style none;
subnet 192.168.0.0 netmask
255.255.255.248 {
#default gateway
option routers 192.168.0.1;
option subnet-mask
255.255.255.248;
option domain-name
"pd132.wroclaw.sdi.tpnet.pl";
option domain-name-servers
194.204.159.1;
#option nis-domain "domain.org";
option broadcast-address
192.168.0.7;
#Przy masce 255.255.255.248 mamy
mozliwosc uzyskania
#5 szt. klientow, z tego 2 szt. juz
zagospodarowalismy
#nadajac im (ponizej) stale nr IP (maska
248 daje
#8 szt. nr IP, z tego 2 IP są krańcowe,
jeden IP zajmuje
#serwer, 5 szt. IP zostaje dla
klientow).
#Zbedna nadwyzke 3 szt. IP możemy latwo
zablokowac
#zmieniajac pierwotny wiersz
range o takim wygladzie:
#range dynamic-bootp 192.168.0.2
192.168.0.6;
#na taki:
#range dynamic-bootp 192.168.0.2
192.168.0.3;
#co zrówna numery nadane
statycznie z range.
#Jak rozpisac siec, maski, broadcast
opisalem tutaj
range dynamic-bootp 192.168.0.2
192.168.0.3;
default-lease-time 53200;
max-lease-time 86500;
# we want the nameserver to appear at a fixed
address
# czyli definiujemy komputer ze stalym
IP
# powiazanym z nr MAC karty
sieciowej
host kuba {
next-server
kuba.pd132.wroclaw.sdi.tpnet.pl;
hardware ethernet
02:05:5E:A3:AD:C8;
fixed-address
192.168.0.2;
#option domain-name-servers
192.168.0.1;
#option routers 192.168.0.1;
#option broadcast-address
192.168.0.248;
}
host koza {
next-server
koza.pd132.wroclaw.sdi.tpnet.pl;
hardware ethernet
2A:04:52:A3:AD:C3;
fixed-address
192.168.0.3;
#option domain-name-servers
192.168.0.1;
#option routers 192.168.0.1;
#option broadcast-address
192.168.0.248;
}
# host rezerwa_1 {
# next-server
rezerwa_1.pd132.wroclaw.sdi.tpnet.pl;
# hardware ethernet
00:00:00:00:00:01;
# fixed-address
192.168.0.4;
# }
# host rezerwa_2 {
# next-server
rezerwa_2.pd132.wroclaw.sdi.tpnet.pl;
# hardware ethernet
00:00:00:00:00:02;
# fixed-address
192.168.0.5;
# }
# host rezerwa_3 {
# next-server
rezerwa_3.pd132.wroclaw.sdi.tpnet.pl;
# hardware ethernet
00:00:00:00:00:03;
# fixed-address
192.168.0.6;
# }
}
Zapis host_rezerwa jest przydatny, gdyż w przypadku
dokupienia komputerów i powiększenia sieci domowej łatwo i szybko
nadasz nowemu klientowi adres IP (oczywiście poprawisz także
wówczas wpis range dynamic-bootp). Niestety, powyższe
związanie nr IP z MAC jest mało skuteczne i należy czekać na nowszą
wersję demona dhcpd, który nauczy się RYGORYSTYCZNIE łączyć
IP z MAC (czyli w przypadku niezgodności danych będzie wywalał
komputer z domowej sieci). Na dzień dzisiejszy problem powiązania
IP z MAC załatwia dodatkowy skrypt. Więcej informacji znajdziesz tutaj
(opisałem konfigurację na przykładzie Mandrake 8.1 lub 9.0). Ten
sam problem w Mandrake 9.1 opisałem tutaj.
Połączenie IP z MAC kart
sieciowych klientów.
Rozwiązanie to jest dziełem autora nieistniejącej
już strony http://przedszkole.tcz.wroclaw.pl/plawinski/?dhcp
z moimi niewielkimi zmianami (związanymi z indywidualnym podejściem
do dystrybucji Mandrake/Mandriva). Polega ono na utworzeniu skryptu
ip_arp porównujacego dane (IP oraz MAC) z plików
/etc/hosts.arp oraz /etc/hosts . Osobnym problemem
jest takie skonfigurowanie pliku /etc/dhcpd.conf by nadawało
WYŁĄCZNIE statyczne numery IP w ilości odpowiadającej ilości
klientów w sieci. Czemu? Gdyż jakiś cwaniaczek może zauważyć, że
wywala go z sieci gdy przejmuje nr IP sąsiada, ale... nie wywala go
gdy NIC nie wpisze w polu adresu IP swojego kompa i...
pobierze IP z puli adresów nadawanych dynamicznie. Dodatkowym
zabezpieczeniem jest takie ustawienie firewalla, by udostępnianie
Internetu było możliwe wyłącznie dla konkretnych numerów IP
Przyjmuję, że po zainstalowaniu Linuksa i serwera dhcpd nadawanie
adresów dla Twojej domowej sieci działa. Co prawda na razie w
wersji najbardziej prymitywnej, ale działa. Więcej informacji o
instalowaniu i wstępnym konfigurowaniu znajdziesz tutaj
(opisałem konfigurację na przykładzie Mandrake 8.1 lub 9.0). Ten
sam problem w Mandrake 9.1 opisałem tutaj.
Wykonaj:
- Uzupełnij wpisy w pliku /etc/hosts (o prawach root.root
rw-r--r--)
Stanąłeś przed dylematem: jak nazwać komputery,
które podłączysz do swojej sieci. Oczywiście musisz też wiedzieć
ile ich będzie. Przyjałem 2 klientów (o nazwie kuba, koza), ze
stałym adresem IP zdefiniowanym tutaj czyli w pliku
/etc/hosts (oraz w pliku /etc/dhcpd.conf, ale o tym
za chwilę). Dopisz więc w pliku /etc/hosts nowe wiersze wg
wzoru: (adres IP po kolei od 192.168.0.2,
.0.3 itd., kilka spacji, domena, kilka spacji, nazwa
hosta).
127.0.0.1 localhost.localdomain localhost
192.168.0.1 misiek.pd132.wroclaw.sdi.tpnet.pl misiek
192.168.0.2 kuba.pd132.wroclaw.sdi.tpnet.pl kuba
192.168.0.3 koza.pd132.wroclaw.sdi.tpnet.pl koza
-
Masz już listę komputerów-klientów w pliku
/etc/hosts . Czas utworzyć listę komputerów-klientów z
adresami IP oraz MAC. Wyniki umieść w pliku /etc/hosts.arp o
wyglądzie zbliżonym do poniższego:
192.168.0.2 02:05:5E:A3:AD:C8
192.168.0.3 2A:04:52:A3:AD:C3
Kilka słów wyjaśnień: musisz w pierwszej kolejności
utworzyć pusty (na razie) plik hosts.arp w katalogu
/etc poleceniem touch /etc/hosts.arp . Następnie
wyedytuj go np. poleceniem mcedit hosts.arp i doprowadź do
podobnej postaci: adres IP, kilka spacji, adres MAC.
Jak poznać MAC kart sieciowych? W Windows komendą winipcfg ,
w Linuksie ifconfig lub arp co zresztą da nam od razu
listę wszystkich aktywnych aktualnie kart sieciowych (rozumiesz
teraz, dlaczego przed rozpoczęciem prac należało uruchomić SDI oraz
komputery-klienty?). Dla pewności sprawdź rzetelność danych
poleceniem ping 192.168.0.2 lub .0.3
itd. (jest to ważne, gdyz czasami z niezrozumiałych powodów klienty
przyjmują samodzielnie inne niż należy numery IP, ale to temat na
osobną opowieść).
Jak zauważyłeś serwer ma adres IP 192.168.0.1 i nie zajmujemy się
(w tym pliku) jego konfiguracją. W /etc/hosts.arp podajemy
jedynie dane klientów (od IP 192.168.0.2, .0.3
itd.).
Końcowe prawa pliku (w Mandrake) /etc/hosts.arp to:
root.daemon rw-r--r--
- Uzupełnij dane w pliku /etc/dhcpd.conf
Pojawiły się (w porównaniu do wersji domyślnej)
nowe wiersze definiujące nr IP i nazwę hosta oraz
numer MAC karty sieciowej przyporządkowanej klientowi.
Serwer ma wewnętrzny adres IP 192.168.0.1, a zewnętrzny
217.96.171.101. Domena otrzymana od TPSA wraz z usługą SDI:
pd132.wroclaw.sdi.tpnet.pl (w przypadku SDI - DNS wpisz
194.204.159.1). Przypominam zasady: planujemy sieć o adresie
192.168.0.0/255.255.255.248, zbudowaną z 8 nr IP (czyli
przewidującą obsługę 5 szt. komputerów-klientów). Przy masce
255.255.255.248 broadcast-address wyniesie
192.168.0.7 , natomiast przy masce 255.255.255.0
broadcast-address wyniesie 192.168.0.255 (teoria tworzenia
sieci jest opisana tutaj). Zwróć
uwagę, że podczas instalacji i pierwszej automatycznej konfiguracji
sieci (i udostępnienia Internetu dla domowej sieci) maska wynosiła
255.255.255.0, czyli przewidywała 253 szt. klientów. Uwaga:
na dobrą sprawę możesz wpisać 255.255.255.0 , gdyż maskę
255.255.255.248 wprowadziłem w celach szkoleniowych, by
pokazać jak konfigurować mniejszą sieć.
Zwróć uwagę na nawiasy klamrowe {}, średniki
; na końcu wiersza, # znak hasz czyli komentarz
(który możesz usunąć w swoim pliku). W wierszu hardware ethernet
02:05:5E:A3:AD:C8; podałem przykładowy(!) numer MAC.
Ostateczna propozycja pliku /etc/dhcpd.conf
ddns-update-style none;
subnet 192.168.0.0 netmask
255.255.255.248 {
#default gateway
option routers 192.168.0.1;
option subnet-mask
255.255.255.248;
option domain-name
"pd132.wroclaw.sdi.tpnet.pl";
option domain-name-servers
194.204.159.1;
#option nis-domain "domain.org";
option broadcast-address
192.168.0.7;
#Przy masce 255.255.255.248 mamy
mozliwość uzyskania
#5 szt. klientow, z tego 2 szt. juz
zagospodarowalismy
#nadajac im (ponizej) stale nr IP (maska
248 daje
#8 szt. nr IP, z tego 2 IP są krańcowe,
jeden IP zajmuje
#serwer, 5 szt. IP zostaje dla
klientow).
#Zbedna nadwyzke 3 szt. IP możemy latwo
zablokowac
#zmieniajac pierwotny wiersz
range o takim wygladzie:
#range dynamic-bootp 192.168.0.2
192.168.0.6;
#na taki:
#range dynamic-bootp 192.168.0.2
192.168.0.3;
#co zrówna numery nadane
statycznie z range.
#Jak rozpisac siec, maski, broadcast
opisalem tutaj
range dynamic-bootp 192.168.0.2
192.168.0.3;
default-lease-time 53200;
max-lease-time 86500;
# we want the nameserver to appear at a fixed
address
# czyli definiujemy komputer ze stalym
IP
# powiazanym z nr MAC karty
sieciowej
host kuba {
next-server
kuba.pd132.wroclaw.sdi.tpnet.pl;
hardware ethernet
02:05:5E:A3:AD:C8;
fixed-address
192.168.0.2;
#option domain-name-servers
192.168.0.1;
#option routers 192.168.0.1;
#option broadcast-address
192.168.0.248;
}
host koza {
next-server
koza.pd132.wroclaw.sdi.tpnet.pl;
hardware ethernet
2A:04:52:A3:AD:C3;
fixed-address
192.168.0.3;
#option domain-name-servers
192.168.0.1;
#option routers 192.168.0.1;
#option broadcast-address
192.168.0.248;
}
# host rezerwa_1 {
# next-server
rezerwa_1.pd132.wroclaw.sdi.tpnet.pl;
# hardware ethernet
00:00:00:00:00:01;
# fixed-address
192.168.0.4;
# }
# host rezerwa_2 {
# next-server
rezerwa_2.pd132.wroclaw.sdi.tpnet.pl;
# hardware ethernet
00:00:00:00:00:02;
# fixed-address
192.168.0.5;
}
# host rezerwa_3 {
# next-server
rezerwa_3.pd132.wroclaw.sdi.tpnet.pl;
# hardware ethernet
00:00:00:00:00:03;
# fixed-address
192.168.0.6;
}
}
- Sprawdź zawartość plików /etc/hosts.denny i
/etc/hosts.allow . Pierwszy definiuje komputery z
zabronionym dostępem, drugi dopuszczonych. Więcej na ten temat tutaj. Uwaga: ponieważ spotkałem się
z niewiedzą u internautów informuję, że pliki te NIE BLOKUJĄ
PRZYDZIELANIA adresów IP dla klientów z wewnętrznej sieci poprzez
dhcpd. Inaczej mówiąc - nie wywalisz gościa z domowej sieci, jeżeli
zablokujesz go na linuksowym serwerze w pliku /etc/hosts.deny
Restartuj komputer. Jeżeli sieć (nadal) chodzi, to znaczy że
ręczne poprawki wykonałeś prawidłowo.
-
Skopiuj plik ip_arp i
umieć go w katalogu /sbin/ ip_arp
Oryginalny plik ip_arp
(niestety strona www jest już nieaktualna) różni się jedynie w
budowie skryptu: adresowaniu do pliku arp (zmiany
spowodowane zostały koniecznością dostosowania do dystrybucji
Mandrake/Mandriva).
Nadaj plikowi prawa: root.root rwxr-----
-
Skopiuj plik rc.arp i
umieść go w katalogu /etc/rc.d/ rc.arp
Możesz też przepisać jego zawartość (zwróć uwagę na wszystko, nawet
na spacje):
if [ -x /sbin/ip_arp ]; then
echo "Starting IP_MAC... "
/sbin/ip_arp start
fi
Nadaj plikowi rc.arp prawo root.root rwxr-----
- Wyedytuj plik /etc/rc.d/rc.local i dopisz
(na samym końcu) polecenie uruchomienia pliku
/etc/rc.d/rc.arp podczas startu systemu. Poniżej
przedstawiam przykładowy wygląd poczatkowej części pliku
/etc/rc.d/rc.local . Zauważ, że już tu byłeś i umieściłeś
polecenie startu modemu SDI-HIS...
#!/bin/sh
#
# This script will be executed *after* all the other init
scripts.
# You can put your own initialization stuff in here if you
don't
# want to do the full Sys V style init stuff (...)
# (...)
# (...)
if [ -x /etc/rc.d/rc.arp ]; then
/etc/rc.d/rc.arp
fi
if [ -x /etc/rc.d/rc.his ]; then
/etc/rc.d/rc.his
fi
... lub jeżeli nie zadziała, bo np. jesteś
nieuważny i źle wpisałeś tekst zaznaczony na niebiesko, to dopisz
na końcu prostszą wersję:
/etc/rc.d/rc.arp
-
Restartuj komputer.
- Ustaw komputery-klienty w wersji AUTOMATYCZNIE
POBIERZ ADRES IP.
*
Pamiętaj, że aby skrypt łączący MAC oraz IP
zadziałał pewnie i bez niespodzianek, należy firewall tak ustawić,
by masq i udostępnianie netu działało tylko wobec ściśle wskazanych
nr IP wewnętrznej (domowej) sieci. W Linuksach opartych na
Kernelu 2.2.x firewalla konfigurujemy ipchains (patrz
przykład_1 oraz przykład_2 dla Mandrake
8.1). W Linuksach pracujących na Kernelu 2.4.x oraz
2.6.x mamy iptables. W Mandrake od 9.x oraz Mandriva iptables nadzoruje
narzędzie shorewall - zapraszam tutaj
(zwróć uwagę na plik masq).
Jak "zmienić" MAC karty sieciowej opisałem na sąsiedniej stronie.
|

Po wykonaniu modyfikacji pliku /etc/dhcpd.conf musisz
restartować demona dhcpd zleceniem /etc/rc.d/init.d/dhcpd restart (lub start , stop) .
Ewentualnie możesz restartować komputer.
Czasami serwery DHCP pod Linuksem nie działaja poprawnie z powodu
braku tak zwanego routingu rozgłoszeniowego. W razie problemów
zapraszam tutaj.
Strona domowa projektu: http://www.isc.org/products/DHCP/
Tłumaczenia ważnych i przydatnych dokumentów.
Jak powiązać IP z MAC w przypadku, gdy nadajemy IP na stałe,
bez DHCPD? Po spisaniu wszystkich adresów MAC kart sieciowych w naszej sieci, należy wykonać plik /etc/
hosts.arp (o prawach root.root rw- --- ---) zawierający wpisy:
10:2A:12:A4:21:AC 192.168.0.2
09:24:12:C4:21:0A 192.168.0.3
08:AC:12:0A:21:BC 192.168.0.4
01:01:01:01:01:01 192.168.0.5
01:01:01:01:01:01 192.168.0.6
01:01:01:01:01:01 192.168.0.7
Jeden wiersz odpowiada jednemu hostowi. Przyjmuję, że brama ma adres 192.168.0.1, a w sieci są trzy hosty o ardesach 192.168.0.2, 3, 4. Z powodów bezpieczeństwa dobrze będzie dopisać do pliku /etc/
hosts.arp kolejne adresy IP czyli 192.168.0.5, 6, 7, ...255 z fikcyjnym MAC. Następnie wydajemy polecenie:
arp -f /etc/hosts.arp
Polecam
dopisać powyższe zlecenie na końcu pliku /etc/rc.d/rc.local.
Otrzymałem e-mailem od Internauty
MarasK kilka ważnych uwag. Aby dokładnie oddać treść, zdecydowałem się skopiować maila. W razie problemów z siecią i
dhcpd proponuję wziąć poniższy tekst pod staranną uwagę.
Zamotałeś niepotrzebnie opis. Skoro już w tekście używasz komendy
"arp" to po co instalować/kopiować kolejny programik
ip_arp? Wystarczy utworzyć plik /etc/
ethers w formacie takim jak /etc/
hosts.arp. Po dokonaniu tego wystarczy zlecenie:
apr -f
i mamy blokowanie podmiany IP.
Dalej piszesz o konieczności blokowania maskaradą IP spoza zakresu. W
/etc/
ethers wystarczy wypełnić całą pulę (dla maski 255.255.255.0 będzie to
do 0.254) schematem:
....
192.168.0.128 0
192.168.0.129 0
....
192.168.0.254 0
Oczywiście hosty które mają mieć dostęp do serwera muszą mieć
ustawiony poprawny MAC.
Do tekstu wkradł się mały (?) błąd. Nie wiem jak było w dawniejszych
wersjach, lecz obecnie NIE WOLNO przydzielać range w zakresie
statycznych IP. Powoduje to problemy w działaniu sieci. Np gdy mamy hosty
192.168.0.2 i 192.168.0.3 to
range dajemy od .0.4 do konca puli
wynikającej z maski (lub jeśli nie chcemy to ograniczamy).

Uwaga: z powodu namnożenia się różnych złodziejskich witryn www, które kopiują moje strony i umieszczają je u siebie wraz z komercyjnymi reklamami (na których zarabiają) informuję, że wszelkie prawa są zastrzeżone.
Uwaga.
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).