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

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

უმოქმედო მოთხოვნით გვირაბს არ აქვს CHILD SA საჩვენებლად

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

ეს თანმიმდევრობა ხდის ლოგებს წაკითხვადს. ჯერ acquisition მოდის, შემდეგ IKE_SA_INIT და IKE_AUTH, შემდეგ CHILD SA. თუ ლოგი acquisition-ისთანავე მთავრდება, ტრიგერი მუშაობდა. მოლაპარაკება ჩავარდა და შემდეგი კითხვა რწმუნებებს, შეთავაზებებს ან ხელმისაწვდომობას ეხება და არა trap-ს.

Linux-ის ბირთვის backend-ით პოლიტიკის ნახვა ნებისმიერი SA-ის არსებობამდე შეგიძლიათ. გაუშვით ip xfrm policy და მოძებნეთ სელექტორი out მიმართულებით და კავშირზე მიმანიშნებელი შაბლონით. ეს ჩანაწერი მოთხოვნით მდგომარეობაა და მისი არსებობა პირველი რამაა, რაც უნდა დადასტურდეს.

start_action წყვეტს, საერთოდ დაელოდება თუ არა რამე

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

children {
    office-lan {
        local_ts = 192.168.50.0/24
        remote_ts = 192.168.70.0/24
        start_action = trap
    }
}

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

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

გაარკვიეთ, საერთოდ გაშვდა თუ არა ტრიგერი

დაიწყეთ swanctl --list-conns-ით და დაადასტურეთ, რომ child ჩატვირთულია თქვენი განზრახული ქმედებით. შემდეგ ერთი პაკეტი გაგზავნეთ local_ts-ის შიგნით მყოფი ჰოსტიდან remote_ts-ის შიგნით მყოფ მისამართზე და დააკვირდით swanctl --list-sas-ს. თუ გამოტანა არ იცვლება, არც ერთი acquisition დემონამდე არ მისულა.

ჩუმი trap-ის ორი ჩვეულებრივი მიზეზი: პაკეტი source-NAT-ზე გაიარა პოლიტიკამდე მისვლამდე და აღარ ემთხვევა local_ts-ს, ან კავშირი არასოდეს ჩატვირთულა სინტაქსის ან რწმუნების შეცდომის გამო. კვლავ გაუშვით swanctl --load-all-ი და წაიკითხეთ მისი გამოტანა სელექტორებზე შეხებამდე. ჩატვირთვაში ჩავარდნილი კავშირი პოლიტიკას არ აყენებს, ამიტომ ტრაფიკს გასაშვები არაფერი აქვს.

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

პირველი პაკეტის ლოდინი ყოველთვის სწორი გაცვლა არ არის

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

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

დაყენებული პოლიტიკა ასევე არ არის გაჟონვისგან დაცული გარანტია. თუ მოთხოვნა fail-closed-ია, firewall-მა SA-ის გარეშე ტრაფიკი უნდა ჩამოაგდოს და ეს წესი child-ის განსაზღვრების გარეთ ცხოვრობს.

ჩაწერეთ სამი სტრიქონი, რომელიც დაასრულებს შემდეგ კამათს

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

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

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