Ruter - adres interfejsu LAN widoczny w WAN

Masz problemy z siecią bądź internetem? Zapytaj tu
colnet
Posty: 5
Rejestracja: 04 stycznia 2012, 16:53

Ruter - adres interfejsu LAN widoczny w WAN

Post autor: colnet »

Konfiguracja wygląda tak:

Kod: Zaznacz cały

Internet < eth0 > Ruter1 < eth1 > [b]Przełącznik[/b] < eth0 > Ruter 2 < eth1 > [b]Przełącznik[/b]  / LAN
Ruter1:

Kod: Zaznacz cały

eth0: 80.x.x.x WAN
eth1: 192.168.0.1/255.255.0.0 LAN (statycznie)
Ruter 2:

Kod: Zaznacz cały

eth0: 192.168.80.1/255.255.0.0 WAN (statycznie)
eth1: 192.168.100.1/255.255.255.0 LAN (statycznie)

Do Rutera1 oprócz kolejnego rutera na adresie 192.168.80.1 mam wpięte komputery: od 192.168.0.2 do ok. 192.168.10.250 z maską 255.255.0.0
Do Rutera2 mam wpięte kilka komputerów od 192.168.100.2 do 192.168.100.50 z maską 255.255.255.0

Oba rutery to Debian 6, wszystkie systemy aktualne. Na nich zainstalowany serwer DHCP, adresy IP rozdawane według MAC.

Na ruterze 1, kawałek iptables:

Kod: Zaznacz cały

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -j MASQUERADE
I kto ma mieć dostęp do internetu mam taki wpis:

Kod: Zaznacz cały

iptables -A FORWARD -s 192.168.0.2 -j ACCEPT
iptables -A FORWARD -s 192.168.0.3 -j ACCEPT
iptables -A FORWARD -s 192.168.80.1 -j ACCEPT
Na ruterze2 analogicznie:

Kod: Zaznacz cały

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j MASQUERADE
I kto ma mieć dostęp do internetu mam taki wpis:

Kod: Zaznacz cały

iptables -A FORWARD -s 192.168.100.2 -j ACCEPT
iptables -A FORWARD -s 192.168.100.3 -j ACCEPT
iptables -A FORWARD -s 192.168.100.4 -j ACCEPT

I teraz coś czego nie mogę zrozumieć bo ruter2 jest widoczny w sieci pod adresem 192.168.80.1 i 192.168.100.1, dlaczego powinien być za maskaradą?

Wyłączam na ruterze2 eth1

Kod: Zaznacz cały

ifconfig eth1 down

I sygnał ping dalej przechodzi na 192.168.100.1...

Wyłączam na ruterze 2, routing pakietów, czyszczę iptables i dalej mogę wysyłać sygnał ping na adres 192.168.100.1...

W sieci 1, na pewno nie ma innego 192.168.100.1 ponieważ wyłączyłem całkowicie z sieci Ruter2 i adresy 192.168.80.1, 192.168.100.1 znikają.

Konfiguracja sieci na ruterze2:

Kod: Zaznacz cały

allow-hotplug eth0
iface eth0 inet static
        address 192.168.80.1
        netmask 255.255.0.0
        network 192.168.0.0
        broadcast 192.168.255.255
        gateway 192.168.0.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 194.204.159.1 194.204.152.34


allow-hotplug eth1
iface eth1 inet static
        address 192.168.100.1
        netmask 255.255.255.0
        network 192.168.100.0
        broadcast 192.168.100.255

Skończyły mi się pomysły dlatego szukam pomocy, nie mam pojęcia czemu tak się dzieje, nie mam żadnych wirtualnych interfejsów, żadnych aliasów itd. w sumie to wszystko działa poprawnie, ale nie daje mi spokoju czemu te 192.168.100.1 jest widoczne kiedy nie powinno być widoczne.
Awatar użytkownika
markossx
Beginner
Posty: 489
Rejestracja: 26 maja 2007, 16:01
Lokalizacja: Polska

Post autor: markossx »

Ustaw na interfejsie eth0 rutera2 maskę 24 bity i sprawdź co się stanie.
colnet
Posty: 5
Rejestracja: 04 stycznia 2012, 16:53

Post autor: colnet »

Bez zmian, oba interfejsy działają, z sieci mogę dalej wysyłać sygnał ping, czy zalogować się przez ssh na adres 192.168.100.1.

Wydaję polecenie:

Kod: Zaznacz cały

 tcpdump -i eth0 icmp z sieci pinguje 192.168.100.1
20:12:10.373818 IP 192.168.0.223 > 192.168.100.1: ICMP echo request, id 1, seq 56, length 40
20:12:10.373832 IP 192.168.100.1 > 192.168.0.223: ICMP echo reply, id 1, seq 56, length 40[/I]
Polecenie:

Kod: Zaznacz cały

tcpdump -i eth1 icmp
nic nie zwraca.

Kod: Zaznacz cały

route -n
Destination        Gateway         Genmask         Flags   Metric   Ref    Use  Iface
0.0.0.0            192.168.0.1        0.0.0.0           UG      0        0        0   eth0
192.168.0.0         0.0.0.0        255.255.0.0        U        0        0        0   eth0
192.168.100.0      0.0.0.0       255.255.255.0      U       0        0        0   eth1
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

