Nie można ustawić statycznej trasy hosta - „SIOCADDRT: Brak takiego procesu”

11

W moim biurze znajduje się router Windows Server 2008 192.168.16.1, który jest naszą domyślną bramą. To wysyła dane przez nasze główne połączenie internetowe. To działa idealnie.

192.168.16.1 ma również inne połączenie internetowe, które obecnie nie jest używane. To łączy się z routerem 192.168.1.254, który następnie łączy się z naszym dodatkowym połączeniem internetowym.

Skonfigurowałem Routing i dostęp zdalny, aby kierować zasięg 192.168.1. * Do naszej sieci wewnętrznej i jestem w stanie pingować 192.168.1.254 z mojego pulpitu, który ma adres IP 192.168.16.22.

Mam bardzo intensywne zadanie wysyłania i pobierania linuksa w tym samym biurze, więc chcę ustawić trasę statyczną, aby nie wiązać naszego głównego połączenia z Internetem i nie wpływać na moich współpracowników. Tak więc, moim planem jest skonfigurowanie tego pola ze statyczną trasą.

W polu linux mogę pingować 192.168.1.254, ale nie mogę dodać trasy statycznej do serwera docelowego w naszym centrum danych:

$ sudo route add -host 123.123.123.123 gw 192.168.1.254 dev eth0
SIOCADDRT: No such process

Z obszernego googlingu ten komunikat o błędzie wydaje się wskazywać, że nie mogę uzyskać dostępu do 192.168.1.254, aby ustawić trasę, ale mogę ją pingować. Próbowałem dodać trasę statyczną do 192.168.1.254, co działało idealnie, ale to nie rozwiązało problemu (zgodnie z oczekiwaniami).

Nie jestem wystarczająco zaawansowany w pracy w sieci, aby dalej diagnozować ten problem, ponieważ moim doświadczeniem jest tworzenie oprogramowania, a nie administracja systemem. Byłbym bardzo wdzięczny za wszelkie udzielone porady.

Dziękuję za Twój czas.

Steve Rukuts
źródło

Odpowiedzi:

8

Czy na pulpicie jest 192.168.16.0/24?

Nie możesz dodać trasy (do dowolnego celu) przez bramę, z którą nie jesteś bezpośrednio połączony, ponieważ komputer nie wie, jak znaleźć drogę do routera bez przejścia domyślną trasą.

3molo
źródło
Prawidłowo, decyzja o routingu musi być ustawiona na 192.168.16.1.
Mark Wagner
2

Błąd „SIOCADDRT: Brak takiego procesu” może zostać wyświetlony, jeśli „Próbowano ustawić trasę dla sieci przed ustawieniem trasy hosta dla bramy, która obsługuje ruch dla tej sieci”.

np. dla lokalnego -> 172.19.0.1 -> 172.19.0.xx

[root@local]# route add -net 172.19.0.0 gw 172.19.0.1 netmask 255.255.255.0 dev eth0
SIOCADDRT: No such process

ODPOWIEDŹ: Najpierw utwórz trasę hosta, a następnie utwórz trasę sieciową.

np. dla danej sieci: lokalna -> 192.168.1.254 -> 123.123.123.123

sudo route add -host 192.168.1.254 dev eth0

sudo route add -net 123.123.123.123 netmask 255.255.255.255 gw 192.168.1.254 dev eth0

Trasa statyczna nadal będzie ładować sieć , myślę, że to zależy;). Przesyłanie / pobieranie ruchu musi przekraczać sieć. Będzie to miało wpływ na innych użytkowników sieci. Możesz ograniczyć przepustowość ruchu lub przenieść go do spokojniejszych godzin, jeśli chcesz zmniejszyć wpływ na innych użytkowników sieci. np. rsync ma dobre opcje ograniczania przepustowości.

Miałem podobny problem z routingiem i SIOCADDRT. lokalny -> dockerserver -> dockercontainer. Dodanie trasy hosta, a następnie trasy sieciowej sprawiło, że routing działał w jednym kierunku.

Pomogło mi to https://support.symantec.com/en_US/article.TECH142841.html

Pełny przykład routingu, routing działa w obie strony:

dockerserver=172.19.0.1
dockerservernet=172.19.0.0
dockercontainer=172.19.0.25
local=192.168.111.23
localnet=192.168.111.0

### 0. create host route for gw and net route local->docker
[root@local]# route add -host $dockerservernet dev eth0
[root@local]# route add -net $dockerservernet gw $dockerserver netmask 255.255.255.0 dev eth0

### 1. route on dockerserver to local
[root@dockerserver ~]# route add -net $localnet netmask 255.255.255.0 dev eno1
[root@dockerserver ~]# ping $local

### 2. route FROM dockercontainer to local (via gateway dockerserver)
[root@dockercontainer /]# route add -net $localnet netmask 255.255.255.0 gw gateway dev eth1
[root@dockercontainer /]# ping $local
gaoithe
źródło
0

Jeśli chodzi o część pytania na temat ustawiania trwałych tras w instancji AWS EC2 z systemem Ubuntu, właściwym miejscem do umieszczenia tras statycznych w celu zachowania przez ponowne uruchomienie, zatrzymanie i uruchomienie AWS jest /etc/rc.local.

W tym pliku musisz umieścić swoje trasy w linii powyżej ostatniej linii. Twoje linie powinny wyglądać tak:

route add -net XXX.XXX.XXX.XXX netmask XXX.XXX.XXX.XXX gw XXX.XXX.XXX.XXX

Uruchomienie sudopolecenia zostanie utracone przy ponownym uruchomieniu.

Duke Hall
źródło