Tổng hợp liên kết IP dự phòng cho hoạt động chuyển đổi dự phòng mà không phát hiện lỗi tuyến


7

Tôi đang tìm kiếm một công nghệ để đạt được khả năng chịu lỗi kết nối TCP với sự trợ giúp của hai liên kết giữa các máy chủ và không bị trì hoãn thời gian để phát hiện lỗi tuyến đường. Một cái gì đó như thế này:

                       link1   packet1copy1->
                     --------------------------
      packet1->     /                          \    packet1copy1/packet1copy2->
host1--------router1                            router2 ------------------------host2
                    \  link2   packet1copy2->  /
                     --------------------------

host1host2được kết nối thông qua router1router2với hai liên kết giữa chúng. Mỗi bộ định tuyến sao chép mọi gói đến từ máy chủ trước khi chuyển tiếp chúng vào cả hai liên kết. Sau đó, bộ định tuyến ngang hàng hoặc ngăn xếp IP máy chủ đích sẽ xử lý việc loại bỏ gói dự phòng.

Chỉnh sửa: Trên thực tế, đây là một tìm kiếm cho một giải pháp sao chép lỗi cho mục đích chung cho vận chuyển TCP (IP). Giải pháp nên là loại không cần phục hồi trái ngược với các phương pháp phục hồi nhanh chóng hợp lý như BGP / OSPF / Cisco IP SLA, v.v. Một số giải pháp dự phòng gói độc quyền đã được biết đến, mặc dù chưa đủ phổ biến. Đặc biệt, Engage Communication cung cấp Bộ bảo vệ ống IP cho VoIP. Thật không may, giải pháp 1) này là nhiều thiết bị hơn so với công nghệ tiêu chuẩn và 2) chỉ giới hạn trong miền VoIP. Nó cũng có thể đáng chú ý công nghệ dự phòng Juniper Packet Redundancy , mặc dù có vẻ như chỉ giới hạn ở một liên kết duy nhất và không liên kết với các liên kết dự phòng.

Tôi tự hỏi tại sao tôi không thể tìm thấy bất cứ điều gì tương tự từ Cisco ... Có bất kỳ tiêu chuẩn hoặc ít nhất là công nghệ mục đích chung giải quyết vấn đề này không?


3
tcp truyền lại các phân đoạn bị mất, nếu bạn muốn mất gói không có mà không truyền lại, bạn cần một công nghệ khác ngoài tcp ... bạn đang giải quyết vấn đề kinh doanh nào?
Mike Pennington

1
có, TCP truyền lại các phân đoạn bị mất, nhưng với các giao thức định tuyến như BGP, phải mất khá nhiều thời gian để phát hiện ra rằng tuyến đường được coi là hoạt động hiện đã ngừng hoạt động; cuối cùng các bộ định tuyến nhận ra điều này và chuyển đổi các tuyến hoạt động, nhưng cần có thời gian và giao thức cấp ứng dụng có thể bị ảnh hưởng ... vấn đề kinh doanh của tôi là xử lý giao dịch tài chính trực tuyến.
Sergey Ushakov

1
thời gian chờ cấp ứng dụng tiêu chuẩn là 40 giây; trong thực tế, chúng tôi có thể cho phép chỉ một số 20 để phát hiện lỗi tuyến đường để tránh giao dịch thất bại; có, ứng dụng đã được viết nhưng có thể được sửa đổi; không mã hóa cấp ứng dụng được sử dụng; chỉ các liên kết dự phòng đường dài mới được bảo mật bằng IPsec
Sergey Ushakov 21/07/13

4
chạy giao thức định tuyến igp của riêng bạn thông qua các đường hầm ipsec, tùy chọn với ip sla và không thành công theo yêu cầu ... đây là một thiết kế khá chuẩn
Mike Pennington

1
bạn đang sử dụng gì để chấm dứt các liên kết ipsec? Cisco ASA hoặc bộ định tuyến, hoặc ??? Bạn không thể phụ thuộc vào phát hiện một phía ... IP SLA ở cả hai bên hoặc giao thức định tuyến sẽ khắc phục các sự cố phát hiện lỗi của bạn nếu bạn điều chỉnh bộ hẹn giờ xin chào một cách thích hợp
Mike Pennington

