Routing mellan 2 nätverk, linux router, hur?!

Permalänk
Medlem

Routing mellan 2 nätverk, linux router, hur?!

God afton.

Jag har under veckan dragit igång med ett gammalt projekt. En enkelt router. Dns, dhcp och forwarding funkar fint och jag tar mig ut på internet med samtliga enheter.

Burken leker router har 3 NIC:
eth0 192.168.1.1 dlink dge-528t PC
eth1 192.168.2.1 dlink dge-528t PS3
eth2 DHCP inbyggt 10/100 Internet

Hela tanken med projektet är att jag ska ha gigabit överföring mellan eth0 (pc) pch eth1 (ps3). Dock har jag sprungit in i en vägg när det kommer till att routa trafik mellan de två olika näten som datorn och ps3n ligger på. Jag har googlat ett par dagar nu och sliter i mitt tunna hår. Prövade även att få dem på samma nät men det var inte så lyckat.

Ska jag lägga upp vägar med route på routern eller? Har prövat mig på det med en massa olika märkliga alternativ, funkade inte, jag fattar verkligen inte. Har läst om saken på diverse sidor och "suse linux 10 bible" om det ger nåt medlidande.

Jag kan pinga 192.168.2.1 från PCn på 192.168.1.8, men ps3n (192.168.2.9) kommer jag inte åt.

Kör Arch på både routern och datorn, om det hjälper. Och ps3n... ja det är fw3.0 iaf.

Tacksam för all hjälp jag kan få.

Permalänk
Medlem
Permalänk
Medlem

Är det inte en brygga du är ute efter?

Permalänk
Medlem

# sysctl -w net.ipv4.ip_forward = 1

Sen är det bara att lägga den routern som default gateway på alla klienter. Så lätt var det. Dock kanske du borde lägga till lite iptables regler men det är för att stänga ner nätverket.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av twan
Är det inte en brygga du är ute efter?

Jag vet verkligen inte

Citat:

Ursprungligen inskrivet av Isen
# sysctl -w net.ipv4.ip_forward = 1

Sen är det bara att lägga den routern som default gateway på alla klienter. Så lätt var det. Dock kanske du borde lägga till lite iptables regler men det är för att stänga ner nätverket.

mja mjo men det är ju altså 2 olika routrar, iaf ser det ut som det, då kort 192.168.1.1 är en och 192.168.2.1 är en annan. Sen är ju eth2 kortet som är mot internet, med en 83.xx.xxx.xx ip.

Permalänk
Medlem

Du kan ju alltid använda dig utav quagga för att routa trafiiken mellan de två subnäten.

http://openmaniak.com/quagga_tutorial.php

Där kommer en liten tutorial och allt.

Permalänk
Medlem

Testa att köra detta som root:

# route add -net 192.168.1.0 eth0 # route add -net 192.168.2.0 eth1 # route add default gw dev eth2 # sysctl -w net.ipv4.ip_forward = 1

Din PCs gatway skall sen vara 192.168.1.1 och din PS3as 192.168.2.1

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Bajsefg
Du kan ju alltid använda dig utav quagga för att routa trafiiken mellan de två subnäten.

http://openmaniak.com/quagga_tutorial.php

Där kommer en liten tutorial och allt.

Pakten i aur funkar inte, ska se om de blir fixade längre fram.

Citat:

Ursprungligen inskrivet av Vijjje
Testa att köra detta som root:

# route add -net 192.168.1.0 eth0 # route add -net 192.168.2.0 eth1 # route add default gw dev eth2 # sysctl -w net.ipv4.ip_forward = 1

Din PCs gatway skall sen vara 192.168.1.1 och din PS3as 192.168.2.1

Route säger:

Destination Gateway Genmask Flags Metric Ref Use Iface 83.xxx.xxx.xxx * 255.255.255.128 U 204 0 0 eth2 192.168.2.0 * 255.255.255.0 U 0 0 0 eth1 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 default 83.xxx.xxx.xxx 0.0.0.0 UG 204 0 0 eth2

Och forward är på annars får jag inte internetanslutning.

Permalänk
Medlem

Om Internet funkar från båda två näten så verkar det som att du har några brandväggsregler som blockerar trafiken mellan näten. Hur ser dina iptables-regler ut? Posta gärna outputen från "iptables -L -n -v" samt "iptables -t nat -L -n -v".

Och lyssna inte på dem som säger att du ska använda dig av Quagga eller iproute2 för sådant här, det här är så standard routing man kan komma, och det behöver man inga specialverkyg för.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av nillon
Om Internet funkar från båda två näten så verkar det som att du har några brandväggsregler som blockerar trafiken mellan näten. Hur ser dina iptables-regler ut? Posta gärna outputen från "iptables -L -n -v" samt "iptables -t nat -L -n -v".

