Chúng tôi có một sản phẩm thiết bị Linux nhúng hỗ trợ chuyển đổi mạng tích hợp. Thiết bị có 2 cổng ethernet. Bằng cách sử dụng "daisy chain", 2 hoặc nhiều thiết bị có thể được kết nối với nhau. Thiết bị2 có thể kết nối mạng khi được kết nối với Thiết bị1 được kết nối với bộ định tuyến1.
\ /
+---------+ +---------+
| Bộ định tuyến1 |--------| Thiết bị1 |
+---------+ +--| |
| +---------+
|
\ / | +---------+
+---------+ +--| Thiết bị2 |
| Bộ định tuyến2 | | |
+---------+ +---------+
Khi chúng tôi chuyển bộ định tuyến sang một bộ định tuyến khác cho Thiết bị1, chúng tôi có một cách để phát hiện sự kiện rút/cắm cáp ethernet trong Thiết bị1. Chúng tôi kích hoạt việc phát hành và gia hạn địa chỉ IP. Bằng cách này, Device1 có thể cập nhật địa chỉ IP của nó. Tuy nhiên, đối với Device2, không có cách nào để phát hiện việc chuyển đổi bộ định tuyến. Mạng con cho bộ định tuyến1 là 10.0.0.x. Mạng con cho bộ định tuyến2 là 192.168.0.x.
Bằng cách chạy "ip monitor" trong Device2, có một số thông báo:
thiết bị # màn hình ip
10.0.0.1 dev br0 lladdr b2:9b:68:0a:33:21 CÒN
10.0.0.1 dev br0 lladdr b2:9b:68:0a:33:21 THĂM DÒ
10.0.0.1 nhà phát triển br0 KHÔNG THÀNH CÔNG
10.0.0.1 nhà phát triển br0 KHÔNG THÀNH CÔNG
Làm cách nào tôi có thể phát hiện chuyển đổi bộ định tuyến trong trường hợp này cho Device2? Có điều gì đó sẽ thay đổi trong thư mục "/sys/class/net/br0"?
Cảm ơn.