Câu trả lời:


0

Với bộ định tuyến Mikrotik, bạn có thể sử dụng liên kết trong chế độ phát sóng, xem liên kết . Tôi đã thực hiện một số thử nghiệm qua kết nối liên kết 4G, nó giúp giảm mất gói từ 1 xuống 2 và tôi được lợi từ việc cải thiện tốc độ TCP. Mất gói không hoàn toàn được loại bỏ nhưng đi đến 3 liên kết không cải thiện thêm. Tôi sẽ điều tra tiếp theo trong TCP mã hóa mạng.


Các đề xuất về sản phẩm hoặc tài nguyên rõ ràng không có chủ đề ở đây, cũng như các thiết bị cấp người tiêu dùng, ví dụ MikroTik.
Ron Maupin

@Netflow Cảm ơn bạn đã lưu ý liên kết trong chế độ phát sóng, bất kể Mikrotik :) Không chắc chắn liệu tôi có thể thử nó trong một tương lai gần hay không, nhưng vẫn tốt để biết có vẻ như có một cách tiếp cận dựa trên tiêu chuẩn. ..
Sergey Ushakov

10

Tôi đang tìm kiếm một công nghệ để đạt được khả năng chịu lỗi kết nối TCP với sự trợ giúp của hai liên kết giữa các máy chủ và không bị trì hoãn thời gian để phát hiện lỗi tuyến đường. Một cái gì đó như thế này:

                       link1   packet1copy1->
                     --------------------------
      packet1->     /                          \    packet1copy1/packet1copy2->
host1--------router1                            router2 ------------------------host2
                    \  link2   packet1copy2->  /
                     --------------------------

Có một vài điều làm việc chống lại đề xuất của bạn ...

  1. Bạn sẽ làm cho host1 và host2 hoạt động rất chăm chỉ để gỡ rối sơ đồ sao chép gói có chủ ý của bạn mà không có lý do chính đáng
  2. Bạn đang đốt mã lực trên các điểm mã hóa ipsec của mình mà không có lý do chính đáng
  3. TCP đã được tinh chỉnh trong hơn ba thập kỷ để tự động phục hồi từ các lỗi và lỗi cơ sở hạ tầng; "Giúp" TCP theo cách như vậy sẽ khắc phục vấn đề sai. Bạn cần làm cho cơ sở hạ tầng của mình phản ứng để giảm thiểu các vấn đề, bạn không nên băng TCP để tồn tại cơ sở hạ tầng có vấn đề.

Tôi sẽ trả lời với cùng một nhận xét tôi đã đưa ra, vì yêu cầu phát hiện lỗi của bạn là hai mươi giây ...

Xây dựng 2 đường hầm IPSec với sự đa dạng của ISP theo yêu cầu. Chạy một giao thức định tuyến thông qua các đường hầm IPSec của bạn và điều chỉnh bộ định thời giao thức để không bị mất gói cơ sở hạ tầng. Nếu bạn kết thúc Cisco, EIGRP từ lâu đã hội tụ rất nhanh xung quanh các lỗi, mặc dù các giao thức trạng thái Liên kết đang trở nên giống nhau trong những ngày này với các triển khai thay thế miễn phí vòng lặp IETF.

Tùy chọn sử dụng IP SLA ở cả hai bên để đưa xuống một đường hầm không đáp ứng bất kỳ yêu cầu jitter / delay / mất gói nào.


Mike, với tất cả sự tôn trọng, tôi không thể chấp nhận lời chỉ trích của bạn vì những lý do sau: 1) câu hỏi của tôi tìm kiếm khả năng chịu lỗi theo loại giải pháp sao chép , trong khi các giải pháp của bạn có khả năng chịu lỗi theo loại dự phòng ; cả hai cách tiếp cận thường được coi là hợp lệ, nhưng chúng có xu hướng mang lại chất lượng dịch vụ khác nhau và tôi tìm kiếm mức độ dịch vụ tốt hơn; 2) khả năng chịu lỗi do sao chép có xu hướng đắt hơn, nhưng tôi sẽ không nói từ "đắt" quá nghiêm trọng ở đây :) mà nói, xin vui lòng chấp nhận "cảm ơn" của tôi và upvote cho tổng quan tốt, nhưng tôi không chấp nhận câu trả lời của bạn
Serge Ush Ush

