IPsec-ის ზედნადები: რეჟიმი, NAT-T და ალგორითმები ყველა ცვლის მას
ერთი გამოქვეყნებული ზედნადების რიცხვი აღწერს ერთ ინკაფსულაციას ერთ გზაზე. შეკრიბეთ ის სათაურები, რომლებზეც თქვენი გვირაბი რეალურად აწარმოებს მოლაპარაკებას, შემდეგ გაზომეთ გზა.
სადღაც სახელმძღვანელოში არის რიცხვი, ჩვეულებრივ სამოციდან ოთხმოც ბაიტამდე, რომელიც ვიღაცამ 1500-ს გამოაკლო ინტერფეისის MTU-ს მისაღებად. ეს რიცხვი აღწერს ერთ კონკრეტულ ინკაფსულაციას ერთ კონკრეტულ გზაზე. შეცვალეთ რეჟიმი, გარე მისამართების ოჯახი, შიფრი ან NAT-ის არსებობა და არითმეტიკა აღარ ეხება თქვენს გვირაბს.
რიცხვი სხვა გვირაბიდან მოვიდა
ზედნადები არ არის IPsec-ის თვისება აბსტრაქტული გაგებით. ეს არის იმ პაკეტის თვისება, რომელიც რეალურად იგება: შეთანხმებული რეჟიმი, გარე სათაური, დაცვის სათაური, შევსება, მთლიანობის ველი და შესაძლოა დამატებითი UDP გარსი.
IPv4-ით და NAT-ის გარეშე ტრანსპორტული რეჟიმისთვის მოცემული რიცხვი აღწერს უფრო პატარა პაკეტს, ვიდრე გვირაბური რეჟიმი IPv6-ით NAT-ის გავლის ქვეშ. ორივე სწორია თავის შემთხვევაში. ერთის მეორე განლაგებაში კოპირება სწორედ ის გზაა, რომლითაც ადამიანები აღმოჩნდებიან MTU-სთან, რომელიც დიდ გადაცემებს ამტვრევს. მარცხი ჩუმია, რადგან პატარა მოთხოვნები მუშაობას განაგრძობს.
შეკრიბეთ ის ფენები, რომლებიც ნამდვილად არსებობს
დაიწყეთ გარე IP სათაურიდან და იმოძრავეთ შიგნით. გვირაბურ რეჟიმში საწყისი პაკეტი შიგნითაა, ამიტომ გარე სათაური დამატებაა და არა ჩანაცვლება. RFC 4303 აღწერს ESP სათაურს, შევსებას და მის შემდეგ მომავალ მთლიანობის მონაცემებს.
| Layer | What it adds | When it applies |
|---|---|---|
| Outer IP header | 20 bytes for IPv4, 40 for IPv6 | Always, and 40 rather than 20 if the outer path is v6 |
| ESP header | 8 bytes of SPI and sequence number | Always |
| Block cipher IV | 8 to 16 bytes depending on the transform | When the negotiated cipher uses one |
| Padding and trailer | Padding to the block size, plus two trailer bytes | Always, and the amount varies with payload length |
| Integrity data | 12 to 16 bytes for common authenticated ciphers | When integrity protection is negotiated |
| UDP encapsulation | 8 bytes | NAT traversal on port 4500, which is common for clients behind NAT |
არც ერთი ეს სტრიქონი არ არის მუდმივი განლაგებებს შორის, ხოლო შევსების სტრიქონი მუდმივი არ არის ერთი განლაგების შიგნითაც. სწორედ ეს არის ერთი გამოქვეყნებული ზედნადების რიცხვის იმედგაცრუების მთელი მიზეზი.
ორი უბანი შეიძლება არ შეთანხმდეს ერთსა და იმავე გვირაბზე
დაცული პაკეტი მაინც უნდა გადაკვეთოს გარე გზა, და გარე გზა ყველგან ერთნაირი არ არის. PPPoE წვდომის ხაზი უფრო ნაკლებს ატარებს, ვიდრე სუფთა Ethernet სეგმენტი. მობილური ქსელი შეიძლება კიდევ უფრო შემცირდეს, და საკუთარი ტრაფიკის გვირაბიზაციის მაწარმოებელი ამატებს კიდევ ერთ ინკაფსულაციას, რომელიც არავის უხსენებია. გვირაბი, რომელიც ერთ ხაზზე მუშაობს და მეორეზე ვერ ახერხებს, აღწერს მეორე ხაზს და არა პროტოკოლს.
ორივე მიმართულება შეიძლება განსხვავდებოდეს. ასიმეტრიულმა მარშრუტმა შეიძლება მოგცეთ მომუშავე ატვირთვა და გაჩერებული ჩამოტვირთვა, რაც აპლიკაციის პრობლემად იკითხება მანამ, სანამ პაკეტების ზომებს შეხედავთ და არა ხელმისაწვდომობას. პატარა ping-ის წარმატება ძალიან ცოტას ამტკიცებს სრული ზომის პასუხის შესახებ.
გაზომეთ და არ გამოაკელით
იპოვეთ ყველაზე დიდი დეიტაგრამა, რომელიც გზაზე გადარჩება. შემდეგ შეადარეთ იმ მნიშვნელობას, რომელსაც ინტერფეისი აცხადებს:
ip link show eth0 | grep -o 'mtu [0-9]*' ip xfrm state list ping -M do -s 1400 198.51.100.7 ping -M do -s 1372 198.51.100.7 tcpdump -ni any -c 20 'esp or udp port 4500'
შეამცირეთ ping-ის ზომა, სანამ პასუხები მოვა, და ყველაზე დიდი მომუშავე მნიშვნელობა მიიჩნიეთ ამ გზის ბიუჯეტად. xfrm-ის გამოსავალი გეუბნებათ, რომელი რეჟიმი და რომელი ალგორითმები შეთანხმდა, და ეს არის ნებისმიერი პატიოსანი გამოთვლის შეტანა. ჩაწერა ადასტურებს, თუ რა არის სადენზე — ESP თუ UDP-ში გახვეული ESP — და ეს NAT-ის კითხვას გამოცნობის გარეშე წყვეტს.
ერთი მნიშვნელობა კონტროლის სიბრტყისთვისაც გამოყავით. IKE-ის ხელის ჩამორთმევის პაკეტებს სხვა სტრუქტურა აქვთ, ვიდრე მონაცემთა პაკეტებს, ამიტომ ხელის ჩამორთმევის ჩაწერიდან მიღებული ზომა მონაცემთა სიბრტყის MTU არ არის.
დააყენეთ რიცხვი თავის ადგილზე
გვირაბით გამავალი TCP-ისთვის, MSS-ის შეზღუდვა ხშირად ყველაზე ნაკლებად ინვაზიური კონტროლია, რადგან ამცირებს იმას, რასაც ბოლოები აგზავნიან, თავად გვირაბის შეცვლის გარეშე. მარშრუტზე დაფუძნებული გვირაბისთვის განზრახ დააყენეთ გვირაბის ინტერფეისის MTU და დააფიქსირეთ, რატომ. ორივეს ერთდროულად კეთება და შემდეგ გაზომვა არაფერს გეუბნებათ იმაზე, რომელმა უშველა.
ბილეთში ერთად შეინახეთ შეთანხმებული რეჟიმი, გარე ოჯახი, NAT-ის მდგომარეობა და გამრავლებადი სიმპტომი. ოთხი ფაქტის ჩაწერილი ნაკრები სჯობს დამახსოვრებულ მუდმივას, და ეს არის ამის ერთადერთი ვერსია, რომელიც შემდეგ კლიენტის განახლებას გადაურჩება.