Điểm:0

WireGuard kết hợp Hub và Spoke với Point to Site

lá cờ us

Tôi muốn cấu trúc liên kết Point to Site nhưng vì máy chủ "máy khách" và "máy chủ" đều nằm trong mạng NAT của riêng chúng nên tôi cần dựa vào máy chủ thứ ba trong cấu trúc liên kết Hub và Spoke.

hình dung

Máy chủ A (trung tâm)

[Giao diện]
Khóa riêng tư = 
Địa chỉ = 10.201.50.1/32
Cổng nghe = 51820

PreUp = sysctl -w net.ipv4.ip_forward=1

[Ngang nhau]
Khóa công khai = 
IP được phép = 10.201.50.2/32

[Ngang nhau]
Khóa công khai = 
IP được phép = 10.201.50.3/32

Máy chủ B (máy chủ)

[Giao diện]
Khóa riêng tư = 
Địa chỉ = 10.201.50.2/32

PreUp = sysctl -w net.ipv4.ip_forward=1
PreUp = iptables -t mangle -A PREROUTING -i %i -j MARK --set-mark 0x40
PreUp = iptables -t nat -A POSTROUTING ! -o %i -m mark --mark 0x40 -j MASQUERADE
PostDown = iptables -t mangle -D PREROUTING -i %i -j MARK --set-mark 0x40
PostDown = iptables -t nat -A POSTROUTING ! -o %i -m mark --mark 0x40 -j MASQUERADE

[Ngang nhau]
Khóa công khai = 
Điểm cuối = 198.230.220.45:51820
IP được phép = 10.201.50.0/24
Kiên trì Keepalive = 15

Máy chủ C (khách hàng)

[Giao diện]
Khóa riêng tư = 
Địa chỉ = 10.201.50.3/32

[Ngang nhau]
Khóa công khai = 
Điểm cuối = 198.230.220.45:51820
IP được phép = 10.201.50.0/24, 10.0.0.0/24

Cả hai đồng nghiệp đều kết nối tốt với trung tâm.

giao diện: wg0
  khóa công khai: 
  khóa riêng: (ẩn)
  cổng nghe: 51820

ngang nhau: 
  điểm cuối: :63882
  IP được phép: 10.201.50.3/32
  lần bắt tay mới nhất: 35 giây trước
  chuyển: 213,07 KiB đã nhận, 15,93 KiB đã gửi

ngang nhau: 
  điểm cuối: :33868
  IP được phép: 10.201.50.2/32
  lần bắt tay mới nhất: 1 phút, 6 giây trước
  chuyển khoản: 7,19 KiB đã nhận, 5,12 KiB đã gửi

Tôi có thể ping Máy chủ B từ Máy chủ C, điều này tốt, nhưng bất kỳ kết nối nào khác đều không thành công. Ví dụ: tôi không thể ssh vào Máy chủ B, nó chỉ bị treo. Tôi không thể cuộn máy chủ web chạy trên Máy chủ B trên cổng 80, nó cũng bị treo. Không có tường lửa nào đang chạy trên Máy chủ B theo như tôi biết. Các máy chủ khác trong mạng Máy chủ B hoàn toàn không thể truy cập được.

Đánh giá cao sự giúp đỡ của bạn. Chúc mừng

Điểm:0
lá cờ cn

Chìa khóa trong tình huống này là đảm bảo IP được phép trên mỗi máy ngang hàng được cấu hình để cho phép địa chỉ IP đích của các gói bạn muốn gửi đến (hoặc gửi qua) sự ngang bằng.

Vì vậy, nếu khối CIDR cho trang cục bộ mà bạn muốn truy cập từ Máy chủ C qua Máy chủ A đến Máy chủ B là 10.0.0.0/24, đảm bảo rằng IP được phép cài đặt trên Máy chủ C cho Máy chủ A bao gồm 10.0.0.0/24 (như bạn có):

# Cấu hình Host C cho Host A ngang hàng
IP được phép = 10.201.50.0/24, 10.0.0.0/24

Và cũng là IP được phép cài đặt trên Máy chủ A cho Máy chủ B bao gồm 10.0.0.0/24 (mà bạn đang thiếu):

# Host A cấu hình cho Host B ngang hàng
IP được phép = 10.201.50.2/32, 10.0.0.0/24

Nhưng từ mô tả của bạn về việc ping hoạt động còn SSH/HTTP thì không, bạn cũng có thể gặp sự cố MTU (các gói bị phân mảnh/bị từ chối vì chúng có kích thước hơi lớn đối với một bước nhảy cụ thể trên đường đi). Hãy thử thêm cài đặt này vào [Giao diện] phần của mỗi cấu hình WireGuard:

MTU = 1280

Và bạn không cần giả mạo trên Máy chủ A (chỉ trên Máy chủ B, như bạn đã làm).


Tuy nhiên, nếu bạn muốn định tuyến tất cả các giao thông đường bộ (0.0.0.0/0) từ Máy chủ C qua Máy chủ A sang Máy chủ B, hãy thay đổi cấu hình WireGuard Máy chủ A của bạn thành:

[Giao diện]
Khóa riêng tư = ...
Địa chỉ = 10.201.50.1/24
Cổng nghe = 51820
Bảng = 123

PreUp = sysctl -w net.ipv4.ip_forward=1
PreUp = quy tắc ip thêm iif %i bảng 123 ưu tiên 456
PostDown = quy tắc ip del iif %i bảng 123 ưu tiên 456

# đến máy chủ B
[Ngang nhau]
Khóa công khai = ...
IP được phép = 0.0.0.0/0

# đến máy chủ C
[Ngang nhau]
Khóa công khai = ...
IP được phép = 10.201.50.3/32

Điều này sẽ sử dụng một bảng định tuyến tùy chỉnh (123) cho lưu lượng truy cập đó, để tránh gây rối với bảng định tuyến chính của Máy chủ A.

(Và thay đổi cấu hình Máy chủ C của bạn để sử dụng IP được phép = 0.0.0.0/0 cũng vậy, nhưng không có bất kỳ thay đổi nào khác đối với cấu hình của nó.)

lá cờ us
Cảm ơn bạn rất nhiều vì con trỏ, tôi có thể kết nối với mạng con B ngay bây giờ. Tôi không biết bạn có biết không nhưng các hướng dẫn về Wireguard của bạn vô cùng hữu ích cho cộng đồng Wireguard, không có gì giống như vậy ở bất kỳ nơi nào khác. Mọi người liên kết với họ ở khắp mọi nơi. Đã giúp tôi rất nhiều. Ngoài ra, kết nối giữa các máy chủ không hoạt động vì máy chủ nhảy có thiết lập quy tắc iptables khá nghiêm ngặt, tôi đã khắc phục điều đó ngay bây giờ.
lá cờ us
Tôi có một câu hỏi khác nếu bạn không phiền. Tôi làm cách nào để định tuyến tất cả lưu lượng truy cập từ Máy chủ C qua Máy chủ B mà không định tuyến tất cả lưu lượng truy cập từ trung tâm qua đó? Đó là điều sẽ xảy ra nếu tôi vừa thêm 0.0.0.0/0 vào AllowedIPs của cấu hình ngang hàng B trên trung tâm.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.