1
@ sn-ushakov, như tôi đã nói ... nếu bạn muốn chịu lỗi bằng cách sao chép, bạn đang sử dụng giao thức sai. TCP được tạo ra để chịu lỗi bởi sự dư thừa. Nếu bạn muốn chịu lỗi bằng cách sao chép, tôi có thể giới thiệu bạn với người bạn của chúng tôi được gọi là UDP . UDP phù hợp hơn nhiều cho những gì bạn muốn; tuy nhiên, điều đó có nghĩa là bạn sắp viết lại ứng dụng kinh doanh chính của mình chỉ vì bạn yêu thích một thiết kế mạng lạ (không có phần cứng được biết để thực hiện sao chép gói hai chiều này, tôi có thể thêm vào)
Mike Pennington

tốt, đôi khi giao thức cấp ứng dụng không phải là lựa chọn của chúng tôi ... và kiến ​​thức về cơ sở hạ tầng ngang hàng của bạn có thể bị hạn chế trong thế giới kinh doanh ... và thật tuyệt khi có HTTP được thiết kế và triển khai qua UDP :) và nói Nghiêm túc, cảm ơn bạn đã chỉ đến các giao thức trạng thái liên kết, chúng có thể là một cứu trợ, mặc dù không phải là giải pháp cuối cùng; BTW TCP bản thân đã có cung cấp ít nhất là cho một phần của giải pháp được tìm kiếm: Các TCP phải phục hồi từ dữ liệu được ... đôi ... - RFC 793, mục 1.5, tiểu mục "đáng tin cậy"
Sergey Ushakov

6
Vui lòng trích dẫn RFC 793, Phần 1.5 ... để đáp lại, tôi sẽ trích dẫn RFC 1925, Phần (3) :With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea.
Mike Pennington

2
Engage Communications đang bán giải pháp TDM qua IP. Bạn đang yêu cầu giải pháp TCP qua IP ... bạn có thể phủ IP qua TDM qua IP, nhưng một lần nữa ... điều này thực sự điên rồ. Bạn nên thuê một kỹ sư mạng thực sự
Mike Pennington

4

OK, từ đầu;

  • Bỏ phiếu cho câu hỏi của bạn từ tôi; câu hỏi của bạn không đủ rõ ràng dựa trên câu trả lời của bạn trong các bình luận cho câu trả lời của người khác. Bạn đã cho rằng giải pháp là liên quan đến kỹ thuật mạng nhưng dường như bạn không biết và đưa ra ấn tượng rằng bạn hy vọng ai đó sẽ cung cấp cho bạn câu trả lời bạn cần.

  • Bạn có yêu cầu vấn đề sau đây;

host1 và host2 được kết nối thông qua router1 và router2 với hai liên kết giữa chúng. Mỗi bộ định tuyến sao chép mọi gói đến từ máy chủ trước khi chuyển tiếp chúng vào cả hai liên kết. Sau đó, bộ định tuyến ngang hàng hoặc ngăn xếp IP máy chủ đích sẽ xử lý việc loại bỏ gói dự phòng.

  • Trừ khi kết nối của máy chủ cuối của bạn với bộ định tuyến cục bộ của họ gấp đôi tốc độ lưu lượng truy cập qua một liên kết duy nhất giữa router1router2, mà bạn chưa đề cập, máy chủ của bạn sẽ cần hai kết nối đến bộ định tuyến cục bộ của họ. Có NO phần mềm bản địa hoặc sản phẩm bất cứ nơi nào có thể chạy trên một host cuối và mất hai TCP suối xuống cùng NIC hoặc hai người riêng biệt và kéo từ một dòng thay thế thiếu gói từ dòng đầu tiên. Làm thế nào để tôi biết điều này? Vì đó không phải là cách mạng hoạt động, IP & TCP đơn giản là không được thiết kế để hoạt động như vậy. Có thể có các sản phẩm để sao chép các gói, nhưng đây là một phân khúc thích hợp, không có phạm vi rộng, vì đó là câu trả lời sai cho câu hỏi.

