Bagaimana cara memaksa ssh untuk menggunakan antarmuka kedua dengan metrik yang lebih tinggi?


9

Saya memiliki VM Crunchbang dengan dua antarmuka, eth0dan eth1masing-masing terhubung ke OpenWRT VM ( eth0ada 10.232.64.20dan eth1sedang 10.232.65.20). Saya menggunakan Network Manager dan DHCP. Tujuan keseluruhan saya adalah memiliki banyak sshkoneksi, dan menyatukannya ifenslave.

Secara default, eth1(untuk beberapa alasan) adalah gateway default:

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

Saya menambahkan rute untuk eth0:

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

Lalu saya punya dua rute:

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

Namun, sshhanya keluar melalui 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': 

Setelah mengubah eth0metrik yang saya miliki:

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

Dan sekarang sshhanya keluar melalui 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

Bagaimana cara memaksa sshmenggunakan antarmuka dengan metrik yang lebih tinggi?

Edit

Saya telah mengimplementasikan dan menguji konfigurasi di 4.2. Routing untuk beberapa bagian uplink / penyedia Linux Advanced Routing & Traffic Control HOWTO. Mengingat bahwa konfigurasinya sederhana, dan saya tidak menemukan kesalahan, saya hanya akan menunjukkan kode dan hasil, dengan penjelasan minimal.

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

Berikut adalah tabel perutean yang dihasilkan:

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 

Dengan konfigurasi itu, ssh terhubung melalui kedua antarmuka:

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': 

Namun, tampaknya saya harus kehilangan Network Manager. Jika ada yang bisa menjelaskan mengapa itu ide yang buruk, atau memperingatkan perangkap, saya akan sangat menghargainya.

Edit2

Menghapus Network Manager berjalan dengan baik. Saya hanya punya satu pertanyaan terakhir. Apa cara standar saat ini untuk memuat konfigurasi saat boot?


Saya baru saja menemukan 4.2. Routing untuk banyak uplink / penyedia . Saya akan memperbarui pertanyaan yang menunggu implementasi.
mirimir

Berhasil, jadi saya akan memperbarui pertanyaan saya.
mirimir

Saya tidak mendapatkan cara memuat perutean saat boot, karena itu membutuhkan hak root. Melakukannya dengan skrip berfungsi dengan baik, tapi saya lebih suka bisa reboot tanpa setup.
mirimir

Jawaban:


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.