Sada je: 08 pro 2019, 17:26.
Linux, poslužitelj, mreže i sigurnost

Moderator/ica: Moderatori/ce

Eh, evo i ja sam se malo uhvatio u koštac oko mreže i došao sam do jednog čudnog problema i ne znam iz kojeg razloga mi ne želi raditi...

Naime, na kompu imam 2 ethernet kartice; jedna od njih (eth0) ima pristup internetu, a druga (eth1) ide na switch gdje se treba spojiti još računala (trenutno samo laptop).

E sad, ideja je sljedeće:
INTERNET << == >> ROUTER << == >> eth0 DESKTOP PC eth1 << == >> switch << == >> eth0 notebook

Prva ideja je bila preko iptables:
Kod: Označi sve
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

# Always accept loopback traffic
iptables -A INPUT -i lo -j ACCEPT


# Allow established connections, and those not coming from the outside
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

# Masquerade.
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

# Don't forward from the outside to the inside.
iptables -A FORWARD -i eth1 -o eth1 -j REJECT

# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward


Kod: Označi sve
ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:1A:92:E8:E6:3B 
          inet addr:192.168.1.3  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::21a:92ff:fee8:e63b/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:96875 errors:0 dropped:0 overruns:0 frame:0
          TX packets:67846 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:39440963 (37.6 Mb)  TX bytes:9391413 (8.9 Mb)
          Interrupt:27 Base address:0xa000

eth1      Link encap:Ethernet  HWaddr 00:06:4F:76:BD:D0 
          inet addr:192.168.1.50  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::206:4fff:fe76:bdd0/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:235001 errors:0 dropped:0 overruns:0 frame:0
          TX packets:507742 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:14356708 (13.6 Mb)  TX bytes:762617494 (727.2 Mb)
          Interrupt:18 Base address:0x2400

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:18780 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18780 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:653963 (638.6 Kb)  TX bytes:653963 (638.6 Kb)


no ne želi raditi... uspio sam podesiti bridge preko bridge-utils (brctl); na laptopu radi OK; no onda nemam pistup na desktop računalu što mi opet odgovara.

Znači, ono što meni treba je da sav promet sa eth1 proslijedi dalje preko eth0 (svi portovi, svi protokoli). ima netko kakvu ideju?
Avatar
Site Admin
Postovi: 1120
Site Admin
Postovi: 1120
Pridružen/a: 11 pro 2007, 23:33
Lokacija: San Francisco
Podijelio/la zahvalu: 0 puta
Primio/la zahvalu: 3 puta
Spol: M
OS: Archlinux
Re: routing eth1 to eth0
02 lip 2010, 11:27
Pozdrav,

Mozes li za probu napraviti sljedece:
# cat /proc/sys/net/ipv4/ip_forward


Te nakon toga ovaj set komandi:
# iptables -F (da pobrise sve unose u tablice)
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


Sudeci prema tvom ascii dijagramu vanjski interface bi trebao biti eth0 a ne eth1. Sukladno tome bi trebali biti promijenjeni i ostali unosi.

I jos jedna stvar
echo 1 > /proc/sys/net/ipv4/ip_forward


Ovo ti vise nece funkcionirati nakon reboota.

D.
When you're a kid and you wanna go "Weee !", but you ain't got drugs yet ... You hold out for your life, hold on to your little GONADS ... and STRIFE.
Avatar
Postovi: 910
Postovi: 910
Pridružen/a: 12 svi 2010, 07:57
Podijelio/la zahvalu: 0 puta
Primio/la zahvalu: 13 puta
OS: linux
Re: routing eth1 to eth0
02 lip 2010, 11:54
cat /proc/sys/net/ipv4/ip_forward daje za output 1 što znači da to ispravno radi i nema problema. Glede reboota, to mi je manje bitno; poštelam lako da bude cijelo vrijeme forwarding...

Ovo tvoje ne radi, na eth1 dobivam arp req (kao i prije), no komp ne želi odgovarati na njih... Već sam naveo, eth1 treba prosljeđivati sve na eth0 koji ima pristup internetu; ono gore napisano ne radi, probao sam zamjeniti eth1 i eth0 kako si rekao no ne funkcionira.

