Dele Internett-tilkobling
Fra Wikipedia, den frie encyklopedi.
Det er relativt enkelt å dele Internett-tilkoblingen fra Linux med andre maskiner i nettverket. Fra Windows er man kanskje vant til å gå inn på nettverksoppsettet til den enkelte tilkoblingen for å gjøre dette. I Linux gjøres det kjappest med noen få enkle kommandoer i en terminal.
| Innholdsfortegnelse |
Grunnleggende oppsett
Vi skal i denne artikkelen forutsette et enkelt oppsett: Man har en Linux-maskin som er koblet til Internett med et nettverkskort (eth0), og til et lokalt nettverk med et annet kort (eth1). Vi skal videre anta at man på sin Internett-tilkobling bare har tilgjengelig én offentlig IP-adresse, og at lokalnettverket har RFC 1918-adresser (private IP-adresser).
Routing
Det første man må gjøre er å se etter om maskinen er satt opp til å rute pakker videre dersom de skal til en annen maskin. Dette gjøres ved hjelp av en såkalt sysctl (system control). For å sjekke om ruting er satt på kan man se på innholdet av fila /proc/sys/net/ipv4/ip_forward:
# cat /proc/sys/net/ipv4/ip_forward
0
Her ser vi at fila inneholder 0, det vil si at ruting/forwarding av pakker er skrudd av. La oss skru det på (man må være root for å gjøre dette):
# echo "1" > /proc/sys/net/ipv4/ip_forward
Sånn, da er maskinen i stand til å rute pakker fra lokalnettet ut på Internett, og motsatt. Men vi er ikke ferdige helt enda. Maskinene på lokalnettet er satt opp med private adresser. Når en maskin på Internett mottar en pakke fra en maskin med en privat IP-adresse vil den ikke være i stand til å sende et svar, siden private IP-adresser ikke rutes på Internett.
NAT
Det vi da må gjøre, er å la vår rutermaskin (som skal dele internettkoblingen) late som om det er den som har sendt pakken. Til det formålet har man oppfunnet Source Network Address Translation, eller SNAT. I korte trekk går dette ut på at maskinen som er ruter eller gateway skriver om den trafikken som kommer fra lokalnettet og som skal ut på Internett, slik at det ser ut som om trafikken kommer fra selve ruteren. Rutermaskinen husker så hvilken maskin på lokalnettet som har sendt pakken i utgangspunktet, og sender svaret videre dit når det kommer.
Hvordan gjøres så dette? Her trengs noe som kalles netfilter. Netfilter er et pakkefilter som er bygget inn i Linux-kjernen. De aller, aller fleste distribusjonene har støtte for dette bygget inn i sine kjerner. Netfilter er primært programvare for å sette opp en brannmur, men har også NAT-funksjonalitet.
Før vi nå går videre, må man ta et valg. De aller fleste har dynamisk IP fra sin ISP. Noen har derimot statisk IP. Hvis du har dynamisk IP, bruker vi noe som heter masquerading til å «oversette» IP-adresser. Vi antar her at det grensesnittet som skal dele Internettforbindelsen er eth0, og at lokalnettet er satt opp med RFC-1918-adresser i 192.168.1.0-nettet. For å sette opp masquerading på dette oppsettet gjør vi som følger:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Det vi gjør her er å si at vi skal legge til en regel i NAT-tabellen, som skriver om alle pakker som skal ut gjennom eth0-grensesnittet slik at de ser ut til å komme fra selve ruteren. NAT står for Network Address Translation.
Dersom vi har fast IP, bør vi (men må ikke) gjøre det på en litt annen måte. Hvis vi antar at vår IP på Internett er 123.123.123.123, settes dette opp på denne måten:
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 123.123.123.123
Her skjer det samme som ved masquerading, men med en annen intern mekanisme. Alle pakker som forlater maskinen via eth0 vil ha 123.123.123.123 som avsenderadresse. Forskjellen fra masquerading er at vi spesifiserer hvilken IP-adresse som skal benyttes. I det første tilfellet vil derimot adressen på eth0 bli sjekket på nytt for hver gang grensesnittet går ned eller tas ned.
Klientoppsett
Fast IP
Alle maskinene må være i samme IP-nett som maskinen som deler Internett-tilkoblingen (bruk kommandoen ifconfig til å sjekke lokal IP-adresse om du ikke vet), og default gateway må være IP-adressen til denne maskinen.
DHCP
Man kan og sette opp en DHCP-tjener slik at klientmaskinen automatisk får informasjon om bl.a. default gateway. Klientmaskinene må da konfigureres som DHCP-klienter.
Eksterne ressurser
- hjemmesiden til netfilter (http://www.netfilter.org/)
Denne artikkelen er en stubb. Du kan hjelpe Linuxguiden ved å utvide den (http://www.linuxguiden.no/index.php?title=Dele_Internett-tilkobling&action=edit).

