მომხმარებელი იუწყება, რომ შიდა აპლიკაცია ერთი მანქანიდან მუშაობს, მეორიდან კი ვერ მუშაობს, მაშინ როცა კარიბჭიდან გაშვებული ping ორივე შემთხვევაში წარმატებულია. თანაბარი ღირებულების რამდენიმე გვირაბის დროს ეს წინააღმდეგობა არ არის. თითოეული ნაკადი საკუთარ შემდეგ ნახტომზე თავსდება, ამიტომ თქვენი შემოწმება და მომხმარებლის სესია შესაძლოა უბრალოდ სხვადასხვა გზას იყენებდეს. ქვემოთ მოცემული მიმოხილვა ამ არჩევანს რაიმეს შეცვლამდე ამრავლებს.

ერთი ping, რამდენიმე შესაძლო გზა

როცა მარშრუტს ერთზე მეტი შემდეგი ნახტომი აქვს იმავე ღირებულებით, მარშრუტიზატორმა თითოეული პაკეტისთვის ერთი უნდა აირჩიოს. განხორციელებათა უმეტესობა პაკეტის ველებს ჰეშავს, ჩვეულებრივ წყაროსა და დანიშნულების მისამართებს პროტოკოლთან და პორტებთან ერთად, რათა პასუხები იმავე გზაზე დარჩეს. სხვადასხვა აპლიკაცია, ან თუნდაც ერთი აპლიკაციის სხვადასხვა კავშირი, სხვადასხვა ჰეშს ქმნის.

სწორედ ამიტომ კარიბჭიდან გაკეთებული დიაგნოსტიკა ასე ცოტას ამტკიცებს. კარიბჭის საკუთარ შემოწმებას საკუთარი მისამართები და პორტები აქვს, შესაბამისად საკუთარი ჰეშიც. შესაძლებელია ის ჯანსაღ გვირაბზე მოხვდეს, სანამ მომხმარებელი დაზიანებულზე აგრძელებს მოხვედრას.

როგორ ირჩევს პლატფორმა შემდეგ ნახტომს

არჩევანი ამრავლეთ და ნუ გამოიცნობთ. ჰკითხეთ ბირთვს, რომელ მარშრუტს გამოიყენებდა იმავე წყაროსა და დანიშნულებისთვის, რაც წარუმატებელ სესიას აქვს. ეს ძიება მოიცავს ველებს, რომლებსაც ჩვეულებრივი დანიშნულების ძიება უგულებელყოფს. გაუშვით ის მომუშავე კლიენტიდანაც და შეადარეთ ორი პასუხი:

ip route get 10.20.5.7 from 10.20.0.14

iproute2-ის უფრო ახალი გამოშვებები პროტოკოლსა და დანიშნულების პორტსაც იღებენ, რაც მნიშვნელოვანია, როცა ჰეში მათ მოიცავს. შეადარეთ ეს გამოტანა იმავე ძიებას მომუშავე კლიენტიდან და განსხვავება ის მტკიცებულებაა, რაც გაკლდათ.

ObservationLikely causeFirst check
Ping works, application failsA different flow hash selects another tunnelPer-flow lookup from the client's address
Some users fail, others do notOne tunnel lacks a prefix or selectorCompare both tunnels' installed routes
Fails only at larger sizesTunnels have different effective MTUProbe the same size over each path
Fails after a reconnectStateful asymmetry between pathsSession state on both gateways

მიჰყევით წარუმატებელ ნაკადს და არა მარშრუტების ცხრილს

მარშრუტების ცხრილი ორივე გვირაბს ჩამოთვლის და განმარტებით სწორად გამოიყურება. კითხვა ისაა, რას აკეთებს თითოეული გვირაბი პაკეტთან არჩევის შემდეგ. დაადასტურეთ, რომ ორივეს ერთი და იგივე დაცული პრეფიქსები, იგივე გადაცემის ნებართვა და იმავე კლიენტამდე მიმავალი დაბრუნების გზა აქვს.

ყურადღება მიაქციეთ შუაში მდებარე მდგომარეობის მქონე მოწყობილობებს. თუ მოთხოვნა ერთი გვირაბიდან გადის და პასუხი მეორეთი ბრუნდება, მაშინ firewall ან NAT, რომელსაც საწყისი ნაკადი არასდროს უნახავს, მას გადააგდებს. ორივე გვირაბი ტრაფიკს სწორად გადასცემს და კავშირი მაინც იშლება.

შეამოწმეთ MTU თითოეული გზისთვისაც. დამატებითი ინკაფსულაციის მქონე გზა გამოსადეგ ზომას ამცირებს და გადაცემა, რომელიც ერთ გვირაბში წარმატებულია, მეორეში ზუსტად იმ ზომაზე ჩერდება, სადაც უფრო პატარა ტყდება.

შეადარეთ თითო გზა ცალ-ცალკე

სადაც დიზაინი ტექნიკურ მომსახურებას უშვებს, ერთი გვირაბი გამოიყვანეთ მომსახურებიდან და გაიმეორეთ მომხმარებლის ამოცანა. თუ ხარვეზი გაქრა, პრობლემა ამოღებულ გზას ეკუთვნის და შემდეგი ნაბიჯი მისი კონფიგურაციის მეზობელთან შედარებაა და არა მარშრუტიზაციის ცხრილის ხელახლა შესწავლა.

შეადარეთ რეალური აპლიკაცია და არა განმეორებითი ping-ები. ჩაწერეთ, მიჰყვება თუ არა ხარვეზი კონკრეტულ შემდეგ ნახტომს, პაკეტის ზომას ან ხელახალი დაკავშირების შემდგომ გადასვლას, რადგან ეს სამი ნიმუში სხვადასხვა შეკეთებაზე მიუთითებს.

ბოლოს ჩამოწერეთ, რატომ ითვლება გზები ეკვივალენტურად და როგორ უნდა გამოიყვანოს ხარვეზმა ერთი მათგანი მომსახურებიდან. მრავალგზიანობა უსაფრთხოა მხოლოდ მაშინ, როცა გზები ნამდვილად ურთიერთშემცვლელია და ეს საპროექტო განცხადებაა, რომლის შემოწმებაც ღირს და არა ვარაუდი.

დაკავშირებული სტატიები