Làm cách nào để buộc ssh sử dụng giao diện thứ hai với số liệu cao hơn?


9

Tôi có một máy ảo Crunchbang với hai giao diện eth0eth1mỗi giao diện kết nối với máy ảo OpenWRT ( eth0đang 10.232.64.20eth1đang tồn tại 10.232.65.20). Tôi đang sử dụng Trình quản lý mạng và DHCP. Mục tiêu tổng thể của tôi là có nhiều sshkết nối và liên kết chúng với ifenslave.

Theo mặc định, eth1(vì một số lý do) là cổng mặc định:

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

Tôi đã thêm một tuyến đường cho eth0:

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

Sau đó, tôi có hai tuyến đường:

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

Tuy nhiên, sshchỉ nhận được thông qua 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': 

Sau khi thay đổi eth0số liệu tôi có:

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

Và bây giờ sshchỉ được thông qua 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

Làm cách nào để buộc tôi sshsử dụng giao diện có số liệu cao hơn?

Biên tập

Tôi đã thực hiện và thử nghiệm cấu hình trong 4.2. Định tuyến cho nhiều phần liên kết / nhà cung cấp của Linux Advanced Routing & Control Control ControlTO. Cho rằng cấu hình đơn giản và tôi không gặp phải lỗi, tôi sẽ chỉ hiển thị mã và kết quả, với lời giải thích tối thiểu.

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

Dưới đây là các bảng định tuyến được tạo:

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 

Với cấu hình đó, ssh kết nối thông qua cả hai giao diện:

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

Tuy nhiên, có vẻ như tôi cần mất Trình quản lý mạng. Nếu bất cứ ai có thể giải thích tại sao đó là một ý tưởng tồi, hoặc cảnh báo về những cạm bẫy, tôi sẽ đánh giá cao nó.

Chỉnh sửa2

Xóa Trình quản lý mạng đã diễn ra tốt đẹp. Tôi chỉ có một câu hỏi cuối cùng. Cách tiêu chuẩn hiện tại để tải cấu hình khi khởi động là gì?


Tôi mới phát hiện ra 4.2. Định tuyến cho nhiều đường lên / nhà cung cấp . Tôi sẽ cập nhật câu hỏi đang chờ thực hiện.
mir Elli

Nó đã làm việc, vì vậy tôi sẽ cập nhật câu hỏi của tôi.
mir Elli

Tôi không biết cách tải định tuyến khi khởi động, vì điều đó đòi hỏi quyền root. Làm điều đó với một kịch bản hoạt động tốt, nhưng tôi muốn có thể khởi động lại mà không cần thiết lập.
mirimir

Câu trả lời:


1

Đầu tiên, giải pháp của bạn cho vấn đề là tốt. Thứ hai, nó phụ thuộc vào hệ điều hành. Crunchbag dựa trên debian để giải pháp này có thể thực hiện công việc:

/server/487939/permanently-adding-source-policy-routing-rules

Trên các hệ thống dựa trên RHEL cũng có khả năng thêm <ifname>-rule<ifname>-route.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.