VPN định tuyến hay LAN cầu nối cho liên kết chi nhánh tới lab
Cấp cho mỗi site tiền tố riêng và chỉ định tuyến những subnet của lab mà bạn cần. Cầu nối LAN mua cho bạn khả năng khám phá và trao cho bạn mọi gói quảng bá ở cả hai site.
Có hai cách để một chi nhánh đến được lab tại nhà, và khác biệt không nằm ở một thiết lập. Bạn có thể định tuyến giữa các tiền tố riêng biệt, để mỗi site giữ miền quảng bá của riêng mình, hoặc cầu nối hai LAN thành một, để quảng bá và lưu lượng khám phá hành xử như thể mọi người đều ở trong cùng một phòng. Định tuyến là thiết kế chịu được va chạm với mạng thật. Cầu nối là thiết kế làm cho tuần đầu dễ dàng và sự cố đầu tiên trở nên thú vị. Phần so sánh dưới đây nói về những gì mỗi cách mang lại và cái giá phải trả, sau đó là cách làm cho phiên bản định tuyến có thể kiểm chứng được.
Hai cách kết nối, một đánh đổi rõ ràng
Liên kết định tuyến coi lab tại nhà là một mạng từ xa có địa chỉ riêng. Chi nhánh yêu cầu tiền tố của lab, đường hầm mang các gói đó, và cổng của lab trả lời từ subnet của chính nó. Không có gì trong bảng ARP của chi nhánh thay đổi, và không có phần nào trong phạm vi DHCP của lab đến được chi nhánh.
Liên kết cầu nối mở rộng một miền lớp 2 trên cả hai site. Các giao thức khám phá hoạt động, thiết bị tự động xuất hiện, và mọi gói quảng bá, mọi yêu cầu ARP và mọi gói multicast giờ đây là ứng viên để đi qua đường hầm, tức là một lượng lớn lưu lượng do các giao thức được thiết kế cho một đoạn mạng cục bộ chứ không phải cho WAN có MTU khác và thời gian khứ hồi thay đổi chuyên chở.
Định tuyến mang lại gì
Lợi ích đầu tiên là bán kính thiệt hại. Một vòng lặp, một máy chủ DHCP không mong muốn hay một trận lụt quảng bá vẫn nằm trong site đã tạo ra nó, vì router không chuyển tiếp quảng bá. Thứ hai là sự rõ ràng về địa chỉ: tiền tố của chi nhánh và tiền tố của lab khác nhau, nên đích của một gói cho bạn biết site nào phải trả lời, và một quy tắc tường lửa có thể nói «chi nhánh tới subnet của lab» thay vì «mọi nơi tới mọi nơi».
Thứ ba là nó khớp với những gì đường hầm thực sự vận chuyển. Chính sách IPsec là một cặp tiền tố, và đường chuyển tiếp ở mỗi bên là định tuyến IP thông thường với chức năng chuyển tiếp được bật trên cổng:
sysctl -w net.ipv4.ip_forward=1
ip route add 10.20.0.0/24 via 192.168.50.1
ip route get 10.20.0.40
Điều bạn từ bỏ là khám phá qua quảng bá. Đó là mất mát thật, và nên được thay thế có chủ đích thay vì lách đi bằng cách cầu nối mọi thứ.
Cái giá của việc cầu nối
Cầu nối phải mang khung lớp 2 qua đường hầm, nghĩa là đóng gói như GRE hay VXLAN trên IPsec thay vì một đường hầm đơn thuần dựa trên chính sách. Khi điều đó tồn tại, hai site chia sẻ một miền sự cố. Spanning tree nhìn đường hầm như một liên kết, lưu lượng quảng bá tiêu tốn băng thông đường hầm, và bất kỳ thiết bị nào giả định một đoạn mạng có độ trễ thấp đều hành xử sai theo những cách khó quy cho bên nào.
Nó cũng bỏ đi việc kiểm tra địa chỉ giúp bạn trung thực. Với một tiền tố phẳng, địa chỉ trùng không phải lỗi định tuyến mà là hai máy chủ lặng lẽ ăn cắp lưu lượng của nhau, và tiền tố chồng lấn giữa chi nhánh và lab là chuyện thường trong các thiết lập lab tại nhà, nên cầu nối không giải quyết xung đột đó; nó phân tán xung đột.
Lập luận bảo mật thường là cái quyết định. Cầu mở rộng đoạn mạng nơi các giao thức liên kết cục bộ hoạt động, nên một thiết bị trong chi nhánh có thể nói chuyện với những thiết bị lab chưa bao giờ được dự định cho phép truy cập từ bên ngoài. Nếu lab có hypervisor, bảng điều khiển lưu trữ và giao diện quản trị trên cùng một mạng phẳng, thì nay đó là một đoạn mạng chung với chi nhánh.
Tên mà không cần quảng bá
Lý do người ta cầu nối thường là khám phá: một máy in, một thiết bị media hay một máy chủ lab không bao giờ hiện trong danh sách. Câu trả lời định tuyến là một dịch vụ tên. Công bố các máy chủ lab trong một vùng mà resolver của chi nhánh với tới được, rồi để người dùng kết nối bằng tên thay vì quét mạng. Việc đó vất vả hơn lúc đầu và nhẹ nhàng hơn nhiều ở mọi thay đổi về sau.
Khám phá multicast là trường hợp khó hơn, và nó đáng được chính xác. Các giao thức như mDNS dùng multicast liên kết cục bộ, thứ mà router mặc định không chuyển tiếp, nên một máy chủ lab thiếu trong danh sách khám phá vẫn có thể truy cập được ở địa chỉ đã được ghi lại. Nếu một dịch vụ cụ thể thực sự cần multicast, hãy lập kế hoạch cho riêng giao thức đó, với một bộ phản xạ hoặc một quy tắc chuyển tiếp có mục tiêu, thay vì cầu nối cả LAN như một cách sửa chung.
Bộ phản xạ cũng không phải thắng lợi miễn phí. Nó đưa vào đúng loại lưu lượng nhiều chuyện mà bạn đang cố tránh, từng dịch vụ một, và nó cần một người chủ sẽ nhận ra khi một thiết bị bắt đầu quảng cáo nhiều hơn trước. Hãy chọn nó theo từng dịch vụ, và ghi lại lý do. Ghi lại dịch vụ nào cần nó và nó quảng cáo những gì, vì một bản cập nhật firmware có thể thay đổi danh sách đó mà không báo cho ai.
Làm cho thiết kế định tuyến có thể kiểm chứng
Chọn một mục tiêu, chẳng hạn giao diện web của lab trên subnet máy chủ riêng của nó, và chứng minh theo cả hai chiều. Từ một máy chủ trong chi nhánh, xác nhận địa chỉ và dịch vụ đang lắng nghe tại chỗ, rồi kết nối qua đường hầm và lặp lại. Một đường hầm đang dựng chỉ chứng minh các cổng đồng ý với nhau; về tường lửa của máy chủ hay tuyến quay về, nó không chứng minh gì.
Cổng thông thường của lab cần một tuyến quay về tiền tố của chi nhánh trừ khi thiết kế cố ý chuyển đổi nguồn, và tường lửa của chính máy chủ phải chấp nhận dải từ xa được phép. Không cái nào trong hai cái đó được cấu hình bởi một đường hầm thành công. Ghi chú chuyển tiếp của strongSwan mô tả đường đi của gói mà phải hoạt động ở mỗi bên.
Sau đó cũng thử một đích bị từ chối. Một người dùng chi nhánh chỉ cần một ứng dụng không cần bảng điều khiển hypervisor, và cách duy nhất để biết chính sách là thật là thử đúng thứ mà nó phải từ chối. Ghi lại các tiền tố, sự phụ thuộc vào resolver và kết quả kiểm tra, và một thay đổi về sau ở bất kỳ site nào có thể được xem lại trong vài phút thay vì dựng lại từ trí nhớ.