← Back to team overview

sslug-teknik team mailing list archive

Re: Firewall / Gateway ???

 

In <200009141918.VAA18338@xxxxxxxxxxxxxxx> Jimmy Dansbo <jimmy@xxxxxxxxxxxxxxx> writes:

>Jeg har et netvaerk der ser saaledes ud:

>                Net1                   Net2
>winmaskine1 ----------- RedHat6.2 --------------- winmaskine2

>winmaskine1=100.100.100.1
>winmaskine2=100.100.101.2
>linux Net1 =100.100.100.2
>linux Net2 =100.100.101.1

>Begge winmaskiner koere med subnetmask 255.255.255.0 linux maskinen
>koere med 255.255.0.0 paa begge net.

Dine netmasker på linux maskinen er forkerte. Med mindre man er HELT
sikker på hvad man foretager sig, så skal netmasken ALTID være den
samme for alle maskiner der sidder på samme kabel.

Altså: Brug netmask 255.255.255.0 på alle netværks-interfaces,
både Linux og Windows.

Når det er gjort, så skal du blot have Linux maskinen til at være
router, og Windows maskinerne til at bruge den som router. Det 
første klares med at ændre i Linux-maskinens /etc/sysctl.conf fil:
"ip_forward" skal sættes til "1", altså således:

  net.ipv4.ip_forward = 1

Hvis din maskine ikke har en "sysctl.conf" fil, så brug kommandoen
   echo "1" >/proc/sys/net/ipv4/ip_forward
På Windows maskinerne skal du så sætte "default gateway" til at være
Linux maskinens lokale IP adresse, d.v.s. winmaskine1 skal bruge 
100.100.100.2 som default gateway, mens winmaskine2 skal bruge
100.100.101.1


Og så lidt teori.

En maskine har en IP adresse, en netmaske og en default gateway.  Når
den skal snakke med en anden maskine kigger den først efter, om den
anden maskine har en IP adresse der ligger indenfor samme IP netværk:
Den tager sin egen IP adresse og "and'er" med netmasken, så tager den
IP adressen den vil snakke med og "and'er" med netmasken - hvis
resultatet er det samme, så er det en maskine på det lokale net, og så
prøver den at lave et såkaldt "arp" opslag for at finde ud af hvilken
hardware-adresse (Ethernet adresse) maskinen har. Når den har fået
svaret, kan den sende data direkte til den anden maskine.

Hvis den anden maskine ikke er på det lokale IP netværk, så sender den
pakken over til sin default gateway, som så må hitte ud af hvordan
pakken kan komme videre i retning af den maskine, der skal kontaktes.
For at kunne sende til gateway maskinen skal denne naturligvis kunne
kontaktes på det samme IP netværk, derfor er det nødvendigt at gateway
maskinen bruger samme netmaske som de maskiner, den skal være gateway
for.

Når gateway maskinen modtager en pakke, kigger den på modtager
adressen.  Hvis det ikke er til den selv, så er det en pakke som den
skal videresende; så ser den efter i sin tabel over hvilke IP netværk
den er forbundet til, og sender pakken ud på det netværk hvor den
"hører til". I din opsætning er det simpelt nok, men man kan sagtens
tænke sig at der er flere netværk og gateways i sving for at håndtere
en enkelt pakke.

>Uden at have gjort noget som helst ved nogen opsaetning kan jeg pinge
>fra winmaskine1(100.100.100.1) til linux Net2(100.100.101.2), men
>jeg kan ikke pinge fra winmaskine1 til winmaskine2(100.100.101.2)
>Det samme goer sig gaeldende for winmaskine 2.

Ja, det er en finte. Det er i virkeligheden lidt af en fejl i Linux'
netværks-koden, men skyldes lige så meget din forkerte indstilling af
netmasken.

-- 
Henrik Storner      | "Crackers thrive on code secrecy. Cockcroaches breed 
<henrik@xxxxxxxxxx> |  in the dark. It's time to let the sunlight in."
                    |  
                    |          Eric S. Raymond, re. the Frontpage backdoor


References