Tại sao điều này là một yêu cầu bonkers như vậy;

  • Bạn dường như đang cố gắng đặt một cái chốt tròn vào một cái lỗ vuông. Sự hiểu biết của tôi về yêu cầu vấn đề của bạn là bạn muốn dự phòng cho dữ liệu của ứng dụng của bạn di chuyển giữa các máy chủ từ xa. Dữ liệu được gửi hai lần từ đầu đến cuối trong trường hợp liên kết bị lỗi. Đó là tất cả những gì bạn đang bảo vệ chống lại ở đây với các luồng TCP kép, thất bại lớp 1 vật lý. Nếu có sự tạm dừng trong việc gửi một gói từ máy chủ này sang máy chủ khác, nó sẽ bị trễ khi cả hai liên kết bộ định tuyến đến bộ định tuyến. Nếu xảy ra sự cố thoáng qua trên một liên kết chứ không phải liên kết khác, chẳng hạn như tắc nghẽn, bộ định tuyến ở cuối liên kết, sẽ cần theo dõi đồng thời cả hai luồng TCP để thấy rằng khi một gói đến liên kết 2 với số thứ tự tiến hành trong đó tiêu đề và không có gì đã đến trên link1, sau đó gói trên link1 bị trễ và nếu nó bật lên, nó cần phải loại bỏ nó.

    Điều gì sẽ xảy ra nếu bạn thấy bản thân mình trong tình huống có tắc nghẽn trên link1 nhưng không có lưu lượng truy cập nào bị giảm, do lược đồ QoS tốt, nhưng đó là hàng đợi, các gói xuống link1 hiện luôn nằm sau link2. Điều gì sẽ xảy ra nếu link2 không thành công và bộ định tuyến chuyển các gói trên link1 đến các máy chủ cuối, nó sẽ nhận được các gói kép, dừng và truyền lại, v.v., và gây ra sự chậm trễ. Không có gì đạt được ở đây.

Chuyển sang một giải pháp;

  • Theo tôi, một ý tưởng tốt hơn là có các liên kết lớp 2 giữa hai máy chủ cuối, mở rộng các miền phát sóng của chúng để bao gồm cả các NIC khác. Bạn có thể thực hiện việc này thông qua kết nối trực tiếp lớp 2, mở rộng MPLS / VPLS, dịch vụ của nhà cung cấp lớp 2, đưa bạn chọn, điều này không liên quan nghiêm ngặt ở đây. Mở rộng mạng lớp 2 giữa các máy chủ có nghĩa là bạn không cần phải gây rối với TCP hoặc thực hiện bất kỳ sửa lỗi ma thuật đen hoặc hỗ trợ băng thông nào. TCP sẽ hoàn toàn không biết gì về công nghệ cơ bản và bạn vẫn sẽ có lớp dự phòng liên kết vật lý lớp 1 / vật lý.

  • Nếu bạn sử dụng giải pháp dựa trên MPLS, bạn có thể sử dụng các tính năng như kỹ thuật lưu lượng (MPLS-TE) để theo dõi độ trễ trên các liên kết và luôn sử dụng liên kết có độ trễ thấp nhất. Bạn có thể sử dụng BFD với MPLS FRR, có thể khiến bạn thất bại 50ms ~ theo thời gian giữa các liên kết. Tôi biết bạn nói rằng bạn không muốn dự phòng thất bại trong giải pháp, nhưng theo tôi thì 50ms là khá nhanh. Nếu ứng dụng của bạn không thể xử lý mất kết nối 50ms, thì bạn cần quay lại bảng vẽ ứng dụng. Không có hệ thống nào tăng 100% thời gian, bạn phải lập kế hoạch cho các lỗi, bảo trì theo kế hoạch và ngừng hoạt động thông qua mục đích xấu / bảo mật liên quan; để tất cả xảy ra tại một số điểm. Bạn phải thực tế.

Trong một bình luận bạn đã nói như sau;

tốt, IP SLA là công nghệ đang được sử dụng ít nhất ở một đầu cho đến nay ... :) tuy nhiên phải mất khá nhiều thời gian để cả hai đầu phát hiện lỗi liên kết và đôi khi ứng dụng không đồng bộ ... và các liên kết có thể đôi khi lấp lánh ... đó là lý do tại sao chúng ta đang tìm kiếm thứ gì đó không có độ trễ

