Krótka instrukcja jak przykleić serwer NFS do konkretnych portów. Wszelkie zapiski dotyczą tzw. rozwiązania NFS zintegrowanego z jądrem Linuxa (nfs-kernel-server). Zostały one przetestowane na Ubuntu 8.04. działąją także na Ubuntu 10.04.
Zakładam, że pakiety nfs-kernel-server oraz nfs-common są już zainstalowane.
Wszystkie usługi związane z NFS zostaną przyklejone do następujących portów:
- portmapper 111
- nfs 2049
- status 32765
- mountd 32767
- nlockmgr 32768
Na firwallu należy więc otworzyć porty: 111, 2049 oraz zakres 32765-32768.
Co musimy przykleić?
To pierwsze i najważaniejsze pytanie. Warto więc zacząć pod polecenia:
rpcinfo -p
które zwróci nam coś takiego…
program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 32765 status 100024 1 tcp 32765 status 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100021 1 udp 55241 nlockmgr 100021 3 udp 55241 nlockmgr 100021 4 udp 55241 nlockmgr 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100021 1 tcp 33425 nlockmgr 100021 3 tcp 33425 nlockmgr 100021 4 tcp 33425 nlockmgr 100005 1 udp 32767 mountd 100005 1 tcp 32767 mountd 100005 2 udp 32767 mountd 100005 2 tcp 32767 mountd 100005 3 udp 32767 mountd 100005 3 tcp 32767 mountd
Do przyklejenia są następujące usługi:
- mountd
- status
- nlockmgr
Powyższy wynik został uzyskany, gdy już niektóre usługi były przyklejone, lecz omówię teraz wszystko od początku.
mountd
Otwórz plik:
/etc/default/nfs-kernel-server
znajdź linijkę:
RPCMOUNTDOPTS=
i zamień ją na:
RPCMOUNTDOPTS="-p 32767"
Gotowe. Mountd będzie przyklejony do portu 32767.
status
1. Otwórz plik:
/etc/default/nfs-common
2. Znajdź linijkę:
NEED_STATD=
i zamień na
NEED_STATD=yes
3. Następnie znajdź linijkę:
STATDOPTS=
i zamień na
STATDOPTS="--port 32765 --outgoing-port 32766"
Gotowe. Statystyki będą teraz dosŧepne na portach 32765 i 32766.
nlockmgr
Z tą usługą będzie trochę więcej problemów, gdyż jest ona obsługiwana przez dynamicznie ładowany moduł jądra. Niezbędny parametr należy więc wpisać jako opcja do modułu. Aby to zrobić, otwórz plik:
/etc/modprobe.d/local.conf
i dopisz linijkę:
options lockd nlm_udpport=32768 nlm_tcpport=32768.
Gotowe. Kolejna usługa została przyklejona tym razem do port 32768.
Aktywacja zmian
Po wprowadzeniu zmian należy je wszystkie aktywować następującymi poleceniami.
1 Zatrzymanie usług:
sudo /etc/init.d/nfs-kernel-server stop sudo /etc/init.d/nfs-common stop sudo /etc/init.d/portmap stop
2. Przeładowanie modułu jądra:
ERROR! Niestety na chwilę obecną nie umiem przeładować lockd, gdyż jest on cały czas używany przez nfsd. Nfsd zaś jest nieustannie zajęty i nie wiem czym 🙁
WORKAROUND: Restart komputera. Wiem, to fatalne i brutalne rozwiązanie, ale chwilowo lepszego nie mam.
3. Uruchomienie usług… Ale jeżeli zrobiłeś punkt 2, to usługi wstaną same.