Tôi đang phát triển trình điều khiển thiết bị Linux IPv6 không có thiết bị ở bàn tay. Vì vậy, bây giờ tôi đang cố gắng để lừa nhân với một thông điệp quảng cáo router giả mạo.Làm cách nào để gửi quảng cáo bộ định tuyến chính xác?
unsigned char c[] = {0x33, 0x33, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 61, 0x86, 0xdd, //IPv6 type
0x60, 0x00, 0x00, 0x00, //Version, ...
0x00, 24, //payload length
58, //next header
255, //hop limit
0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x3d, //source
0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, //destination
134, //type
0, //code,
0x7a, 0x2c, //checksum
255, //current hop limit
0x80, //flag
0xff, 0xff,
0x00, 0x00, 0x00, 0x00, //reachable timer
0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 61, //source link-layer address
};
Tôi đã cố gắng sử dụng Tcpdump để lấy gói này tôi gửi tới hạt nhân. Và tôi thấy rằng hạt nhân thực sự nhận được gói này.
13:32:59.989851 00:00:00:00:00:3d (oui Ethernet) > 33:33:00:00:00:02 (oui Unknown), ethertype IPv6 (0x86dd), length 78: (hlim 255, next-header ICMPv6 (58) payload length: 24) fe80::200:ff:fe00:3d > ip6-allnodes: [icmp6 sum ok] ICMP6, router advertisement, length 24
hop limit 255, Flags [managed], pref medium, router lifetime 65535s, reachable time 0s, retrans time 0s
source link-address option (1), length 8 (1): 00:00:00:00:00:3d
0x0000: 0000 0000 003d
Nhưng sau đó tôi sử dụng ip -6 neigh
để kiểm tra xem hạt nhân có nút giả trong bảng lân cận hay không. Tôi không thể tìm thấy nó.
Vấn đề của tôi là gì? Bất kỳ ý tưởng?
Điều này có vẻ như một vấn đề chuyên khá; tôi nghi ngờ bạn sẽ nhận được câu trả lời tốt hơn ở đâu đó giống như [danh sách gửi thư netdev] (http://www.spinics.net/lists/netdev/) so với StackOverflow. –
Ngoài quan tâm, mặc dù, một "trình điều khiển thiết bị Linux IPv6" là gì? Tại sao thực tế là IPv6 đang sử dụng impinge trên trình điều khiển thiết bị? –
@TomAnderson: Điều này cũng được hỏi về [câu hỏi trước của Yifan Sun] (http://stackoverflow.com/questions/14760301/linux-device-driver-for-pure-ipv6-device). Nó đã không được trả lời đầy đủ - có vẻ như họ đang cố gắng để viết một trình điều khiển mà từ chối hỗ trợ các gói IPv4 ?? – duskwuff