Không có điều như vậy; Thời gian phải trôi qua để các sự kiện có thể trở thành hiện thực. Bạn cần suy nghĩ lại về mức độ trì hoãn "chấp nhận được".

Cũng trong một bình luận khác mà bạn nói;

BGP phải mất khá nhiều thời gian để phát hiện ra rằng tuyến đường được coi là hoạt động hiện đã ngừng hoạt động; cuối cùng các bộ định tuyến nhận ra điều này và chuyển đổi các tuyến hoạt động, nhưng phải mất thời gian và giao thức cấp ứng dụng có thể bị ảnh hưởng

BGP có một bộ đếm thời gian xin chào, điều này đang phát hiện sự hiện diện của người hàng xóm ngay lập tức. Mặc định là 30 giây, tôi nghi ngờ đây là những gì bạn đang đề cập quá. Nếu cả hai bộ định tuyến trong cấu trúc liên kết của bạn nói BGP với ISP tại mỗi trang hoặc thậm chí trực tiếp với nhau, thì các bộ định tuyến đó sẽ tạo các đường hầm IP-in-IP của đường hầm GRE hoặc L2TP (v3) giữa hai bộ định tuyến, qua các đường hầm đó chạy BFD hoặc IP SLA. Bây giờ bạn có thể phát hiện mất kết nối đầu cuối trong 1 hoặc 2 giây và định tuyến lại đến đường hầm khác bằng cách sử dụng các đối tượng xử lý.

Nhìn chung, dường như bạn đang trộn lẫn các lớp công nghệ khác nhau. BGP không giả sử cung cấp định tuyến lại nhanh, TCP không được cho là trùng lặp, v.v. Bạn đang nhìn vào mức độ trừu tượng sai để giải quyết vấn đề này. Mình hy vọng rằng nó đã có ích.


2
Anh ta không cần chúng, anh ta có thể chạy MPLS qua GRE chẳng hạn, MPLS qua IPSEC. Anh ta có thể đầu tư vào các liên kết L2 không? Ai biết hay quan tâm ngân sách của anh ta là gì, không phải tôi; Tôi không nói rằng ý tưởng của tôi là tốt nhất, tôi chỉ đơn giản là cố gắng cung cấp giải pháp cho vấn đề lành mạnh và đáng tin cậy, không liên quan đến chi phí hoặc tính sẵn có, và giải thích thêm về các vấn đề mà anh ấy phải đối mặt và lý do để đưa ra lựa chọn khác. Đó là một câu trả lời thuần túy kỹ thuật.
jwbensley

1
@ sn-ushakov Không có thứ gọi là zero-time
jwbensley 29/07/13

1
Nó không nói trong tài liệu đó, để lặp lại chính tôi Time must pass for possible events to become actualities- Không có gì gọi là thời gian bằng không. Hộp phải kiểm tra tổn thất, độ trễ, giọt, v.v., cần có thời gian, nó có thể là mili hoặc micro giây, nhưng phải mất một khoảng thời gian. Giống như BFD chẳng hạn, nếu bạn đặt thời gian chào là 50ms, với thời gian giữ mặc định là 3x xin chào, bạn phải đợi 150ms để xảy ra lỗi. Bây giờ hãy ngừng so sánh một giải pháp sao lưu TDM với kịch bản của bạn. Bởi bản chất của nó là có thể đặt một dịch vụ TDM như dự phòng TCP mà bạn yêu cầu
jwbensley

1
... bởi vì bạn biết khi nào một gói TDM sẽ chính xác đến. Nếu bạn không hiểu đầy đủ về cách thức hoạt động của các E1 / T1, tôi khuyên bạn nên đọc về điều đó trước. Sau đó, bạn sẽ hiểu một lý do để có các liên kết TDM là vì độ tin cậy như độ trễ được đảm bảo. Chúng chạy ở tốc độ cố định và tốc độ khung hình mỗi giây. IP / TCP là tất cả trên quy mô. TDM dễ dự đoán hơn nhiều và điều này chạy ở lớp thấp hơn TCP, nó sẽ giống như sao chép các khung Ethernet qua hai liên kết. Thực tế là các hộp này đang chạy TDM qua IP sẽ tăng thêm một số tiềm năng cho sự thay đổi và sai lệch của hai luồng TDM, đó là lý do tại sao ...
jwbensley

