VPN ხელახლა დაუკავშირდა, მაგრამ აპის სესია მაინც ვერ მუშაობს
ხელახალი დაკავშირება აღადგენს მარშრუტებს და არა სოკეტის მდგომარეობას. გახსენით ერთი ახალი მოთხოვნა, სანამ ძველი კიდევ ჩამოკიდებულია, და გაიგებთ, რომელი ორიდან ვერ შესრულდა.
გვირაბი ბრუნდება, კლიენტი ამბობს, რომ დაკავშირებულია, ხოლო ბრაუზერი კვლავ ტრიალებს იმ გვერდზე, რომელსაც წყვეტამდე იტვირთავდა. VPN-ის ხელახალი დაკავშირება აღადგენს გზას და არ აღადგენს იმ კავშირის მდგომარეობას, რომელიც აპლიკაციებმა და შორეულმა მხარემ ძველ გზაზე დააგროვეს. ეს გასასწორებელი ორი სხვადასხვა რამაა, და მათი არევა უმიზეზოდ გაბრუნებთ VPN-ის პარამეტრებში.
ერთი ტესტი მათ სუფთად ჰყოფს, და მას ათი წამი სჭირდება. გაგზავნეთ ახალი მოთხოვნა იმავე დანიშნულებაზე, სანამ ძველი ჩამოკიდებულია.
რა გადაურჩება ხელახალ დაკავშირებას და რა არა
გვირაბი მარშრუტების, გასაღებებისა და მისამართების ერთობლიობაა, და ხელახალი დაკავშირება სამივეს აღადგენს, მაშინ როცა ყოველი დამყარებული ნაკადი მკვდარი რჩება. ოპერაციული სისტემა სოკეტს ღიად ინახავს იმიტომ, რომ აპლიკაციამ ასე ითხოვა, და ამ სოკეტის დროის ლიმიტი შეიძლება წუთებით ან საათებით იყოს დაშორებული. მის ქვეშ პარტნიორმა ნაკადი დაივიწყა, თარგმანის ჩანაწერი ვადაგასულია, ან გზა ახლა გადის ისეთ კიდურ წერტილზე, რომელსაც ხელის ჩამორთმევა არასოდეს უნახავს. ხელახალი დაკავშირების მიმდევრობაში არაფერი გადის აპლიკაციის სოკეტებზე და არ არემონტებს მათ.
ზოგიერთი კლიენტი ამატებს კაუჭს, რომელიც ხელახალი დაკავშირებისას ძველ კავშირებს აგდებს, და უმეტესობა არ ამატებს. ქცევა აქ იცვლება კლიენტის, პლატფორმისა და ვერსიის მიხედვით.
შორეულმა მხარემ თქვენც დაგივიწყათ
შორეული ბოლო საკუთარ მდგომარეობას ინახავს: TLS სესიას, TCP მართვის ბლოკს და შესაძლოა ასახვის ჩანაწერს, რომელიც თქვენს მისამართსა და პორტს ნაკადს აკავშირებს. გზაზე მდგარ თარგმანის მოწყობილობას შეუძლია ეს ასახვა შუალედის განმავლობაში ვადაგასული გახადოს, მაშინაც კი როცა გვირაბი სწრაფად აღდგება. როგორც კი ასახვა ქრება, პაკეტები მოდის ისეთი ნაკადისთვის, რომელსაც სერვერი აღარ ცნობს, და პასუხი შეიძლება იყოს reset, რომელსაც კლიენტი არასოდეს აჩვენებს. აპლიკაციები ამას შეჩერებად აცხადებენ და არა შეცდომად, რადგან ისინი ჯერ კიდევ ელიან სოკეტს, რომელიც არასოდეს უპასუხებს.
სერვერის მხარეს უმოქმედობის ლიმიტები იგივეს აკეთებენ საკუთარი გრაფიკით, ამიტომ სესია შეიძლება მოკვდეს ქსელური მოვლენის გარეშე. კავშირი, რომელიც უმოქმედო იყო უფრო დიდხანს, ვიდრე სერვერი ელოდება, უკვე გაქრა, სანამ შეამჩნევთ, რომ გვირაბი გადაადგილდა.
ახალი მოთხოვნა არის ის ტესტი, რომელიც მათ ჰყოფს
გაგზავნეთ ახალი მოთხოვნა იმავე ჰოსტზე, სანამ ძველი ჯერ კიდევ ჩამოკიდებულია, და დააკვირდით ორივეს. თუ ახალი მოთხოვნა წარმატებულია, მაშინ გვირაბი, მარშრუტი და სახელების გარჩევა მუშაობს, და ხარვეზი შემოიფარგლება ძველი ნაკადით. თუ ახალი მოთხოვნაც ვერ შესრულდა, გაქვთ გზის პრობლემა და აპლიკაციის სესიის მდგომარეობა ცრუ კვალია.
ტესტის დროს პირდაპირი ტრაფიკის ნებისმიერი ბლოკი ადგილზე დატოვეთ. შემთხვევითი სარეზერვო გზით წარმატებული მოთხოვნა გვირაბზე არაფერს ამტკიცებს.
დაადასტურეთ ახალი კავშირით და არა ძველით
ქვემოთ მოცემული ბრძანებები აჩვენებენ ჯერ კიდევ ღია სოკეტებს, იწყებენ ერთ ახალ მოთხოვნას და ამოწმებენ, აქვს თუ არა სესიების ცხრილს ჯერ კიდევ ჩანაწერი ნაკადისთვის. გაუშვით პირველი ხელახალ დაკავშირებამდე და მის შემდეგ, რომ განსხვავება ჩანდეს. შეცვალეთ ჰოსტი და პორტი თქვენი სერვისით.
ss -tanp | grep -E ':(443|8443)'
curl -sS -o /dev/null -w '%{http_code} %{time_connect}\n' --max-time 8 https://intranet.example.com/
conntrack -L 2>/dev/null | grep 8443
dig +short intranet.example.com
მოძრავი ტრაფიკის გარეშე დამყარებული სოკეტი არის ის ნიშანი, რომელიც უნდა ვეძებოთ, და სტატუსის კოდს დამაბრუნებელი ახალი მოთხოვნა აჩვენებს, რომ გზა ცოცხალია. კავშირების ცხრილი პასუხობს, ასახავს თუ არა რამე ჯერ კიდევ ნაკადს, და ეს არის ის ნაწილი, რომელსაც კლიენტი ვერ ხედავს. გამხსნელის მოთხოვნა ფარავს გვერდის ჩატვირთვის მეორე ნახევარს, რადგან სახელის ხარვეზი და გაჩერებული კავშირი ბრაუზერში ერთნაირად გამოიყურება. ერთად, ეს ოთხი გამოსავალი ჰყოფს ძველ სესიას გატეხილი გვირაბისგან.
ჩაიწერეთ შეწყვეტის დრო, ხელახალი დაკავშირების დრო და სხვაობა ძველ და ახალ მოთხოვნას შორის. ეს ჩანაწერი ბუნდოვან საჩივარს აქცევს მოხსენებად, რომელზეც ვინმე იმოქმედებს.