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

მითი: განმეორებული მოთხოვნა ერთ კავშირზე დანაკარგს ამტკიცებს

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

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

რას გეუბნებათ ხელახალი გაგზავნა სინამდვილეში

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

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

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

ოთხი დაკვირვების წერტილი როგორც ერთი ჯაჭვი

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

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

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

იპოვეთ პირველი დაკარგული გადასვლა

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

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

tcpdump -ni any -vv 'udp port 500 or udp port 4500'

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

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

რას ამბობს სასარგებლო მოხსენება

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

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

მითია, რომ ერთი დუბლიკატი ამტკიცებს ოპერატორის ბრალს. რეალობაა, რომ ერთი დუბლიკატი ამტკიცებს ტაიმერის ამოწურვას და პასუხი პასუხის გზაზე ცხოვრობს.

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