Tôi đã đọc về trình điều khiển liên kết linux. https://www.kernel.org/doc/Documentation/networking/boinating.txt
Mục tiêu của tôi là cải thiện tính khả dụng của kết nối internet của tôi trên hệ thống dựa trên debian bằng cách kết hợp giao diện ethernet (eth0) được kết nối với mạng LAN và kết nối internet di động được cung cấp bởi mô-đun lướt / GSM. Latter cũng xuất hiện dưới dạng giao diện ethernet ở đầu ra của ifconfig
.
Tôi đã cài đặt ifenslave
và thêm vào /etc/network/interfaces
:
# Slaves
auto eth0
iface eth0 inet manual
bond-master bond0
bond-primary eth0
bond-mode active-backup
auto eth1
iface eth1 inet manual
bond-master bond0
bond-primary eth0
bond-mode active-backup
# Master
auto bond0
iface bond0 inet dhcp
bond-slaves none
bond-primary eth0
bond-mode active-backup
bond-miimon 100
Sau khi khởi động lại, ifconfig
đầu ra của tôi trông như
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet 192.168.178.47 netmask 255.255.255.0 broadcast 192.168.178.255
inet6 fe80::ba27:ebff:feb6:c504 prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:b6:c5:04 txqueuelen 1000 (Ethernet)
RX packets 436 bytes 34223 (33.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 312 bytes 80051 (78.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether b8:27:eb:b6:c5:04 txqueuelen 1000 (Ethernet)
RX packets 436 bytes 34223 (33.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 312 bytes 80051 (78.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 2 bytes 78 (78.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2 bytes 78 (78.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Đó là, giao diện ngoại quan là ở đó. Lạ là eth0 cũng có thể nhìn thấy, trong khi eth1 (giao diện sao lưu đại diện cho thanh lướt) không có.
Tôi có thể truy cập nếu eth0 được kết nối với internet, nhưng không thể xóa kết nối đó. Đó là, thiết lập của tôi hoạt động như thể không có thanh lướt.
Tôi không chắc chắn nếu tôi nhận được ý nghĩa của liên kết chính xác vì tham chiếu ở trên nói về các công tắc. Trong trường hợp của tôi, hai giao diện kết nối với các cổng không nằm trong một mạng con chung.
Chỉnh sửa 1 Tôi có thể giải quyết vấn đề một phần rằng các giao diện dường như không được liên kết chính xác: Có vẻ như nguyên nhân là do thứ tự khởi động (một trong các giao diện ethernet là từ thiết bị USB). Có khả năng các trình điều khiển được tải chỉ sau khi liên kết xảy ra. Dù sao đi nữa, khi tôi kích hoạt liên kết tại thời gian chạy (sửa đổi / etc / mạng / giao diện và sau đó chạy /etc/init.d/networking restart), liên kết dường như xảy ra. Tuy nhiên, tôi vẫn không có được hành vi mong muốn.
Chỉnh sửa 2 Một câu trả lời bị xóa trong khi đó (không may) đã chỉ ra rằng liên kết thực sự có thể không hữu ích cho ứng dụng của tôi. Nếu đó là chính xác, có thể có được một hành vi tương tự bằng cách sử dụng các bảng định tuyến, và làm thế nào? Tôi muốn có một trong các thiết bị ethernet (eth0) là tuyến mặc định ưa thích khi cổng của nó được kết nối với internet. Nếu không, một tuyến mặc định thứ cấp (thông qua eth1) sẽ bước vào cho đến khi eth0 được kết nối internet trở lại.