Vì sao đặt trước DHCP không phải IP tĩnh cho máy chủ VPN của bạn
Đặt trước khớp với một định danh máy khách, không phải một cỗ máy, và nó không bao giờ làm IP công khai của bạn thành tĩnh. Điều gì thực sự di chuyển địa chỉ của máy chủ VPN tại nhà.
Tôi chuyển một hộp VPN tại nhà từ Wi-Fi sang Ethernet và địa chỉ “vĩnh viễn” của nó thay đổi ngay tối hôm đó. Không có gì hỏng trên router. Đặt trước đã khớp với bộ điều hợp không dây, và bộ điều hợp đó không còn trên đường đi nữa.
Cùng một hiểu lầm có nửa còn lại. Sửa địa chỉ LAN không làm gì cho địa chỉ mà bạn bè bạn kết nối tới, và không liên quan gì đến nhóm riêng mà VPN cấp cho máy khách. Ba địa chỉ, ba kiểu hỏng riêng biệt, và chỉ một trong số đó là việc của một đặt trước.
Đặt trước khớp với một máy khách, không phải một thiết bị
Trong DHCPv4 đặt trước gắn với địa chỉ phần cứng của máy khách; trong DHCPv6 nó gắn với một DUID mà máy khách được cho là sẽ giữ. Trường hostname chỉ là nhãn cho con người. Điều router thực sự so sánh là định danh đến trong yêu cầu.
Hãy đọc mục này như một điều kiện: khi định danh này hỏi, hãy trao địa chỉ này. Gia hạn giữ nguyên hợp đồng thuê chừng nào sự khớp còn đúng, và khởi động lại chỉ đơn giản hỏi lại. Khi định danh thay đổi, yêu cầu trượt khỏi đặt trước và máy khách lấy bất cứ thứ gì nhóm động cung cấp. Không lỗi, không cảnh báo, chỉ là một địa chỉ khác.
OpenWrt cho thấy hình dạng một cách rõ ràng. Một khối config host trong /etc/config/dhcp gắn tên, MAC và địa chỉ lại với nhau, và tài liệu về hợp đồng thuê tĩnh giải thích cách mục đó tương tác với nhóm. Các router khác giấu ba trường ấy sau những nhãn khác.
Nơi sự khớp lặng lẽ rơi mất
Thay phần cứng là trường hợp phổ biến. Đổi card mạng, hoặc chuyển máy giữa Ethernet và Wi-Fi, và địa chỉ mà router thấy cũng thay đổi theo. Đặt trước cũ vẫn nằm trong danh sách, trông vẫn đúng.
Cài lại là trường hợp thứ hai, và nó cắn mạnh nhất ở IPv6. Một bản cài mới có thể tạo DUID mới trong khi hợp đồng thuê IPv4 cũ vẫn còn hiệu lực, nên địa chỉ v4 sống thêm một lúc và mục v6 ngừng áp dụng mà không có chỉnh sửa nào nhìn thấy được.
Trường hợp thứ ba là định danh máy khách được ghim. Nhiều máy khách DHCP cho phép đặt một chuỗi định danh thay vì dùng MAC. Nếu một bản nâng cấp hoặc việc viết lại cấu hình bỏ mất thiết lập đó, sự khớp biến mất dù máy không hề di chuyển.
Trường hợp thứ tư là trùng lặp: một khối cũ và một khối mới cho cùng một máy chủ. Máy chủ trả lời bằng quy tắc nào khớp, thường là địa chỉ trong nhóm mà bạn muốn tránh. Hãy xóa mục cũ thay vì thêm mục thứ hai.
Cấu hình phía máy chủ và cái giá của nó
Đặt địa chỉ ngay trên máy chủ loại bỏ hoàn toàn câu hỏi về sự khớp. Giao diện khởi động với địa chỉ đó dù DHCP có trả lời hay không, và đó chính là điều bạn muốn ở một cỗ máy phải truy cập được sau khi router khởi động lại.
Cái giá là quyền sở hữu. Giờ bạn tự cung cấp tiền tố, cổng và các bộ phân giải, và bạn phải tự giữ địa chỉ ngoài nhóm động. Trên Ubuntu với netplan, /etc/netplan/01-vpn.yaml mang nó:
network:
version: 2
ethernets:
eth0:
dhcp4: false
addresses: [192.168.50.10/24]
routes:
- to: default
via: 192.168.50.1
nameservers:
addresses: [192.168.50.1]Người dùng NetworkManager đạt cùng trạng thái với nmcli con mod "Wired connection 1" ipv4.method manual ipv4.addresses 192.168.50.10/24 ipv4.gateway 192.168.50.1, rồi nmcli con up "Wired connection 1". Hãy áp netplan bằng netplan try ở lần thử đầu tiên thay vì netplan apply; một cổng gõ sai sẽ đưa hộp ra khỏi mạng và để bạn đi tìm bàn điều khiển.
Dù vậy hãy giữ một đặt trước khớp. Nó không thừa. Mục này ghi lại địa chỉ ở phía router và ngăn máy chủ DHCP cấp địa chỉ đó cho một thiết bị khách nếu ai đó mở rộng nhóm về sau.
Một địa chỉ LAN ổn định không phải một điểm cuối công khai
Trỏ chuyển tiếp cổng vào 192.168.50.10 và quy tắc sống sót qua mọi thay đổi phía LAN. Nó không cho bạn một địa chỉ internet ổn định. IP công khai của bạn thuộc về nhà cung cấp và có thể dịch chuyển khi kết nối lại hoặc thay modem, đó là việc của DNS động.
Sau NAT cấp nhà mạng không có IPv4 công khai nào để chuyển tiếp, và không đặt trước nào tạo ra một cái. Hãy kiểm tra trang WAN của router trước mọi thứ khác: nếu địa chỉ nằm trong dải chia sẻ, chuyển tiếp vào không thể hoạt động, dù đặt trước có sạch đến đâu.
Địa chỉ thứ ba là nhóm đường hầm, thường là thứ gì đó như 10.8.0.0/24. Những địa chỉ đó chỉ tồn tại bên trong đường hầm và không bao giờ xuất hiện trên LAN. Nhầm chúng với địa chỉ LAN của máy chủ là cách một cổng cuối cùng bị chuyển tiếp tới một máy khách chỉ trực tuyến khi còn kết nối.
Kiểm tra đường đi theo thứ tự nó đứt
Bắt đầu ở router. So mục trong bảng hợp đồng thuê với mục tiêu của đặt trước; nếu máy chủ đã lấy một địa chỉ trong nhóm, định danh là sai, và ip link show trên máy chủ cho bạn giá trị để so sánh.
Rồi đến máy chủ. ip -4 addr show eth0 phải báo địa chỉ và tiền tố mong đợi. Một địa chỉ thứ hai trên cùng giao diện thường có nghĩa DHCP vẫn đang chạy bên cạnh cấu hình tĩnh của bạn.
Rồi đến chuyển tiếp. Xác nhận đích vẫn bằng địa chỉ bạn vừa kiểm chứng, và xác nhận có gì đó đang lắng nghe với ss -lntp. Một chuyển tiếp nhắm vào cổng đóng trông từ bên ngoài giống hệt một chuyển tiếp hỏng.
Kết thúc từ bên ngoài, trên một điện thoại đã tắt Wi-Fi. Chính phép thử đó tách “địa chỉ nội bộ sai” khỏi “khả năng truy cập công khai hỏng”, hai vấn đề mà cấu hình này cứ trộn lẫn.
Ghi lại ba địa chỉ, LAN, công khai và nhóm đường hầm, và đánh dấu hệ thống nào sở hữu từng cái. Khi tháng sau một kết nối hỏng, bạn sẽ biết phải xem cái nào thay vì đổi cả ba cùng lúc.