1
... Những hộp đó có bộ định thời xiên và bộ phát hiện khung không theo thứ tự (đọc số thứ tự).
jwbensley

1

Đây là một vấn đề lớp ứng dụng và không phải là vấn đề cấp độ mạng. Điều này là do một trong những nguyên tắc cốt lõi của IP là ngăn ngừa trùng lặp, đặc biệt khi truyền lại TCP được gọi.
Trong các môi trường cực kỳ quan trọng, cách tiếp cận sẽ có 2 NIC trên các máy chủ cuối và nhận ứng dụng để tạo 2 gói duy nhất. Với phương pháp này, bạn có thể sử dụng các công nghệ và nguyên tắc mạng hiện có bằng cách sử dụng các đường dẫn và số liệu thay đổi.


xin lỗi, nhưng không thể đồng ý rằng đây là sự cố lớp ứng dụng; ứng dụng có quyền chỉ mong đợi một liên kết TCP có chất lượng đủ; Bản thân TCP có các quy định để phục hồi sau các lỗi mạng nhỏ và có nhiều giải pháp cung cấp khả năng chịu lỗi mạng bằng cách định tuyến thay thế; Thật không may, tất cả chúng tôi biết đều thuộc loại phục hồi nhanh sau thất bại thay vì không cần phục hồi ; Tôi nhận thấy nhiệm vụ này chỉ là một kỹ thuật mạng dư thừa; Rốt cuộc, nếu chúng ta có thể có RAID, tại sao chúng ta không thể có RAIN? :)
Sergey Ushakov

Hai NIC với hai phiên tcp có nghĩa là OP phải quyết định phiên TCP nào đáng tin cậy hơn.
đài phát thanh miễn phí châu Âu

Chỉ để tránh hiểu lầm: Tôi không bao giờ có nghĩa là hai phiên TCP. Phiên TCP nên là một. Đó là nhiệm vụ của các bộ định tuyến để xử lý dự phòng và chuyển đổi dự phòng TCP chậm trễ.
Sergey Ushakov

0

Tôi không biết các thủ thuật hoặc giao thức có thể thực hiện loại sao chép chuyển tiếp này trên các thiết bị mạng đang được đề cập - đối với loại ứng dụng này, tôi sẽ khuyên bạn nên dự phòng và phát hiện lỗi nhanh bằng cách sử dụng chuyển đổi nhanh BGP, BFD và các công cụ khác. Tuy nhiên, tôi đã xem qua dự án nguồn mở này có tên là 'Bộ chia đường hầm' http://coderrr.wordpress.com/2010/01/10/tunnel-splitter-accelerating-a-single-tcp-connection-over-multipl-isps/điều đó dường như phù hợp với những gì bạn đang tìm kiếm. Nói tóm lại, các hộp TS được cài đặt tại mỗi trang web ủy quyền các kết nối TCP giữa host1 và host2, sau đó phân chia lưu lượng giữa chúng qua các đường hầm. Vì mỗi đường hầm có một địa chỉ nguồn duy nhất, PBR (định tuyến dựa trên chính sách) có thể được sử dụng tại các bộ định tuyến để điều hướng lưu lượng truy cập cho đường hầm1 qua link1 và đường hầm2 qua link2. Các hộp TS chấm dứt các đường hầm và có một kết nối tcp duy nhất đến host1 và host2. Tất nhiên, bạn sẽ cần phải thực sự, thực sự kiểm tra điều này nhưng nó dường như hoạt động trên bảng trắng!


Nghe có vẻ hứa hẹn và phù hợp với dự luật (mặc dù không phải cấp công nghiệp), nhưng thật không may, GitHub đã phản hồi với 404 cho dự án này rồi ... bạn có biết điều gì đã xảy ra với dự án này sau đó không?
Sergey Ushakov

Thật không may tôi không. Bạn có thể phải liên hệ trực tiếp với các tác giả.
smoothbSE
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.