Još jednom podsjećam, može riješenje biti i preko bridge-utils samo da mi radi i na desktop računalu ;)
Avatar
Site Admin
Postovi: 1120
Site Admin
Postovi: 1120
Pridružen/a: 11 pro 2007, 23:33
Lokacija: San Francisco
Podijelio/la zahvalu: 0 puta
Primio/la zahvalu: 3 puta
Spol: M
OS: Archlinux
Re: routing eth1 to eth0
02 lip 2010, 12:02
ako ga nemas u arp tablici, to znaci i da se ne pinga?
takodjer, moras na kompu koji je zakacen na drugi komp imati default rutu na drugu komp i biti siguran da je ta default ruta aktivna.
naime, ako si ju postavio na ip, a taj ip nije bio dostupan u trenutku kada je komp to cekirao, nista od default rute.

takodjer, kako testiras, mozda ti sve radi (trebalo bi u trenutku kada si prebacio nat na eth0 pod uvjetom da su rute dobre), ali se ne resolva?
...."Have you mooed today?"...
..It’s that time of the decade: I’m reinstalling Debian..
Avatar
Postovi: 5677
Postovi: 5677
Pridružen/a: 28 vel 2009, 16:36
Podijelio/la zahvalu: 1 puta
Primio/la zahvalu: 41 puta
Re: routing eth1 to eth0
02 lip 2010, 12:06
Sokac je napisao/la:cat /proc/sys/net/ipv4/ip_forward daje za output 1 što znači da to ispravno radi i nema problema. Glede reboota, to mi je manje bitno; poštelam lako da bude cijelo vrijeme forwarding...

Ovo tvoje ne radi, na eth1 dobivam arp req (kao i prije), no komp ne želi odgovarati na njih... Već sam naveo, eth1 treba prosljeđivati sve na eth0 koji ima pristup internetu; ono gore napisano ne radi, probao sam zamjeniti eth1 i eth0 kako si rekao no ne funkcionira.

Još jednom podsjećam, može riješenje biti i preko bridge-utils samo da mi radi i na desktop računalu ;)


Ovo sto sam postao je najjednostavniji nacin stvaranja "internet connection sharinga" u linux svijetu. Ajde ukucaj sve sto sam gore napisao pa postaj output od komandi:

# ping google.com
# route


Na windowsima ces morati umjesto route komande koristiti tracert (ako se dobro sjecam). Koju distribuciju koristis ?

Ovo ucini na tom ics boxu i klijentu s kojega zelis koristiti to shareanje konekcije. Tko/Sto ti dodijeljuje mreznu konfiguraciju klijentima, rucno ili dhcp-om ?

Budi siguran da su svi unosi iz iptablesa maknuti, te samo dodaj onaj "one liner" iz mog originalnog posta.

D.
When you're a kid and you wanna go "Weee !", but you ain't got drugs yet ... You hold out for your life, hold on to your little GONADS ... and STRIFE.
Avatar
Postovi: 910
Postovi: 910
Pridružen/a: 12 svi 2010, 07:57
Podijelio/la zahvalu: 0 puta
Primio/la zahvalu: 13 puta
OS: linux
Re: routing eth1 to eth0
02 lip 2010, 12:12
a i ako si samo dodao onaj rule za nat preko eth0, a nisi izbrisao prvotno postavljeni, iptablesi ti i dalje nataju preko eth1 jer je to prvi rule kojeg pogode..
...."Have you mooed today?"...
..It’s that time of the decade: I’m reinstalling Debian..
Avatar
Postovi: 5677
Postovi: 5677
Pridružen/a: 28 vel 2009, 16:36
Podijelio/la zahvalu: 1 puta
Primio/la zahvalu: 41 puta
Re: routing eth1 to eth0
02 lip 2010, 18:37
Evo ovako... drade, koristim na oba archlinux i nakon tvojih uputa (kao što sam već i rekao) jednostavno stvar ne funkcionira.

glaskoncILLa, tako je; ne mogu pingat ništa osim vlastitog laptopa i kompa; ništa više ne vidi. Što se tiče podešavanja mreže na laptopu, ako upalim dhcp client (dhcpcd eth0) ne dobivam ništa, tj bude timed out. paket koji dobivam na kompu (desktop pc, eth1) je sljedeće:
Kod: Označi sve
1   0.000000   0.0.0.0   255.255.255.255   DHCP   DHCP Discover - Transaction ID 0x7a4f7c97

