სახლის VPN სერვერი თუ ღრუბლოვანი სერვერი: რომელი აღწევს თქვენს NAS-ს?
გვირაბი ადის, მაგრამ სახლის NAS მიუწვდომელი რჩება. აირჩიეთ endpoint-ის მდებარეობა იმ რესურსის მიხედვით, რომელსაც უნდა შეეხოთ, შემდეგ შეამოწმეთ მარშრუტი.
გვირაბი ადის, კლიენტი მწვანე წერტილს აჩვენებს, და ssh 192.168.1.20 მაინც ჩამოკიდებულია ვადის გასვლამდე. ზუსტად ეს მომიხდა მას შემდეგ, რაც პატარა ღრუბლოვანი ინსტანსი ვიქირავე და WireGuard დავაყენე: ხელის ჩამორთმევა წესრიგშია, DNS წესრიგშია, და ჩემს მაგიდაზე მდგარი NAS ისე მიუწვდომელია, თითქოს მთვარეზე იყოს. გვირაბში ბრალი არ იყო. Endpoint ისეთ ქსელში იდგა, საიდანაც ჩემს სახლამდე მარშრუტი არ არის. Endpoint-ის მდებარეობა წყვეტს, რომელი ქსელებია მეზობელი, ამიტომ აირჩიეთ იგი იმ რესურსის მიხედვით, რომელსაც ჯერ უნდა მიაღწიოთ, ხოლო ჰოსტინგი მეორედ შეადარეთ.
გვირაბი აღწევს მხოლოდ იმ ქსელებამდე, რომელთა მარშრუტიზაციაც endpoint-ს შეუძლია
VPN თქვენს კლიენტს ანიჭებს მისამართს თავად endpoint-ის მარშრუტიზაციის დომენში. როცა კლიენტი პაკეტს 192.168.1.20-ზე აგზავნის, endpoint-მა უნდა იცოდეს სად მიდის ის. ღრუბლოვანი VM-ის ცხრილი იცნობს პროვაიდერის VPC ქვექსელებს; თქვენი LAN-ის შესახებ მას არასდროს სმენია. დაკავშირებული და მისაწვდომი ორი სხვადასხვა ფაქტია, და სახლისა და ღრუბლის არევის უმეტესობა იმიდან მოდის, რომ პირველს მეორის მტკიცებულებად თვლიან.
ერთი ბრძანება წყვეტს ამას. Endpoint-ზე ip route get 192.168.1.20 ან LAN ინტერფეისს ასახელებს, ან ნაგულისხმევ მარშრუტზე მიუთითებს. სახლის მანქანაში პასუხი LAN მხარეა. ღრუბლოვან ინსტანსში პაკეტი ინტერნეტისკენ გადის და იღუპება. net.ipv4.ip_forward=1 ჩართვა და MASQUERADE წესის დამატება ამას არ ცვლის, რადგან გადასაგზავნი არაფერია, სანამ სახლის მხარეს რაღაც ღრუბელში კავშირს არ დაასრულებს.
სახლის შემთხვევას მეორე ნახევარი აქვს: დაბრუნების გზა. LAN-იდან გვირაბის ყუთით გამავალი პაკეტები NAT-ს გადის, ან LAN-ს სჭირდება სტატიკური მარშრუტი გვირაბის ქვექსელისკენ. როცა მხოლოდ ერთი მიმართულება მუშაობს, შეამოწმეთ sysctl net.ipv4.conf.all.rp_filter. მკაცრი უკუმარშრუტის ფილტრაცია აგდებს პასუხებს, რომლებიც მოდის სხვა ინტერფეისზე, ვიდრე მარშრუტი ითვალისწინებს, და სიმპტომი ზუსტად ფაირვოლის წესს ჰგავს.
წაიკითხეთ სიმპტომი კონფიგურაციაზე შეხებამდე
გვირაბი არ იქმნება: გასაღებები, endpoint-ის მისამართი ან დაბლოკილი UDP პორტი. გვირაბი ზევითაა, მაგრამ LAN ჰოსტები მკვდარია: განლაგება და მარშრუტიზაცია. გვირაბი ზევითაა, მაგრამ დათვალიერება მკვდარია: გადამისამართება, NAT ან DNS. ეს სამი შრე და სამი სხვადასხვა შემოწმებაა, და უკვე სწორი კონფიგურაციის გადაწერა საღამოს ფლობს.
| Symptom | First suspect | Check |
|---|---|---|
| Handshake fails, no transfer | Keys, endpoint port, UDP blocked | wg show, then the port from outside |
| Peer pings, LAN host times out | No route to the LAN | ip route get on the endpoint |
| Tunnel up, name resolution fails | DNS options in the peer config | Resolve a name from the client |
| Large transfers reset the connection | MTU | Lower the tunnel MTU and retry |
სახლიდან შემომავალი ხელმისაწვდომობა ცალკე შემოწმებას იმსახურებს, რადგან ის წყვეტს, საერთოდ შესაძლებელია თუ არა ჰოსტინგი სახლში. შეადარეთ WAN მისამართი, რომელსაც თქვენი როუტერი აცხადებს, იმ მისამართს, რომელსაც გარე ჰოსტი ხედავს. თუ ის 100.64.0.0/10-ში ხვდება, ან ორივე არ ემთხვევა, carrier-grade NAT-ის უკან ხართ და პორტის გადამისამართება არასდროს არ იმუშავებს. რეალური ვარიანტებია რელე, ღრუბლოვანი კავშირი, რომელიც სახლიდან გარეთ რეკავს, ან endpoint-ის გადატანა.
რას გაძლევთ სახლის ჰოსტინგი და რა ღირს
სახლი ერთადერთი განლაგებაა, რომელიც ნაგულისხმევად LAN-ის შიგნითაა, და ეს არის მთელი მიზეზი, რომ იქ სერვერი დადოთ. მოწყობილობები, რომლებიც მხოლოდ ლოკალურ სეგმენტზე პასუხობენ, როგორიცაა პრინტერები და NAS-ის ადმინის გვერდები, რომლებიც არალოკალურ ქვექსელებს უარყოფენ, დამატებითი მარშრუტიზაციის გარეშე მუშაობენ. მანქანას, როუტერს და აპლინკს თქვენ თვითონ მართავთ.
ხარჯები ფიზიკურია. სახლის ატვირთვა ყველა კლიენტისთვის ერთდროულად ზედა ზღვარია, ამიტომ ვიდეოზარი და სარეზერვო ასლი ერთი მილისთვის იბრძვიან. ელექტროენერგია, დისკის ცვეთა, patch-ები, დინამიკური მისამართი, რომელსაც DDNS სჭირდება, როუტერი, რომელმაც UDP შიგნით უნდა გადაამისამართოს, და შესაძლო ორმაგი NAT — ყველაფერი თქვენზე მოდის. რასაც ხალხი გამოტოვებს, აღდგენაა: თუ ყუთი მოკვდება, სანამ სახლში არ ხართ, სახლში შესვლის თქვენი ერთადერთი გზაც მასთან კვდება. შეინახეთ მეორე მოწყობილობა იმავე გასაღებებით, ან სულაც ფიზიკური წვდომის გეგმა.
თუ გსურთ LAN-ზე წვდომა სახლში ყუთის გარეშე, ააშენეთ კავშირი და ნუ მოიმიზეზებთ. ღრუბლოვანი endpoint როუტერი ხდება: გვირაბი სახლის მხრიდან AllowedIPs = 192.168.1.0/24 -ით ღრუბლოვან peer-ზე, პლუს გადამისამართება და NAT ღრუბლოვან ყუთზე. strongSwan-ის გადამისამართების გზამკვლევი ამ კონფიგურაციის დაბრუნების ნახევარს გადის, და სწორედ იქ იშლება ამ მცდელობათა უმეტესობა. სახლის peer-ს ახლა უნდა იმუშაოს, რომ რამე იმუშაოს, ამიტომ ერთი დამოკიდებულება მეორეთი შეცვალეთ და ეს უნდა ჩაწეროთ.
რისთვის არის სინამდვილეში ღრუბლოვანი endpoint
ღრუბლოვანი endpoint ცვლის თქვენს საჯარო გასასვლელს. ტრაფიკი პროვაიდერის მისამართების დიაპაზონიდან გადის, და საიტები ხედავენ ამ მისამართს სახლის ნაცვლად. ეს არის ღირებულება, და ამიტომ ღრუბლოვანი VPN არ გაძლევთ NAS-ს: თქვენ გასასვლელი გადაიტანეთ, არა LAN.
თქვენ კვლავ მართავთ სტუმარ სისტემას, VPN სერვისს და მის სერთიფიკატებს, სანამ პროვაიდერი მართავს ჰიპერვიზორს და ფიზიკურ ქსელს, და ეს გაყოფა მნიშვნელოვანია, როცა რაღაც 2 საათზე ღამით ფუჭდება. საჯარო endpoint მუდმივად სკანირდება, ამიტომ დახურეთ მართვის პორტი, დაუშვით მხოლოდ VPN პორტი და patch-ები გააკეთეთ გრაფიკით. უსაფრთხოების ჯგუფებმა და პროვაიდერის ფაირვოლებმა ეს პორტი უნდა დაუშვან, და ზოგი ღრუბელი გადამისამართებულ ტრაფიკს აგდებს, თუ ინსტანსზე წყაროსა და დანიშნულების შემოწმებას არ მოაწესრიგებთ.
პატარა ინსტანსი მუჭა კლიენტს ფარავს, მაგრამ დაშიფვრა CPU-ის სამუშაოა, და კრედიტების ამოწურული burstable ინსტანსი განუწყვეტელი დატვირთვის ქვეშ არათანაბრად იქცევა. შეხედეთ გზას, რომელსაც რეალურად იყენებთ, და არა სპეციფიკაციის ფურცელს.
გადაწყვეტილება, რომელიც შეიძლება ჩაწეროთ
ამოცანა წყვეტს განლაგებას, არა ყუთზე დაწერილი იარლიყი. თუ სახლის LAN-ზე მოწყობილობა გჭირდებათ, ყველაზე იაფი სწორი პასუხი endpoint სახლშია; ღრუბლოვანი ყუთი მუშაობს მხოლოდ მას შემდეგ, რაც დაბრუნების კავშირს ააშენებთ. თუ სხვა საჯარო გასასვლელი გჭირდებათ, პასუხი ღრუბელია და LAN-ის კითხვა არასდროს ჩნდება. ორივეს სურვილი ლეგიტიმურია, მაგრამ ეს ნიშნავს ორ endpoint-ს, გასაღებების ორ კომპლექტს და ორ დოკუმენტირებულ მარშრუტს.
| What you need | Endpoint location | What else must exist |
|---|---|---|
| Reach a NAS or printer on the home LAN | A box on that LAN | Port forward or relay, DDNS, recovery plan |
| Browse from an exit unrelated to home | Cloud instance | Firewall and egress rules, patching |
| Both, reliably | Two endpoints, or cloud plus a link home | Separate keys, routes, documented failure modes |
შეამოწმეთ კლიენტიდან რიგით: ხელის ჩამორთმევა, peer-ის მისამართი, LAN ჰოსტი, შემდეგ გასასვლელის IP. curl -s https://ifconfig.me აჩვენებს, რას ხედავს ინტერნეტი, და ip route get 192.168.1.20 აჩვენებს, რას ფიქრობს endpoint. როცა გასასვლელის შემოწმება გადის და NAS-ის შემოწმება ჩამოკიდებულია, განლაგების პასუხი უკვე გაქვთ; კლიენტზე AllowedIPs-ის შეცვლა მარშრუტს არ შექმნის. გაყოფილი ხაზი, როგორიც 10.8.0.0/24, 192.168.1.0/24 -ია, LAN ტრაფიკს გვირაბში მხოლოდ მაშინ ინახავს, როცა ეს მარშრუტი ნამდვილად არსებობს.