Och lyssna inte på dem som säger att du ska använda dig av Quagga eller iproute2 för sådant här, det här är så standard routing man kan komma, och det behöver man inga specialverkyg för.

Ursäkta dröjesmålet.

iptables -L -n -v

Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- eth2 eth1 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT all -- eth1 eth2 0.0.0.0/0 0.0.0.0/0 0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 0 0 ACCEPT all -- eth2 eth0 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT all -- eth1 eth0 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT all -- eth0 eth1 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT all -- eth0 eth2 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination

iptables -t -nat -L -n -v

Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 MASQUERADE all -- * eth2 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination

Jag kan med ödmjukhet säga direkt att det är spännande och nya marker.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av nillon
Om Internet funkar från båda två näten så verkar det som att du har några brandväggsregler som blockerar trafiken mellan näten. Hur ser dina iptables-regler ut? Posta gärna outputen från "iptables -L -n -v" samt "iptables -t nat -L -n -v".

Och lyssna inte på dem som säger att du ska använda dig av Quagga eller iproute2 för sådant här, det här är så standard routing man kan komma, och det behöver man inga specialverkyg för.

Och hur har du tänkt att routningen skulle fungera utan iproute2? All routning i linux hanteras av iproute2.

EDIT:
KvarX, dina brandväggsregler tillåter inga nya förbindelser mellan eth0 och eth1, bara etablerade och relaterade.

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- eth2 eth1 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT all -- eth1 eth2 0.0.0.0/0 0.0.0.0/0
0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4
0 0 ACCEPT all -- eth2 eth0 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT all -- eth1 eth0 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT all -- eth0 eth1 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT all -- eth0 eth2 0.0.0.0/0 0.0.0.0/0

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av fagerja
Och hur har du tänkt att routningen skulle fungera utan iproute2? All routning i linux hanteras av iproute2.

Antagligen tänkte han att det skulle fungera som det alltid har gjort. Alla system använder inte iproute2.

Permalänk
Medlem

Och jag tror fortfarande att det är en brygga mellan interfacen trådskaparen är ute efter.
Paket för debian: http://packages.debian.org/lenny/bridge-utils
Med detta kan du få portarna att fungera som två portar i en switch och spela på samma nät.

Edit: Skrev fel länk

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Vijjje
Antagligen tänkte han att det skulle fungera som det alltid har gjort. Alla system använder inte iproute2.

Commands like route and ifconfig are actually very thin wrappers for the very powerful iproute2 infrastructure. Från http://lartc.org/howto/lartc.intro.html.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av KvarX
Ursäkta dröjesmålet.

iptables -L -n -v

Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- eth2 eth1 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT all -- eth1 eth2 0.0.0.0/0 0.0.0.0/0 0 0 LOG all -- * * 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 0 0 ACCEPT all -- eth2 eth0 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT all -- eth1 eth0 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT all -- eth0 eth1 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT all -- eth0 eth2 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination

iptables -t -nat -L -n -v

Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 MASQUERADE all -- * eth2 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination

Jag kan med ödmjukhet säga direkt att det är spännande och nya marker.

Problemet är, som fagerja skriver längre upp, att du inte släpper ny trafik mellan eth0 och eth1.
"iptables -I FORWARDING -i eth0 -o eth1 -j ACCEPT" samt "iptables -I FORWARDING -i eth1 -o eth0 -j ACCEPT" bör lösa det problemet. Gissar på att du har något script för att skapa dina regler, så då behöver du peta in den förändringen i det.

Citat:

Ursprungligen inskrivet av fagerja
Och hur har du tänkt att routningen skulle fungera utan iproute2? All routning i linux hanteras av iproute2.

Ok, mer än jag visste. Men man behöver inte lägga upp routes för sådant här då näten är lokala för maskinen. Så vad jag menar är att man inte behöver blanda in userland-verktygen för iproute2, för vanlig destinationsbaserad routing räcker "route" långt.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av twan
Och jag tror fortfarande att det är en brygga mellan interfacen trådskaparen är ute efter.
Paket för debian: http://packages.debian.org/lenny/bridge-utils
Med detta kan du få portarna att fungera som två portar i en switch och spela på samma nät.

Edit: Skrev fel länk

Jag prövade på att skapa en bygga enligt http://www.linuxfoundation.org/en/Net:Bridge och det verkade väldigt lovande ett litet tag där att det fungerade som ett enda nät. Dock fick jag bara ip till PCn, inte ps3, och varken dns eller eller någon åtkomst till internet fungerade. Tycker inte det är så mycket som kan ha gått fel, och config för dns/dhcp tjänsten och scriptet för masquerade pekade på det nya.