odgovora za taj upit jednostavno nema...

ako ručno podesim ip, netmask i gw na laptopu, i napravim sljedeće: ping 192.168.1.1 (router); dobivam sljedeće na njemu:
- From (...) destination host unreachable

Na eth1 dobivam ove pakete:
Kod: Označi sve
54   231.093328   HewlettP_1f:01:18   Broadcast   ARP   Who has 192.168.1.1?  Tell 192.168.1.79

za koje komp ne daje odgovore.

Znači, problem je upravo to prosljeđivanje dalje, prema eth0 što očito ne funkcionira kako bi trebalo.

Probat ću se sad malo igrati sa bridge-utils; vi ako imate kakve ideje... :)


edit:
ping google.com
unknown host google.com
route
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.1.50 0.0.0.0 UG 0 0 eth0 (<- ručno dodano)

i da, dobivam ovo (odgovor na ping 192.168.1.3, što je eth0 na desktopu):
Kod: Označi sve
640   798.813032   HewlettP_1f:01:18   Broadcast   ARP   Who has 192.168.1.3?  Tell 192.168.1.79
641   798.813053   Pro-Nets_76:bd:d0   HewlettP_1f:01:18   ARP   192.168.1.3 is at 00:06:4f:76:bd:d0
Avatar
Site Admin
Postovi: 1120
Site Admin
Postovi: 1120
Pridružen/a: 11 pro 2007, 23:33
Lokacija: San Francisco
Podijelio/la zahvalu: 0 puta
Primio/la zahvalu: 3 puta
Spol: M
OS: Archlinux
Re: routing eth1 to eth0
02 lip 2010, 19:06
Pozdrav,

Alright, idemo ovako. Molim te da navedes tocno koje vrijednosti unosis za "ip", "netmask" i "gateway" na klijentskom racunalu, tj. laptopu ?

Znam da je malo nategnuto, ali ako imas ssh pristup tom racunalu volio bih se spojiti da vidim to iz prve ruke ?

D.
When you're a kid and you wanna go "Weee !", but you ain't got drugs yet ... You hold out for your life, hold on to your little GONADS ... and STRIFE.
Avatar
Postovi: 910
Postovi: 910
Pridružen/a: 12 svi 2010, 07:57
Podijelio/la zahvalu: 0 puta
Primio/la zahvalu: 13 puta
OS: linux
Re: routing eth1 to eth0
02 lip 2010, 19:08
ssh se teško dobiva kod mene (održavam brojne web stranice). Ali nema niti potrebe razmišljati o tome, uspio sam riješiti preko bridge-utils
Kod: Označi sve
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1

ifconfig eth0 up
ifconfig eth1 up
ifconfig br0 up


zatim je potrebno podesiti br0 kao eth0 što bi podesio; te na laptopu samo pokreniti dhcpcd eth0. Jednostavno, a nema puno petljancije
Avatar
Site Admin
Postovi: 1120
Site Admin
Postovi: 1120
Pridružen/a: 11 pro 2007, 23:33
Lokacija: San Francisco
Podijelio/la zahvalu: 0 puta
Primio/la zahvalu: 3 puta
Spol: M
OS: Archlinux
Re: routing eth1 to eth0
02 lip 2010, 19:09
Sokac je napisao/la:ssh se teško dobiva kod mene (održavam brojne web stranice). Ali nema niti potrebe razmišljati o tome, uspio sam riješiti preko bridge-utils
Kod: Označi sve
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1

ifconfig eth0 up
ifconfig eth1 up
ifconfig br0 up


zatim je potrebno podesiti br0 kao eth0 što bi podesio; te na laptopu samo pokreniti dhcpcd eth0. Jednostavno, a nema puno petljancije


Ma nema problema, mozes li mi samo navesti koje vrijednosti si unasao kako sam zatrazio gore.

D.
When you're a kid and you wanna go "Weee !", but you ain't got drugs yet ... You hold out for your life, hold on to your little GONADS ... and STRIFE.
Avatar
Postovi: 910
Postovi: 910
Pridružen/a: 12 svi 2010, 07:57
Podijelio/la zahvalu: 0 puta
Primio/la zahvalu: 13 puta
OS: linux

Na mreži
Trenutno korisnika/ca: / i 1 gost.