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

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

დაიწყეთ ლოკალური მისამართიდან, რომელსაც კვანძი აცხადებს

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

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

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

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

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

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

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

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

ხელის ჩამორთმევის შემდეგ მოქმედებს overlay-ის წვდომის წესები

Nebula-ს firewall წესები მოქმედებს overlay-ის შიგნით, გვირაბის დამყარების შემდეგ. ისინი ადარებს ჰოსტებს, ჯგუფებს, პორტებსა და პროტოკოლებს და წყვეტს, შეიძლება თუ არა პაკეტი შევიდეს ლოკალურ ჰოსტში ან გავიდეს მისგან. ისინი არ ირჩევს ბოლო წერტილს ქვედა ქსელში.

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

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

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

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

lighthouse:
  local_allow_list:
    interfaces:
      docker0: false
  remote_allow_list:
    192.168.0.0/16: true
    default: false

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

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

გამოიყენეთ relay, როცა პირდაპირი ბოლო წერტილი მიუწვდომელია

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

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

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

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