NFS (Network File System) via PLIP (Parallel Line IP)

"Plip" är alltså ett sätt att koppla ihop två datorer via parallelporten och skicka/ta emot IP-paket. I princip står allt, dock på engelska, i "Linux-HOWTO" som du kan hitta antingen i /usr/doc/Linux-HOWTOs om du redan har dom installerade ( finns i f-katalogen på CD 1) eller här..
http://www.tldp.org/docs.html#howto
..titta efter "PLIP-Install_HOWTO" och "PLIP".

Lite allmänt om nätverk hittar du här..
(http://www.linux.se/doc/swe/NET-3-HOWTO-se-5.html) ⇒⇒ http://www.tldp.org/HOWTO/NET3-4-HOWTO-5.html


Jag ska koppla ihop min "Laptop" som jag kallar laptop..
http://forum.slackwarelinux.se/viewtopic.php?t=1348
..som kör "Tiny" med 2.2.6 kärnan.

..med min "stationära dator" som jag kallar server..
http://www.slackware.se/hakans_slackware/
..där jag har Slack's 10.1 "normalkärna", d.v.s. 2.4.29

(Denna undre länk har jag inte lyckats identifiera, vare sig på hakan.slackware.se eller i min egen kopia!/le)


Hårdvara

Jag använder en Nollmodemkabel RS232, 3m, DB25M/M som jag köpte här..
http://www.gardefelt.com/default2.asp
..sök på cab-0405


Lokalt Nätverk (LAN)

Det finns reserverade "nummer" man kan använda för sitt lokala nätverk..

-----------------------------------------------------------
|         RESERVED PRIVATE NETWORK ALLOCATIONS            |
-----------------------------------------------------------
| Network | Netmask       | Network Addresses             |
| Class   |               |                               |
-----------------------------------------------------------
|    A    | 255.0.0.0     | 10.0.0.0    - 10.255.255.255  |
|    B    | 255.255.0.0   | 172.16.0.0  - 172.31.255.255  |
|    C    | 255.255.255.0 | 192.168.0.0 - 192.168.255.255 |
-----------------------------------------------------------

..jag väljer ur klass C..
Network Address: 192.168.0.0
Netmask:         255.255.255.0

..med dessa "datoradresser"..

192.168.0.1 till server

192.168.0.2 till laptop

..och skriver in dom i /etc/hosts..

# For PLIP
192.168.0.1		server
192.168.0.2		laptop

..och ser till att /etc/nsswitch.conf har raden..

hosts:  	files dns  nis


..så kan jag kontakta dom med "namn".

Server

Normalt använder jag parallelporten till skrivaren så jag måste börja med att ta bort dom modulerna.

Först stannar jag "cups"..
# /etc/rc.d/rc.cups stop
cups: stopped scheduler.

Sedan kollar jag..
# lsmod

lp                      6404   0 (autoclean)
parport                22824   1 (autoclean) [parport_pc lp]
..och tar bort..
# rmmod lp
# rmmod parport_pc
# rmmod parport

Nu lägger jag in modulerna för "Plip"..
# insmod parport
Using /lib/modules/2.4.29/kernel/drivers/parport/parport.o.gz

# insmod parport_pc io=0x378 irq=7
Using /lib/modules/2.4.29/kernel/drivers/parport/parport_pc.o.gz

# insmod plip
Using /lib/modules/2.4.29/kernel/drivers/net/plip.o.gz

..då får jag detta längst ner..
# dmesg
parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE,EPP]
NET3 PLIP version 2.4-parport gniibe@mri.co.jp
plip0: Parallel port at 0x378, using IRQ 7.


Nu startar jag "nätverksgränssnittet" plip0 för "pointopoint"..
# ifconfig plip0 192.168.0.1 pointopoint 192.168.0.2 up

..och kollar..
# ifconfig

plip0     Link encap:Ethernet  HWaddr FC:FC:C0:A8:00:01
          inet addr:192.168.0.1  P-t-P:192.168.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:7 Base address:0x378

