მარშრუტიზაციის წესი კითხულობს პაკეტის ნიშანს და არა conntrack-ს
პოლიტიკაზე დაფუძნებული მარშრუტიზაცია კითხულობს პაკეტის ნიშანს; conntrack ინახავს სხვა მნიშვნელობას უფრო ხანგრძლივი სიცოცხლით. მათ შორის კოპირება ის ნაბიჯია, რომელიც ვიღაცამ უნდა დაწეროს.
ოთხი შემოწმება ჰყოფს მოქმედ ნიშნის წესს მოქმედ მარშრუტს: რომელ ნიშანს კითხულობს წესი, ატარებს თუ არა პაკეტი მას ძიების მომენტში, აღდგა თუ არა კავშირის ნიშანი შემდგომ პაკეტებზე და შესაბამისი წესის ნიღაბი და პრიორიტეტი აძლევს თუ არა მას მოქმედების საშუალებას. მზარდი მრიცხველი მხოლოდ იმას ამტკიცებს, რომ რაღაც წესი რაღაცას დაემთხვა. ის არაფერს ამბობს იმაზე, თუ რას ატარებდა პაკეტი, როცა ბირთვმა თავისი გზა აირჩია.
ორი ნიშანი სხვადასხვა ადგილზე ცხოვრობს და სხვადასხვა გრაფიკით იწურება.
ორი ნიშანი, ორი სიცოცხლე
პაკეტის ნიშანი ერთ skb-ს ეკუთვნის, მასთან ერთად გადის კაუჭებში და მას მოიხმარს პოლიტიკური მარშრუტიზაციის fwmark-ის ამომრჩევი. კავშირის ნიშანი conntrack-ის ჩანაწერს ეკუთვნის, რჩება ამ ნაკადის პაკეტებში და უხილავია მარშრუტიზაციის წესისთვის, სანამ რაღაც მას უკან არ დააკოპირებს. პაკეტის ნიშნის კავშირში შენახვა შენახვაა; მისი აღდგენა ცალკე მოქმედებაა. არც ერთი არ ხდება თავისთავად.
ამიტომ წესების ნაკრები შეიძლება თანმიმდევრულად გამოიყურებოდეს, მაშინ როცა მარშრუტის გადაწყვეტილება ნულს ხედავს: მნიშვნელობა შენახული იყო და ვერაფერმა არ აღადგინა იგი.
მათ შორის კოპირება ნაბიჯია, რომელსაც თქვენ წერთ
ორი მნიშვნელოვანი დებულება საპირისპირო მიმართულებით მუშაობს: ერთი ინახავს პაკეტის ნიშანს კავშირში, მეორე ტვირთავს კავშირის ნიშანს პაკეტზე. რომელი გჭირდებათ, დამოკიდებულია იმაზე, თუ როდის ხდება კლასიფიკაცია ნაკადის მიმართ. დიზაინს შეიძლება მხოლოდ პაკეტის ნიშანი დასჭირდეს, ხოლო conntrack-ით მონიშვნის დამატება იმის გამო, რომ რაღაც გვერდის ავლის ხერხი ორივეს იყენებდა, ის გზაა, რომლითაც მარტივი პოლიტიკა მეორე წარუმატებლობის რეჟიმს იძენს.
ct mark set meta mark meta mark set ct mark
ჩაწერეთ მიმართულება წესის გვერდით, რადგან ის სინტაქსიდან ერთი შეხედვით აშკარა არ არის. პირველი ხაზი ინახავს, მეორე აღადგენს და არც ერთი არ გულისხმობს მეორეს.
დააკლასიფიცირეთ იმ ძიებამდე, რომელიც მას მოიხმარს
ლოკალურად წარმოქმნილი ტრაფიკი და LAN-იდან გადამისამართებული ტრაფიკი სხვადასხვა კაუჭში გადის და მარშრუტის გადაწყვეტილებებს სხვადასხვა მომენტში აღწევს. გამავალი წესი, რომელიც თავად მარშრუტიზატორის კავშირებზე მუშაობს, არ ამტკიცებს, რომ გადამისამართებული კლიენტის პაკეტი მის ძიებამდე მოინიშნა. მოათავსეთ კლასიფიკაცია იქ, სადაც მისი მომხმარებელი ძიება ჯერ არ მომხდარა, და შეამოწმეთ, გადაწერენ თუ არა მნიშვნელობას იმავე ჯაჭვის შემდგომი წესები. ჯაჭვის შიგნით თანმიმდევრობა კონფიგურაციის ნაწილია და არა იმპლემენტაციის დეტალი.
კავშირის მდგომარეობის შენარჩუნებასაც ცხადი გეგმა სჭირდება. თუ ნაკადის მხოლოდ პირველი პაკეტი კლასიფიცირდება, შემდგომ პაკეტებს შენახული ნიშნის აღდგენა სჭირდებათ, თორემ ისინი ნიშნის გარეშე გზას გაუყვებიან. ეს არის განსხვავება კავშირს აღწერილ ნიშანსა და პაკეტს აღწერილ ნიშანს შორის.
ჰკითხეთ მარშრუტს ნიშნიანი კითხვა
ip route get 10.77.0.10 mark 0x2
შეამოწმეთ წესები და ცხრილი, შემდეგ ჰკითხეთ მარშრუტს ნიშნის ჩართვით, აგრეთვე წყარო ან შემავალი ინტერფეისი, როცა ისინი პოლიტიკაზე გავლენას ახდენენ. ჩვეულებრივი ნიშნის გარეშე ძიება სხვა კითხვას პასუხობს და სიამოვნებით შეგატყობინებთ იმ გზას, რომელიც არ გინდოდათ. შეამოწმეთ წესის ნიღაბი და პრიორიტეტი, ისევე როგორც მისი მნიშვნელობა, და დარწმუნდით, რომ არჩეული ცხრილი შეიცავს გამოსადეგ მარშრუტს.
მზარდი მრიცხველი მტკიცებულებაა იმისა, რომ რაღაც წესი რაღაც პაკეტს დაემთხვა. ეს არ არის მტკიცებულება იმისა, რომ საბოლოო პაკეტი ატარებდა სასურველ ნიშანს სწორ გადაწყვეტილების წერტილში.
წაიკითხეთ ნიშანი, მიმართულება, დრო და ნიღაბი. ოთხი შემოწმება და მარშრუტი წყვეტს საიდუმლოებას.