SSH가 더 높은 측정항목을 사용하는 두 번째 인터페이스를 사용하도록 하려면 어떻게 해야 합니까?

SSH가 더 높은 측정항목을 사용하는 두 번째 인터페이스를 사용하도록 하려면 어떻게 해야 합니까?

두 개의 인터페이스가 있는 Crunchbang VM이 있고 eth0eth1인터페이스는 OpenWRT VM( eth0being 10.232.64.20eth1being 10.232.65.20)에 연결되어 있습니다. 네트워크 관리자와 DHCP를 사용하고 있습니다. 나의 전반적인 목표는 여러 개의 연결을 갖고 ssh이를 ifenslave.

기본적으로 eth1(어떤 이유로든) 기본 게이트웨이는 다음과 같습니다.

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

경로를 추가했습니다 eth0.

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

그러면 두 가지 경로가 있습니다.

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

그러나 다음 ssh방법으로만 나갈 수 있습니다 eth1.

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

user@crunchbang:~$ ssh -b 10.232.65.20 [email protected]
Enter passphrase for key '/home/user/.ssh/id_rsa': 

eth0표시기를 변경 한 후 다음이 발생했습니다.

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

이제 ssh유일한 탈출구는 다음 과 같습니다 eth0.

user@crunchbang:~$ ssh -b 10.232.64.20 [email protected]
Enter passphrase for key '/home/user/.ssh/id_rsa': 

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

ssh더 높은 메트릭을 사용하는 인터페이스를 강제로 사용하려면 어떻게 해야 합니까 ?

편집하다

구성을 구현하고 테스트했습니다.4.2. 다중 업링크/공급자를 통한 라우팅Linux 고급 라우팅 및 트래픽 제어 HOWTO의 일부입니다. 구성이 간단하고 오류도 발생하지 않았기 때문에 최소한의 설명과 함께 코드와 결과만 보여드리겠습니다.

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

생성된 라우팅 테이블은 다음과 같습니다.

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 

이 구성을 사용하면 ssh는 두 가지 인터페이스를 통해 연결됩니다.

user@crunchbang:~$ ssh -b 10.232.64.20 [email protected]
Enter passphrase for key '/home/user/.ssh/id_rsa': 

user@crunchbang:~$ ssh -b 10.232.65.20 [email protected]
Enter passphrase for key '/home/user/.ssh/id_rsa': 

하지만 네트워크 관리자를 잃어야 할 것 같습니다. 이것이 왜 나쁜 생각인지 설명하거나 함정에 대해 경고할 수 있는 사람이 있다면 감사하겠습니다.

편집 2

네트워크 관리자 제거가 잘 진행되었습니다. 마지막 질문이 하나 있습니다. 시작 시 구성을 로드하는 현재 표준 방법은 무엇입니까?

답변1

우선, 문제에 대한 귀하의 해결책은 훌륭합니다. 둘째, 운영 체제에 따라 다릅니다. Crunchbag은 Debian을 기반으로 하므로 이 솔루션이 해당 작업을 수행합니다.

https://serverfault.com/questions/487939/permanently-adding-source-policy-routing-rules

RHEL 기반 시스템에서는 <ifname>-rule및 를 추가할 수도 있습니다 <ifname>-route.

관련 정보