Citat:

Ursprungligen inskrivet av nillon
Problemet är, som fagerja skriver längre upp, att du inte släpper ny trafik mellan eth0 och eth1.
"iptables -I FORWARDING -i eth0 -o eth1 -j ACCEPT" samt "iptables -I FORWARDING -i eth1 -o eth0 -j ACCEPT" bör lösa det problemet. Gissar på att du har något script för att skapa dina regler, så då behöver du peta in den förändringen i det.

Det är helt jävla underbart, fungerar helt klockrent. Stort tack!
Känner mig som en liten unge nu, glad och ganska distraherad.
Liten notis: iptables -i FORWARD -i... etc. Det tog mig åtminstone 20 minuter att komma på, 20 minuter av bitter förtvivlan, dock snabbt utbytt mot brinnande glädje.

Litet problem kvarstår. PMS (playstation media server) hittar inte till PS3n fast jag nu kan pinga.
I PMS faq påpekar de att routern ska forward port 5001. Sökte på google om port forwarding och iptables, och som brukligt så finns det mer svar än frågor verkar det som.

Så följdfrågan jag har är: hur hanterar man portar? Så PMS får bruka sin 5001 port. Sätter man altså så att porten är öppen mellan de två näten?

Tack igen för allt visat intresse och hjälp!

Permalänk
Medlem

iptables -I FORWARDING -i eth0 -o eth1 -j ACCEPT öppnar alla portar för trafik från eth0 till eth1. Det du behöver göra är att forwarda porten. Det gör du med DNAT:
iptables -t nat -A PREROUTING -p tcp -d 192.168.2.1 --dport 5001 -j DNAT --to-destination 192.168.1.x:5001
192.168.1.x:5001 är serverns IP-nummer:port

Kolla http://iptables-tutorial.frozentux.net/

Permalänk
Medlem

Mellan två routade nät ska man inte behöva blanda in NAT och portforwards.
Vad jag tror problemet är är att det inte routas multicast mellan de två näten (antar att PMS annonserar sig med UPnP).
Har inte själv pysslat med multicast-routing på Linux, men jag tror detta kan vara vad trådskaparen eftersöker:

Citat:

Question 6. What do I need to do to implement multicast in Linux?

Build a kernel with MULTICAST enabled.
Do "route add 224.0.0.0 netmask 240.0.0.0 dev eth0" . (Thanks, Alan)
Current net-tools route should be doing it as a net route implicitly.
"route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0"
should work for all cases (older versions).
(You may need to relink route with the later kernel includes.)
ping -t 1 -c 2 224.0.0.1 should show up your local multicast-capable
hosts.

Källa: http://andrew.triumf.ca/pub/linux/multicast-FAQ

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av fagerja
iptables -I FORWARDING -i eth0 -o eth1 -j ACCEPT öppnar alla portar för trafik från eth0 till eth1. Det du behöver göra är att forwarda porten. Det gör du med DNAT:
iptables -t nat -A PREROUTING -p tcp -d 192.168.2.1 --dport 5001 -j DNAT --to-destination 192.168.1.x:5001
192.168.1.x:5001 är serverns IP-nummer:port

Kolla http://iptables-tutorial.frozentux.net/

Citat:

Ursprungligen inskrivet av nillon
Mellan två routade nät ska man inte behöva blanda in NAT och portforwards.
Vad jag tror problemet är är att det inte routas multicast mellan de två näten (antar att PMS annonserar sig med UPnP).
Har inte själv pysslat med multicast-routing på Linux, men jag tror detta kan vara vad trådskaparen eftersöker:

Källa: http://andrew.triumf.ca/pub/linux/multicast-FAQ

Jag har prövat mig på båda era förslag utan någon framgång tyvärr. Kanske blev det lite fel då jag inte var säker på en del saker. Dock har jag inte möjlighet att utforska saken vidare då routerburken har kommit in i nån jävla trotsålder, eller så håller nån komponent på att dö. För hela burken fryser efter 10-15 min drift och självfallet all trafik. Det är en riktigt sliten gammal sak som har levt ett hårt liv på Älvstrandsgymnasiets datalinje. Hårddisken knorrar som en gris och viner titt som tätt.
Veckan som kommer ska nya delar införskaffas till en ny burk.

Iptables grejen tror jag att jag fixade, dock hittar ändå inte pms ps3n. Antar det är UPnP delen som fattas.

Multicast var jag lite oklar över. Ska routen läggas till på router burken eller burken som kör pms servern? Testade på båda, och med både eth0 och eth1 på routern. Sen dog allt, låste sig, slutade knorra, svarade inte mer, stack utan att säga till så att säga.

Tack och bock!