2013-02-08 18 views
7

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?

+0

Đ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. –

+0

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ị? –

+0

@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

Trả lời

0

Tại sao quảng cáo trên bộ định tuyến giả mạo?

Điều tôi sẽ làm trong trường hợp của bạn là đặt Linux thứ 2 trên cùng một liên kết Ethernet (trong VMWare hoặc bất kỳ môi trường ảo nào khác nếu bạn không có thiết lập vật lý), cài đặt radvd trên Linux thứ 2 này router quảng cáo trên liên kết.

0

Có lẽ những bộ công cụ hack sẽ rất hữu ích

  1. IPv6-toolkit - chương trình RA6 hàng giả bộ định tuyến quảng cáo
  2. THV-IPv6 - các * fake_advertise6 * chương trình
Các vấn đề liên quan