colnet, proszę używać znaczników code wstawiając polecenia, wyniki, logi itp. Proszę poprawić tekst.
Awatar użytkownika
markossx
Beginner
Posty: 489
Rejestracja: 26 maja 2007, 16:01
Lokalizacja: Polska

Post autor: markossx »

Ustaw więc maskę /24 na wszystkich interfejsach gdzie występuje klasa C.
Cyphermen
Beginner
Posty: 426
Rejestracja: 24 maja 2009, 10:56
Lokalizacja: cze-wa

Post autor: Cyphermen »

Po pierwsze nie wiem czemu używasz tak wielkich masek jak 16 bitów. Po 2 nie wiem czy problemem nie jest to że na obu interfejsach rutera2 masz adresy 192.168.x.x i sie na siebie nie nakładają mimo innych masek. Ustaw 24 bity na nich i rożne podsieci i wtedy sprawdź.

Jeśli chodzi o forwardowanie ip włączone, ping nie będzie działał tylko wtedy jeśli będą różne podsieci np:

Kod: Zaznacz cały

eth0 192.168.0.0/24
eth1: 192.168.1.0/24
jeśli jest to jedna podsieć ping będzie działał.

Nawet jeśli wyłączysz jeden interfejs a router może przesłać pakiety przez ten drugi router to dany adres powinien być osiągalny( nie wiem z czego to wynika ale miałem podobne problemy)
colnet
Posty: 5
Rejestracja: 04 stycznia 2012, 16:53

Post autor: colnet »

Maska z 16 została zmieniona na 18, musi tak być bo urządzeń w sieci jest sporo. W drugiej sieci jest 24, maski się nie nakładają na siebie i jest to samo.

Sieć1

Kod: Zaznacz cały

eth0 80.x.x.x
eth1 192.168.0.0/18

Sieć2

Kod: Zaznacz cały

eth0 192.168.20.1/18
eth1 192.168.100.1/24

W drugiej sieci zmieniłem też adresację na 10.x.x.x i też jest to samo, z sieci o adresie 192.168.x.x/18 mogę puścić sygnał ping na 10.0.0.1/24. Cuda...

Sieć1

Kod: Zaznacz cały

eth0 80.x.x.x
eth1 192.168.0.0/18

Sieć 2

Kod: Zaznacz cały

eth0 192.168.20.1/18
eth1 10.0.0.1/24

Ruter w sieci 2 to świeżo zainstalowany Debian z skonfigurowanym eth0 i eth1 nic więcej, żadnego iptables, przekierowań itd.
Cyphermen
Beginner
Posty: 426
Rejestracja: 24 maja 2009, 10:56
Lokalizacja: cze-wa

Post autor: Cyphermen »

Kolego ale to nie, że musi tak być tylko miałeś to zrobić na test!

Poza tym nie przeczytałeś tego co napisałem. To nie są cuda bo to jest adres interfejsu, na niego dostajesz się przez adres z drugiego interfejsu.

Dodaj komputer i przydziel mu adres 10.0.0.2/24 i wtedy wyjmij kabel z karty 10.0.0.1 i zobacz, czy wyślesz sygnał ping. Albo nie przypisanemu adresowi np. 10.0.0.3 puść ping na pewno nie odpowie bo go nie ma!
colnet
Posty: 5
Rejestracja: 04 stycznia 2012, 16:53

Post autor: colnet »

Ja to zrobiłem na TEST wszystko robię na test, więc nie wiem po co to pierwsze zdanie, po drugie przeczytałem co napisałeś i to zastosowałem dla testu! U mnie wszystko działa normalnie więc się o to nie martw. W tej chwili rozwiązałem to regułkami iptables na eth0 i eth1 zdefiniowałem destination oraz source i to działa to poprawnie, ale dalej się zastanawiam dlaczego tak jest i czy nie można tego inaczej rozwiązać! Sprawdziłem z ciekawości ja to robi Windows XP przy udostępnianiu połączenia i tam to o dziwo działa poprawnie, będąc wpiętym w sieć 192.168.x.x nie mogę spingować 10.0.0.1 - bo nie znaleziono hosta.

Dodaj komputer i przydziel mu adres 10.0.0.2/24 i wtedy wyjmij kabel z karty 10.0.0.1 i zobacz, czy wyślesz sygnał ping. Albo nie przypisanemu adresowi np. 10.0.0.3 puść ping na pewno nie odpowie bo go nie ma!
Nie wiem co to ma do rzeczy, jasne jest że do 10.0.0.2 nie puszcze pinga z 192.168.x.x bo jest za go za maskaradą, ale do 10.0.0.1 puszczę co według mnie nie powinno mieć miejsca, ponieważ 10.0.0.1 należy do sieci eth1, a nie eth0 do której jest wpięty.
Cyphermen
Beginner
Posty: 426
Rejestracja: 24 maja 2009, 10:56
Lokalizacja: cze-wa

Post autor: Cyphermen »

No to ci wytłumaczyłem że wpadając przez eth0 pakiet widzi eth1 gdyż jest to integralna część routera. Pewnie chodzi tutaj o interfejs loopback.
Możesz wyłączy loopback i zobaczyć.
ODPOWIEDZ