..måste också kolla att den finns i min "routing table"..
# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
laptop          *               255.255.255.255 UH    0      0        0 plip0


..den lades till automatiskt, om INTE så..
# route add -host 192.168.0.2 dev plip0

..sedan "pingar" jag "mig själv"..
# ping server 
PING server (192.168.0.1) 56(84) bytes of data.
64 bytes from server (192.168.0.1): icmp_seq=1 ttl=64 time=0.130 ms
64 bytes from server (192.168.0.1): icmp_seq=2 ttl=64 time=0.101 ms
64 bytes from server (192.168.0.1): icmp_seq=3 ttl=64 time=0.101 ms
64 bytes from server (192.168.0.1): icmp_seq=4 ttl=64 time=0.099 ms

--- server ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2997ms
rtt min/avg/max/mdev = 0.099/0.107/0.130/0.018 ms

NFS (Network File System)

Jag tänker låta min laptop få tillgång till en "programkatalog", /home/hakan/tiny, på min server via NFS.

Dokument: (http://www.linux.se/doc/swe/NFS-HOWTO-se-2.html) ⇒⇒ http://www.tldp.org/HOWTO/NFS-HOWTO/
Så här står det direkt i README..

NFS, NätverksFilSystemet har tre väsentliga egenskaper

    * Det möjliggör delning av filer över ett nätverk.
    * Det fungerar i stort sett tillräckligt bra.
    * Det öppnar för en flora av säkerhetsrisker som 
      är väl förstådda av crackers som enkelt kan utnyttjas
      för full åtkomst (läs, skriv och ta bort) av alla 
      dina filer.

..så då förstår du säkert hur viktigt det är att veta vad man gör
om man ska använda NFS.
Själv ska jag bara ha den utanför internet, och enbart när jag ska
tanka filer till laptopen, så säkerheten är inte avgörande.

Kontrollera att kärnan kan hantera NFS..
# cat /proc/filesystems
..,bla..bla
nodev   nfs
..bla,bla..

..starta nfs-servern..
# /etc/rc.d/rc.nfsd start
Starting NFS services:
  /usr/sbin/exportfs -r
exportfs: /etc/exports [4]: No 'sync' or 'async' option specified 
for export "laptop:/home/hakan/tiny".
  Assuming default behaviour ('sync').
  NOTE: this default has changed from previous versions
  /usr/sbin/rpc.nfsd 8
  /usr/sbin/rpc.mountd
  /usr/sbin/rpc.lockd
  /usr/sbin/rpc.statd


..kolla att "portmapper" kan hantera mountd och
nfs klient förfrågningar..
# rpcinfo -p

    program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100021    1   udp  32770  nlockmgr
    100021    3   udp  32770  nlockmgr
    100021    4   udp  32770  nlockmgr
    100005    1   udp    876  mountd
    100005    1   tcp    879  mountd
    100005    2   udp    876  mountd
    100005    2   tcp    879  mountd
    100005    3   udp    876  mountd
    100005    3   tcp    879  mountd
    100024    1   udp    882  status
    100024    1   tcp    885  status


..då provar jag montera, jag har skapat katalogen
/tmp/nfstest som monteringspunkt.
# mount -t nfs server:/home/hakan/tiny /tmp/nfstest

..och tittar att det fungerat..
# ls /tmp/nfstest
TEST  kern,mod  netw  prgm
  tinybase  utils  xbase  xprgm  xservers


Så långt är allt OK! 

Laptop

Jag har alltså "Tiny"( http://tiny.seul.org/en/index.html), tinybase + network, installerat på denna.
Jag går också in i BIOS och ändrar "Printer Port Type" till "Bi-Directional".

Först letar jag reda på PID-nummret för "skrivardemonen" lpd med..
# ps ax | grep lpd

..för att "döda" den med..
# kill "PID-nummer"

Nu gör jag ett "körbart" skript som jag kallar plip.sh, och
sparar i /root..

#!/bin/bash
#ta bort det gamla
rmmod lp
rmmod parport_pc
rmmod parport

# sätt in nytt
insmod parport
insmod parport_pc io=0x378 irq=7
insmod plip

# och öppna förbindelsen
ifconfig plip0 192.168.0.2 pointopoint 192.168.0.1 up

..då kör jag..
# ./plip.sh

..och kontrollerar..
# lsmod

plip                    11220   1
parport_pc              15216   1
parport                 22632   1 [parport_pc lp]

# dmesg
parport0: PC-style at 0x378, irq 7 [PCSPP,EPP]
NET3 PLIP version 2.3-parport gniibe@mri.co.jp
plip0: Parallel port at 0x378, using IRQ 7.

# ifconfig

plip0     Link encap:Ethernet  HWaddr FC:FC:C0:A8:00:02
          inet addr:192.168.0.2  P-t-P:192.168.0.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          Interrupt:7 Base address:0x378

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.1       *             255.255.255.255 UH    0      0        0 plip0


# ping 192.168.0.2
PING 192.168.0.2 (192.168.0.2) 56 data bytes
64 bytes from 192.168.0.2: icmp_seq=0 ttl=64 time=4.9 ms
64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=1.5 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=64 time=1.5 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttl=64 time=1.5 ms
64 bytes from 192.168.0.2: icmp_seq=4 ttl=64 time=1.5 ms

--- 192.168.0.2 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss
round-trip min/avg/max = 1.5/2.1/4.9 ms

Så långt är allt OK!

Kontrollera förbindelsen

För att få det att fungera (slippa alla "timeout's) så använde jag "plipconfig",
och ökar "nibble" och "trigger" (se man-sidan) 10x..
# plipconfig plip0 nibble 30000 trigger 5000
plip0   nibble 30000  trigger 5000

..först från "servern"..
# ping laptop
PING laptop (192.168.0.2) 56(84) bytes of data.
64 bytes from laptop (192.168.0.2): icmp_seq=1 ttl=64 time=8.63 ms
64 bytes from laptop (192.168.0.2): icmp_seq=2 ttl=64 time=12.4 ms
64 bytes from laptop (192.168.0.2): icmp_seq=3 ttl=64 time=12.5 ms
64 bytes from laptop (192.168.0.2): icmp_seq=4 ttl=64 time=12.5 ms
64 bytes from laptop (192.168.0.2): icmp_seq=5 ttl=64 time=12.5 ms

--- laptop ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4042ms
rtt min/avg/max/mdev = 12.474/14.969/24.832/4.932 ms

..sedan från "laptopen"..
# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.) 56 data bytes
64 bytes from 192.168.0.1: icmp_seq=0 ttl=64 time=8.9 ms
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=8.9 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=8.8 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=9.1 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=8.7 ms

--- laptop ping statistics ---
5 packets transmitted, 5 received, 0% packet loss
rtt min/avg/max/mdev = 12.474/14.969/24.832/4.932 ms

..nu skapar jag monteringspunkten /nfs på "laptopen"..
# mkdir /nfs

..och monterar..
# mount 192.168.0.1:/home/hakan/tiny /nfs

..flytar dit..
# cd /nfs

..och kollar..
# ls
TEST  kern,mod  netw  prgm  tinybase  utils  xbase  xprgm  xservers

Bingo! :-)

Jag har också provat med min Proftp-server och kommenterar jag bara bort den "säkra" (TLS) anslutningen i proftp.conf så..

# ftp 192.168.01
Connected to 192.168.01.
220-Välkommen till Håkans filserver.
220 ProFTPD 1.2.10 Server () [192.168.0.1]

Name (192.168.0.1:root): christer
331 Password required for christer.
Password: xxxxxxxx
230 Valkommen christer.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

..fungerar det också. :-)


Valid XHTML 1.0 Transitional