Cầu TAP cô lập giữa hai bo mạch qua OpenVPN
Cầu chuyển tiếp khung giữa các cổng thành viên, và địa chỉ máy chủ thuộc về chính cầu. Kết nối các cổng bàn thử mà không lộ quản trị.
Hai bo mạch phát triển cần chia sẻ một phân đoạn Ethernet trong khi bàn thử của chúng nằm ở các tòa nhà khác nhau. Đường hầm đã tồn tại và đã mang Ethernet, nên phần việc còn lại trông như ba lệnh và không phải vậy. Việc máy chủ làm gì với một khung đã qua cầu, địa chỉ của chính máy tính nằm ở đâu, và cầu không tạo ra ranh giới nào là ba sự thật riêng biệt, và sai ở điều thứ hai chính là lý do thường gặp khiến một phòng thí nghiệm chạy chập chờn và quyền truy cập quản trị của nó âm thầm suy giảm. Không sự thật nào trong ba điều đó hiện ra trên sơ đồ cấu trúc liên kết.
Đường đi bên dưới giả định một kết nối TAP đã xác thực giữa hai máy tính Linux, một cổng có dây chuyên dụng cho mỗi bàn thử, và một giao diện quản trị không thuộc thí nghiệm. Thứ tự quan trọng: khung trước, địa chỉ sau, ranh giới cuối cùng.
Cầu thực sự di chuyển gì
Cầu là một bộ chuyển mạch được triển khai trong phần mềm. Nó học địa chỉ MAC nào xuất hiện sau cổng thành viên nào và chuyển tiếp khung giữa các thành viên mà không tra bảng định tuyến IP. Không có gì trong mô tả đó liên quan đến mạng con, cổng mặc định hay tuyến mặc định, đó là lý do bật chuyển tiếp IP không tạo ra kết nối này và vì sao ping có thể thành công trong khi lưu lượng khác vẫn thất bại. Một bo mạch có thể đến được đối tác mà không cần cấu hình tuyến mặc định nào, điều khiến những người mong lớp hai hành xử như lớp ba ngạc nhiên.
Mỗi máy tính đóng góp một cổng có dây cho cầu và thiết bị TAP cho cùng cầu đó, nên một khung từ bo mạch đi vào cổng cục bộ, được chuyển đến thiết bị TAP, băng qua đường hầm, đến thiết bị TAP của đối tác và được chuyển ra bo mạch của đối tác. Đường hầm là một cổng thành viên như bất kỳ cổng nào khác, và cầu không biết cũng không quan tâm rằng có VPN phía sau. Chính sự đối xứng đó khiến ví dụ dễ suy luận: mỗi bên có một cổng hướng về phòng thí nghiệm và một cổng đường hầm, và không bên nào đặc biệt.
Board A -- bench0 -- br-test -- tap-bench
| OpenVPN TAP
Board B -- bench0 -- br-test -- tap-benchNhững cái tên giống nhau trên cả hai máy tính là tên cục bộ, không phải đối tượng chia sẻ. Có một đường Ethernet giữa các bàn thử, không có cáp thứ hai và không có đường hầm thứ hai đóng vòng lặp; một cầu thấy cùng một MAC đến trên hai cổng sẽ vui vẻ chuyển tiếp vòng tròn.
Đánh địa chỉ cho cầu, không phải các cổng thành viên
Danh tính của máy tính trên phân đoạn phòng thí nghiệm thuộc về thiết bị cầu. Các cổng thành viên vẫn không có số, vì cổng là thành viên chuyển tiếp và một địa chỉ trên đó sẽ tạo ra chủ sở hữu thứ hai cạnh tranh của cùng phân đoạn. Đây là chỗ sửa mà hầu hết công thức làm tay làm sai: chúng đánh địa chỉ cho cả thiết bị TAP và cầu, rồi tự hỏi đối tác thực sự đến được cái nào.
ip link add br-test type bridge
ip link set bench0 master br-test
ip link set tap-bench master br-test
ip address add 172.30.90.2/24 dev br-test
ip link set bench0 up
ip link set tap-bench up
ip link set br-test upĐối tác dùng cùng hình thức với một địa chỉ máy chủ khác, và các bo mạch lấy địa chỉ trong cùng dải với địa chỉ cầu của máy tính làm bước nhảy tiếp theo nếu cần. Dùng dải tài liệu cho đến khi kế hoạch được thống nhất, và đặt trước dải để nó không xung đột với bất cứ thứ gì văn phòng đã định tuyến. Trước khi chạy bất kỳ phần nào, xác nhận các cổng thành viên không mang địa chỉ sót lại, không có máy khách DHCP và không thuộc cầu khác, và đồng bộ việc đánh địa chỉ thiết bị TAP qua thứ sở hữu cấu hình đường hầm để nó không khôi phục địa chỉ sau này.
Vì sao một cổng chuyên dụng cho mỗi bàn thử
Một cổng có dây chuyên dụng là thứ ngăn thí nghiệm trở thành thay đổi trên toàn văn phòng. Giao diện quản trị mang SSH, tuyến mặc định và kết nối VPN bên ngoài, và không thứ nào trong đó thuộc về một cầu có mục đích là di chuyển khung phòng thí nghiệm.
Kết nối bộ điều hợp quản trị đặt LAN của văn phòng cách bo mạch phát triển một quyết định chuyển tiếp, và một bo mạch hành xử tệ ở lớp hai đúng là loại thiết bị bạn không muốn trên phân đoạn đó. Bộ điều hợp Wi-Fi còn tệ hơn: bắc cầu một giao diện không dây ở chế độ hạ tầng không hành xử như bắc cầu Ethernet, và sự cố gây bối rối thay vì sạch sẽ.
Giữ dải phòng thí nghiệm ngoài mọi phạm vi DHCP sản xuất. Nếu các bo mạch sau này cần địa chỉ động, một bộ cấp phát được ủy quyền với một nhóm là cách sắp xếp duy nhất còn dự đoán được; các bộ định tuyến thông thường của hai cơ sở trả lời trên cùng phân đoạn tạo ra những địa chỉ không ai giải thích được.
Ranh giới mà cầu không tạo ra
Bắc cầu không phải định tuyến, và cũng không phải cô lập. Các khung đi qua cầu vẫn có thể đến các móc lọc của máy chủ, tùy theo đường bridge-netfilter đã cài, nên chính sách hiệu lực phải được kiểm tra chứ không phải giả định. Tắt tường lửa vì mất một khung đánh đổi một lỗi cụ thể lấy một lỗi chung.
Chuyển tiếp IP giữa cầu và mọi giao diện quản trị hoặc uplink nên tiếp tục tắt hoặc bị từ chối rõ ràng, và đó là một kiểm soát tách biệt với tư cách thành viên cầu. Một bo mạch chọn địa chỉ phòng thí nghiệm của máy tính làm cổng mặc định kiểm tra đúng điều này: nếu lưu lượng quản trị đi qua được, ranh giới bạn định có chưa từng tồn tại.
Hai họ nữa xứng đáng một quyết định rõ ràng. Kế hoạch địa chỉ không làm cầu chỉ còn IPv4, nên IPv6 và các EtherType khác cần kế hoạch hoặc bộ lọc riêng. Và một ping thành công không nói gì về việc các gói quảng bá khám phá, nhóm multicast hay khung jumbo của bo mạch có đi qua đường hay không, vì đó là các lớp lưu lượng khác nhau với giá trị mặc định khác nhau.
Cuối cùng, vận chuyển và bí mật là hai giao dịch khác nhau. TAP mang Ethernet; dịch vụ OpenVPN cung cấp sự bảo vệ xung quanh. Một lớp phủ VXLAN cũng mang Ethernet và tự nó không cung cấp bí mật, nên thay thế cái này bằng cái kia thay đổi thuộc tính bảo mật ngay cả khi sơ đồ cấu trúc liên kết trông giống hệt.
Tính bền vững và các kiểm thử chứng minh
Một lệnh gõ một lần sau khi kết nối không phải là cấu hình. Hãy làm bền vững cầu, tư cách thành viên cổng và địa chỉ máy chủ duy nhất thông qua trình quản lý mạng hiện có của máy tính, và gắn kết nối với sự xuất hiện của thiết bị TAP để việc kết nối lại không để lại một cầu với thành viên biến mất.
bridge link show
ip -d link show br-test
bridge fdb show br br-test | headSau đó kiểm tra những gì các bo mạch thực sự cần ở cả hai chiều, kết nối lại đường hầm và khởi động lại một máy tính theo kế hoạch phục hồi đã được phê duyệt. Xác nhận ba điều sau đó: quyền truy cập quản trị vẫn hoạt động độc lập, không xuất hiện địa chỉ phòng thí nghiệm trùng lặp và không có giao diện sản xuất bất ngờ nào gia nhập cầu. Chính sự kết hợp đó là bằng chứng rằng thí nghiệm vẫn nằm trong bàn thử của nó.