Jak zmusić ssh do użycia drugiego interfejsu z wyższymi parametrami?


9

Mam CrunchBang VM z dwoma interfejsami, eth0i eth1, z których każdy łączy się z OpenWrt VM ( eth0będącego 10.232.64.20a eth1będącego 10.232.65.20). Używam Menedżera sieci i DHCP. Moim ogólnym celem jest posiadanie wielu sshpołączeń i łączenie ich ifenslave.

Domyślnie eth1(z jakiegoś powodu) jest bramą domyślną:

user@crunchbang:~$ ip ro
default via 10.232.65.1 dev eth1  proto static
10.232.64.0/24 dev eth0  proto kernel  scope link  src 10.232.64.20
10.232.65.0/24 dev eth1  proto kernel  scope link  src 10.232.65.20

Dodałem trasę dla eth0:

user@crunchbang:~$ sudo ip route add default via 10.232.64.1 dev eth0  proto static metric 1

Następnie mam dwie trasy:

user@crunchbang:~$ ip ro
default via 10.232.65.1 dev eth1  proto static
default via 10.232.64.1 dev eth0  proto static  metric 1
10.232.64.0/24 dev eth0  proto kernel  scope link  src 10.232.64.20
10.232.65.0/24 dev eth1  proto kernel  scope link  src 10.232.65.20

Jednak sshwydostaje się tylko przez eth1:

user@crunchbang:~$ ssh -b 10.232.64.20 user@1.2.3.4
ssh: connect to host 1.2.3.4 port 22: Connection timed out

user@crunchbang:~$ ssh -b 10.232.65.20 user@1.2.3.4
Enter passphrase for key '/home/user/.ssh/id_rsa': 

Po zmianie danych eth0mam:

user@crunchbang:~$ ip ro
default via 10.232.64.1 dev eth0  proto static  metric 1
default via 10.232.65.1 dev eth1  proto static  metric 2
10.232.64.0/24 dev eth0  proto kernel  scope link  src 10.232.64.20
10.232.65.0/24 dev eth1  proto kernel  scope link  src 10.232.65.20

A teraz sshwychodzi tylko przez eth0:

user@crunchbang:~$ ssh -b 10.232.64.20 user@1.2.3.4
Enter passphrase for key '/home/user/.ssh/id_rsa': 

user@crunchbang:~$ ssh -b 10.232.65.20 user@1.2.3.4
ssh: connect to host 1.2.3.4 port 22: Connection timed out

Jak wymusić sshużycie interfejsu z wyższą charakterystyką?

Edytować

Zaimplementowałem i przetestowałem konfigurację w wersji 4.2. Routing dla wielu sekcji łącza w górę / dostawców w Linux Advanced Routing & Traffic Control HOWTO. Biorąc pod uwagę, że konfiguracja jest prosta i nie napotkałem błędów, po prostu pokażę kod i wyniki, z minimalnym wyjaśnieniem.

root@crunchbang:~# ip route add 10.232.64.0/24 dev eth0 src 10.232.64.20 table T0
root@crunchbang:~# ip route add default via 10.232.64.1 table T0
root@crunchbang:~# ip route add 10.232.65.0/24 dev eth1 src 10.232.65.20 table T1
root@crunchbang:~# ip route add default via 10.232.65.1 table T1
root@crunchbang:~# ip route flush table main
root@crunchbang:~# ip route add 10.232.64.0/24 dev eth0 src 10.232.64.20
root@crunchbang:~# ip route add 10.232.65.0/24 dev eth1 src 10.232.65.20
root@crunchbang:~# ip rule add from 10.232.64.20 table T0
root@crunchbang:~# ip rule add from 10.232.65.20 table T1
root@crunchbang:~# ip route add default scope global nexthop via 10.232.64.1 dev eth0 weight 1 nexthop via 10.232.65.1 dev eth1 weight 1

Oto wygenerowane tabele routingu:

root@crunchbang:~# ip route show table T0
default via 10.232.64.1 dev eth0 
10.232.64.0/24 dev eth0  scope link  src 10.232.64.20 

root@crunchbang:~# ip route show table T1
default via 10.232.65.1 dev eth1 
10.232.65.0/24 dev eth1  scope link  src 10.232.65.20 

root@crunchbang:~# ip ro
default 
    nexthop via 10.232.64.1  dev eth0 weight 1
    nexthop via 10.232.65.1  dev eth1 weight 1
10.232.64.0/24 dev eth0  scope link  src 10.232.64.20 
10.232.65.0/24 dev eth1  scope link  src 10.232.65.20 

W tej konfiguracji ssh łączy się przez oba interfejsy:

user@crunchbang:~$ ssh -b 10.232.64.20 user@1.2.3.4
Enter passphrase for key '/home/user/.ssh/id_rsa': 

user@crunchbang:~$ ssh -b 10.232.65.20 user@1.2.3.4
Enter passphrase for key '/home/user/.ssh/id_rsa': 

Wygląda jednak na to, że muszę stracić Network Managera. Byłbym wdzięczny, gdyby ktokolwiek mógł wyjaśnić, dlaczego to zły pomysł lub ostrzec przed pułapkami.

Edytuj2

Usunięcie Network Managera poszło dobrze. Mam tylko ostatnie pytanie. Jaki jest obecnie standardowy sposób ładowania konfiguracji podczas rozruchu?


Właśnie odkryłem 4.2. Routing dla wielu łączy w górę / dostawców . Zaktualizuję pytanie w oczekiwaniu na wdrożenie.
mirimir

Działa, więc zaktualizuję moje pytanie.
mirimir

Nie rozumiem, jak ładować routing podczas rozruchu, ponieważ wymaga to uprawnień roota. Robienie tego za pomocą skryptu działa dobrze, ale wolałbym móc zrestartować komputer bez konfiguracji.
mirimir

Odpowiedzi:


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.