ฉันมี VM Crunchbang กับสองอินเตอร์เฟซeth0
และeth1
แต่ละแห่งซึ่งเชื่อมต่อกับ OpenWRT VM ( eth0
เป็น10.232.64.20
และ
eth1
ถูก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 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':
หลังจากเปลี่ยนตัว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 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
ฉันจะบังคับssh
ให้ใช้อินเทอร์เฟซที่มีเมตริกที่สูงกว่าได้อย่างไร
แก้ไข
ฉันได้นำไปใช้และทดสอบการกำหนดค่าใน4.2 การกำหนดเส้นทางสำหรับส่วนอัพลิงค์/ ผู้ให้บริการหลายส่วนของ Linux Advanced Routing & Traffic 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 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':
อย่างไรก็ตามปรากฏว่าฉันต้องสูญเสีย Network Manager หากใครสามารถอธิบายได้ว่าทำไมมันเป็นความคิดที่ไม่ดีหรือเตือนถึงข้อผิดพลาดฉันจะขอบคุณมัน
Edit2
การลบตัวจัดการเครือข่ายทำได้ดี ฉันมีหนึ่งคำถามสุดท้าย วิธีมาตรฐานปัจจุบันในการโหลดการกำหนดค่าเมื่อบูตคืออะไร