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

ჩატვირთვა დაკავშირება არ არის

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

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

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

სამი ობიექტი, სამი დაკვირვება

strongSwan ინახავს ჩატვირთულ განსაზღვრებას, IKE SA-ს და CHILD SA-ს. პირველი კონფიგურაციაა, მეორე ავთენტიფიცირებული მართვის ურთიერთობა, ხოლო მესამე შერჩეული ტრაფიკისთვის შეთანხმებული დაცვა. მათ ცალკე სახელებიც კი აქვთ, ამიტომ hq სახელის მქონე პროფილს შეიძლება ჰყავდეს hq-lan სახელის მქონე child.

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

LayerWhat it containsCommand
DefinitionPeer addresses, credentials, proposals, and traffic selectorsswanctl --list-conns
IKE SAOne authenticated control channel to the peerswanctl --list-sas
CHILD SAKeys and selectors for the traffic being protectedChild rows under the IKE SA

child-ის მოთხოვნა ჯერ მის მშობელ IKE SA-ს აშენებს, როცა არცერთი არ არსებობს. მხოლოდ IKE SA-ის მოთხოვნა სხვა გამოძახებაა. მართვის არხი, რომელიც კარგად ავთენტიფიცირდება, არ იძლევა გარანტიას მოთხოვნილ child-ზე.

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

აირჩიეთ გაშვების მოქმედება განზრახ

swanctl.conf-ში child-ის start_action განსაზღვრავს ქცევას ჩატვირთვის შემდეგ. ნაგულისხმევი none განსაზღვრებას ტოვებს ხელით ინიცირებისთვის ან responder-ად გამოყენებისთვის. start მას აკავშირებს, ხოლო trap ტოვებს პოლიტიკას, რომელიც მოლაპარაკებას აწარმოებს მაშინვე, როცა შესაბამისი ტრაფიკი გამოჩნდება.

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

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

აღდგენა ცალკე პოლიტიკაა

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

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

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

შეამოწმეთ რა არსებობს, სანამ მარშრუტიზაციას გამართავთ

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

დაიწყეთ იმით, რაც ჩატვირთულია და იმით, რაც ნამდვილად დამყარებულია:

swanctl --list-conns
swanctl --list-sas

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

swanctl --initiate --child hq-lan

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

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