Jak ustawić preferowany interfejs sieciowy w systemie Linux?

20

Moja sieć jest skonfigurowana w ten sposób. http://docs.google.com/Doc?docid=0AZ1YxuLE4djaZGhqN2s1NmRfMjhjNjc0Ym1meg&hl=en

obecna architektura sieci

Innymi słowy: Mam maszynę (Calcium, z uruchomionym Arch Linux), która ma dwa interfejsy sieciowe. eth0 jest podłączony do routera i jest gigabitowy. Eth1 jest podłączony bezpośrednio do sieci uniwersyteckiej za pośrednictwem 10Megabit. Uplink routera jest również podłączony do sieci uniwersyteckiej, a także ma 10 Mb / s.

Obecnie (uważam) cały ruch na Calcium przechodzi przez eth0, przez router, niezależnie od tego, czy jest to wewnętrzny czy zewnętrzny. (Jak mogę to potwierdzić?)

Idealnie byłoby, gdyby ruch przeznaczony dla sieci wewnętrznej (192.168.10.0/24) był przesyłany przez eth0 do routera i dokądkolwiek się udał. Cały pozostały ruch powinien przekraczać eth1.

Mike Cooper
źródło
Dodano tagi: trasa tcpip
Warner
Twój dokument Google niewiele tu pomaga, jeśli nie przyznajesz ludziom uprawnień do dostępu do niego.
Zoredache,
Przepraszam. Myślałem, że podałem to do wiadomości publicznej, ale dokumenty Google nie pamiętają mojego ustawienia. Teraz powinno być dostępne.
Mike Cooper,

Odpowiedzi:

14

Tabela routingu sieciowego określa sposób routowania pakietów. Możesz dodać dodatkowe trasy lub zmienić bramę domyślną, aby wpłynąć na routing.

Jeśli potrzebujesz dodatkowej pomocy, podaj tabelę routingu.

Aby wyświetlić tabelę routingu:

/sbin/route -n

Aby usunąć domyślny gw:

/sbin/route del default gw $IP

Aby dodać domyślny gw:

/sbin/route add default gw $IP

Aby uzyskać dodatkowe informacje, sprawdź stronę podręcznika. Istnieją również inne sposoby manipulowania i wyświetlania tabeli routingu.

netstat -rwyświetlać i ipmanipulować dalej.

Warner
źródło
30

Oto pełna odpowiedź, na wypadek gdyby pomogła innym:

Aby tworzyć pakiety z adresami docelowymi 192.168.10. * Użyj eth0, a wszystkie inne pakiety używają eth1:

1) Wyświetl aktualną tabelę routingu

ip route list

Jeden wpis będzie przypominał „domyślnie przez 192.168.1.1”, gdzie 192.168.1.1 to adres IP twojego routera (aka bramy). Zapamiętaj bramy dla eth0 i eth1, ponieważ będziemy ich później potrzebować.

2) Usuń domyślne trasy. (Ostrzeżenie: spowoduje to wyrzucenie z trybu offline).

ip route del default

3) Dodaj nową domyślną trasę (spowoduje to powrót do trybu online). Zamień 192.168.1.1 poniżej na swój adres IP bramy od góry.

ip route add default via 192.168.1.1 dev eth1

4) Dodaj określoną trasę, która będzie obsługiwana przez eth0. Trasy bardziej szczegółowe automatycznie mają pierwszeństwo przed trasami mniej szczegółowymi.

ip route add 192.168.10.0/24 via 192.168.1.1 dev eth0

Na koniec możesz zapytać Linuksa, który interfejs zostanie użyty do wysłania pakietu na określony adres IP:

ip route get 8.8.8.8

Jeśli konfiguracja działała, pakiety do wersji 8.8.8.8 (serwer Google) będą korzystać z eth1. Pakiety do dowolnego adresu IP w sieci lokalnej:

ip route get 192.168.10.7

użyje eth0.

Łukasz
źródło