Strona 1 z 1

Komputer z dwoma kartami podział sieci

: 05 listopada 2009, 00:28
autor: eliasz
Mam problem z zestawieniem sieci pomiędzy 3 komputerami (schemat sieci jak na obrazku). Komputer PC2 posiada dwie sieciówki. Wszystkie komputery na Linuksie bez GUI.

Problem polega na łączności między komputerami po przeciwnych końcach (PC1 a PC3) a raczej na jego braku.

Podejrzewam (a może się mylę), że w przypadku np. pinga z PC1 do PC3, leci sobie ramka z MAC adresem docelowym interfejsu PC3 do komputera PC2. Komputer PC2 sprawdza docelowy adres MAC -"niej jest to żaden z moich interfejsów więc taką ramkę odrzucę".

Mam pinga od PC1 do obu interfejsów PC2 i tak samo z PC3 do PC2.

Na wszystkich interfejsach skonfigurowałem IP oraz na PC1 i PC3 dodatkowo wpisałem bramy.

PC1

Kod: Zaznacz cały

IP:10.0.0.1 
brama:10.0.0.2 
PC2

Kod: Zaznacz cały

IP:10.0.0.2 (eth0) 
IP:10.0.0.3 (eth1) 
PC3

Kod: Zaznacz cały

IP:10.0.0.4 
brama:10.0.0.3 
PC1--PC2--PC3 brak łączności między PC1 a PC3

Próbowałem także:
  1. Do tablicy ARP PC1 dodałem statyczne wpisy odnośnie PC3. Tak samo na PC3 z adresem PC1
  2. Na wszystkich komputerach zrobiłem ruting statyczny (konkretny host ->konkretny interfejs)
Komunikacji jak nie było tak dalej nie ma. Co teraz? Coś z iptables z przekierowaniem pakietów? Jak z przełączaniem takich pakietów dalej żeby przechodziły za PC2?

: 05 listopada 2009, 03:21
autor: fnmirk
Dowolne związane z siecią pytanie prowadzi do takiego artykułu:
http://night.jogger.pl/2007/10/14/mala- ... tem-linux/

: 05 listopada 2009, 08:00
autor: mariaczi
Proponowane rozwiązania:
  1. Zamień jedną sieciowkę w PC2 na przełącznik i do niego podłącz wszystkie maszyny.
  2. Na PC2 zrób z eth0 i eth1 most.
Odpowiedź zgodna z Twoim pytaniem. Uzyskasz komunikację między wszystkimi maszynami.

: 05 listopada 2009, 08:23
autor: Ister
Możesz też za pomocą iptables ustawić przekierowanie (masz ustawiony forwarding?).

Podaj może jakie masz w tej chwili ustawienia sieciowe na każdej z maszyn (dokładnie, nie ogólny opis).

: 05 listopada 2009, 14:29
autor: fnmirk
mariaczi, po co mu przełącznik? Opis, do którego przedstawiłem odnośnik rozwiązuje taki przypadek bez przełącznika tylko na kartach sieciowych. Zmieniła się u eliasza, tylko liczba komputerów. Wydaje mi się, jak porówna Swój przypadek z opisem to wszystko zacznie działać.

Prawdopodobnie musi wyzerować, wcześniej (usunąć wszystkie wpisy) zawartość pliku, na wszystkich komputerach:

Kod: Zaznacz cały

/etc/udev/rules.d/70-persistent-net.rules
i zrestartować komputery aby zostały ponownie rozpoznane karty. Następnie nie mieszać więcej z przekładaniem kart sieciowych, tylko zająć się konfiguracją połączenia.

: 05 listopada 2009, 16:04
autor: eliasz
mariaczi pisze:Proponowane rozwiązania:
  1. Zamień jedną sieciowkę w PC2 na przełącznik i do niego podłącz wszystkie maszyny.
  2. Na PC2 zrób z eth0 i eth1 most.
Odpowiedź zgodna z Twoim pytaniem. Uzyskasz komunikację między wszystkimi maszynami.
Zastosowanie przełącznika lub mostu portów odpada - docelowo na komputerze z dwoma sieciówkami mają być jeszcze stosowane iptables do odpowiedniego przycinania ruchu (a w przypadku mostu to już będzie niewykonywalne).
Ister pisze:Możesz też za pomocą iptables ustawić przekierowanie (masz ustawiony forwarding?).

Podaj może jakie masz w tej chwili ustawienia sieciowkę na każdej z maszyn (dokładnie, nie ogólny opis).
PC1 i PC3 to zwykłe laptopy z Ubuntu. Nie wiem co mógłbym więcej podać. IP, maskę, tablice arp i ewentualnie statyczne ścieżki (także bramę) wpisywałem z poziomu konsoli.

Na PC2 zaś zainstalowany jest Imedia Linux (dystrybucja pod alixa - platformę podobną do ,,routerboardów'', bez monitora, klawiatury itp. dostęp tylko z poziomu terminala). Tam wszystkie ustawienia też wklepywałem z palca do konsoli.
Tam w systemie, w /etc/sysctl.conf opcja

Kod: Zaznacz cały

net.ipv4.ip_forward =1
jak widać jest włączona.

Sposób fnmirka wydaje się być najlepszym oraz działającym (sprawdzone). Jedynym "ale" jest fakt, że komputery posiadają IP z różnych klas adresowych, a mnie zależało żeby wszystko było w jednej podsieci.
Zostaje mi chyba jednak pocięcie sieci na kilka podsieci i wklepanie odpowiednich ścieżek (albo to samo przez iptables) aby ustanowić łączność każdy z każdym.