Cấu hình bộ định tuyến để loại bỏ các gói, giới thiệu độ trễ, dữ liệu bị hỏng


13

Tôi đã tự hỏi nếu có ai có kinh nghiệm thiết lập một môi trường được thiết kế có mục đích cho hiệu suất kém khi gửi / nhận yêu cầu qua mạng. Tôi đang phát triển một ứng dụng và muốn làm cho nó mạnh mẽ hơn các mạng hoạt động cực kỳ kém. Có ai biết nếu có thể cấu hình một bộ định tuyến để:

  1. không liên tục thả gói
  2. liên tục giới thiệu độ trễ trong các gói
  3. dữ liệu bị hỏng trong các gói (cái này không bắt buộc vì nó sẽ yêu cầu mở gói, thay đổi dữ liệu và cập nhật tổng kiểm tra vì lớp TCP sẽ bắt gặp loại vấn đề này)

Nếu không thể trên bộ định tuyến, có thể cấu hình máy tính hoạt động như bộ định tuyến và thực hiện việc này không?

Cảm ơn nhiều!

Câu trả lời:


17

Nếu bạn sử dụng hộp Linux làm bộ định tuyến, netfilter có một số cách gây rối với lưu lượng gói của bạn.

Các randommô-đun có thể được sử dụng để thả ngẫu nhiên các gói. Ví dụ: cái này:

iptables -A FORWARD -m random --average 10 -j DROP

sẽ khiến bộ định tuyến giảm ngẫu nhiên các gói với tỷ lệ trung bình là 10%.

Bạn cũng có thể làm hỏng các gói ngẫu nhiên với mục tiêu XOR, vd

iptables -A FORWARD -m random --average 1 -j XOR --key "junktoxortomypacket"

sẽ làm hỏng 1% các gói được chuyển tiếp bằng cách XOR chúng với một khóa được lấy từ chuỗi đã cho.


Điều này nghe thật tuyệt vời! Cảm ơn Steven! Bạn đã bao giờ thiết lập điều này? Bản phân phối Linux nào?
Đánh dấu

Tôi đã thành công trong việc tạo bộ định tuyến cho các mạng nhỏ bằng Debian. Nhưng thực sự chỉ là về bất kỳ bản phân phối Linux nào với kernel gần đây sẽ hoạt động tốt, vì netfilter được tích hợp vào kernel. Tôi chưa bao giờ thực sự thử tạo một bộ định tuyến "xấu" như được mô tả ở đây, nhưng nó có thể là một dự án thú vị cho một chiều chủ nhật lười biếng ...
Steven Thứ Hai

Nếu bạn đang sử dụng iptables phiên bản 1.3.5, lệnh trên có thể lỗi với thông báo "iptables v1.3.5: Không thể tải khớp 'ngẫu nhiên'". Lệnh dưới đây làm việc cho tôi - iptables -A FORWARD -m statistic --mode ngẫu nhiên - khả năng sinh sản 0,2 -j DROP
prashantsunkari

3

Tôi đã sử dụng thành công WANem để mô phỏng các điều kiện mạng của mạng WAN giữa Đức và Ấn Độ. WANem vận chuyển dưới dạng đĩa CD hoặc thiết bị ảo có thể khởi động. Bạn chỉ cần khởi động nó lên, cấu hình các mạng phù hợp mong muốn và sau đó định tuyến lưu lượng truy cập của bạn thông qua nó. Trích dẫn mô tả chính thức:

WANem là Trình mô phỏng mạng diện rộng, nhằm cung cấp trải nghiệm thực sự về Mạng / Internet diện rộng, trong quá trình phát triển / thử nghiệm ứng dụng trên môi trường LAN. Thông thường các nhà phát triển ứng dụng phát triển các ứng dụng trên mạng LAN trong khi mục đích dự định tương tự có thể là, các máy khách truy cập tương tự qua mạng LAN hoặc thậm chí Internet. Do đó, WANem cho phép nhóm phát triển ứng dụng thiết lập một cổng ứng dụng trong suốt có thể được sử dụng để mô phỏng các đặc điểm của mạng như trì hoãn mạng, mất gói, hỏng gói, ngắt kết nối, sắp xếp lại gói, Jitter, v.v. Có thể sử dụng mạng WAN để mô phỏng diện rộng Các điều kiện mạng cho lưu lượng Dữ liệu / Thoại và được phát hành theo giấy phép GPL v2 được chấp nhận rộng rãi.


2

Đặt cổng đường lên thành 10Mb / giây và một nửa song công nếu bạn có thể. Sau đó sử dụng một máy chủ lưu trữ trên mạng để ping snot ra khỏi nó. Điều đó nên làm trung tính với bạn


Đặt kích thước gói trên ping cũng lớn hơn đáng kể so với mặc định. Đây có thể là một cách thực sự hiệu quả và dễ dàng để mô phỏng các liên kết mạng bão hòa / nói chung là xấu - nếu bạn có thể làm tê liệt kết nối cụ thể như đã lưu ý bằng cách cố tình đặt băng thông của nó xuống thấp hơn mức mà máy 'tấn công' có.
Andrew Barber

Bạn cũng có thể gây rối với MTU, chọn kích thước lẻ thực sự :)
SpacemanSpiff
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.