Mam CrunchBang VM z dwoma interfejsami, eth0
i eth1
, z których każdy łączy się z OpenWrt VM ( eth0
będącego 10.232.64.20
a
eth1
będącego 10.232.65.20
). Używam Menedżera sieci i DHCP. Moim ogólnym celem jest posiadanie wielu ssh
połą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 ssh
wydostaje 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 eth0
mam:
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 ssh
wychodzi 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ć ssh
uż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?