Điểm:1

Wireguard sử dụng một máy khách làm cổng của máy khách khác

lá cờ cn

Tôi có một thiết lập Wireguard VPN về cơ bản trông như thế này:

P1 ---- S ---- P2 --- Internet

địa chỉ IP: P1 = 10.200.1,5 S = 10.200.1.1 P2 = 10.200.1.3

Tôi đang chuyển hướng tất cả lưu lượng của P1 sang S bằng cách chỉ định cho phépIps = 0.0.0.0/0 trong cấu hình máy khách của P1.

Bây giờ tôi muốn S định tuyến lưu lượng đến P2. Tôi đã thử cách sau trên S:

 thêm quy tắc ip từ tra cứu 10.200.1.5 200
 tuyến ip thêm mặc định qua 10.200.1.3 dev wg0 bảng 200
 sysctl -w net.ipv4.ip_forward=1

Tuy nhiên, khi tôi chạy tcpdump trên P2, tôi không thể thấy bất kỳ lưu lượng truy cập nào đến. Ngoài ra, P1 không có bất kỳ kết nối internet nào.

Chỉnh sửa: Kiểm tra bảng định tuyến tùy chỉnh trên S qua

tuyến ip nhận 8.8.8.8 từ 10.200.1.5 iif wg0

đưa ra phản hồi sau

8.8.8.8 từ 10.200.1.5 đến 10.200.1.3 dev wg0 bảng 200
    bộ đệm iif wg0

mà có vẻ tốt, tuy nhiên

tcpdump -nn -i wg0

trên S hiển thị không thể truy cập như dưới đây

09:58:22.207251 IP 10.200.1.5.9134 > 8.8.8.8.53: 36555+ A? play.googleapis.com. (37)
09:58:22.207270 IP 10.200.1.1 > 10.200.1.5: Không thể truy cập máy chủ ICMP 8.8.8.8, chiều dài 73
djdomi avatar
lá cờ za
tại sao bạn không để p1 kết nối trực tiếp?
lá cờ cn
p1 nằm trong mạng nội bộ và không thể truy cập internet trực tiếp
djdomi avatar
lá cờ za
mạng của bạn không rõ ràng, vui lòng cho chúng tôi biết thêm về
lá cờ cn
Những gì bạn có cho đến nay có vẻ ổn -- đảm bảo rằng bạn cũng đặt `AllowedIPs = 0.0.0.0/0` trong cấu hình `[Peer]` của S cho P2; và rằng bạn bao gồm `10.200.1.5` trong `AllowedIPs` của cấu hình `[Peer]` của P2 cho S.
lá cờ cn
Khi tôi đặt 0.0.0.0/0 vào cấu hình của P2 trên S, tôi không thể SSH vào S nữa vì (tôi tin rằng) nó chiếm hết lưu lượng và gửi đến P2, phải không?
Điểm:1
lá cờ cl
A.B

WireGuard là giao diện lớp 3, như đã nêu qua 10.200.1.3 không có tác dụng, vì nó sẽ được sử dụng cho giao thức lớp liên kết (thường là ARP) để giải quyết địa chỉ lớp 2 không tồn tại ở đây.

Cho nên

tuyến ip thêm mặc định qua 10.200.1.3 dev wg0 bảng 200

có thể được viết lại:

tuyến ip thêm bảng dev wg0 mặc định 200

Điều này giúp lưu ý rằng phần này không phải là phần chọn gói để chuyển đến P1 hoặc P2: WireGuard cũng có định tuyến nội bộ riêng: định tuyến mật mã, được thực hiện bằng cách đặt chính xác IP được phép trong cấu hình của mỗi peer. Có một hạn chế quan trọng: trái ngược với định tuyến tiêu chuẩn, IP được phép không hỗ trợ bất kỳ địa chỉ chồng chéo nào. Nếu điều này được thực hiện (như cài đặt trên máy chủ S IP được phép = 0.0.0.0/0 đối với Ngang hàng P2), điều này sẽ tự động xóa (các) địa chỉ xung đột trên (các) ngang hàng khác (như xóa IP được phép = 10.200.1.5 từ ngang hàng P1, bởi vì 0.0.0.0/0 chồng lên bất kỳ thứ gì khác) và kết nối sẽ bị ảnh hưởng (S không định tuyến tiền điện tử bất kỳ thứ gì tới P1: không còn kết nối nữa).

Có hai cách để giải quyết điều này:

  • sử dụng hai giao diện WireGuard khác nhau

    Giới hạn trước đây là trên mỗi giao diện WireGuard. Sử dụng giao diện thứ hai sẽ tránh được các xung đột như vậy, nhưng sẽ làm cho việc định tuyến trở nên phức tạp hơn. Có thể nhiều mục hiện cần thiết trong bảng định tuyến 200 và/hoặc bảng chính: một cho giao diện bên trái và một (mặc định) cho giao diện bên phải.

  • thực hiện phép trừ tập hợp của các phạm vi xung đột

    Có thể có các công cụ thực sự có thể tính toán sự khác biệt giữa bộ 0.0.0.0/0 và bộ 10.200.1.5 nhưng tôi không biết chúng. Vẫn còn một công cụ tiện dụng được gọi là khẩu trang (trang chủ: https://github.com/tlby/netmask) sẽ trợ giúp bằng cách chuyển đổi các phạm vi thành tập hợp các mặt nạ mạng nhỏ nhất:

    $ mặt nạ mạng 0.0.0.0:9.255.255.255 10.200.1.3 11.0.0.0:255.255.255.255
            0.0.0.0/5
            8.0.0.0/7
         10.200.1.3/32
           11.0.0.0/8
           12.0.0.0/6
           16.0.0.0/4
           32.0.0.0/3
           64.0.0.0/2
          128.0.0.0/1
    

    Đây là các giá trị (để phân tách bằng dấu phẩy) nên được sử dụng trên máy chủ S cho máy ngang hàng P2 IP được phép do đó, định tuyến khóa mật mã sẽ định tuyến mọi thứ ở đó, ngoại trừ 10.0.0.0/8 trong đó chỉ 10.200.1.3 sẽ được xác định ở phía P2, giữ nguyên 10.200.1.5 đã được xác định ở phía P1: không còn trùng lặp nữa. Các gói được gửi bởi P1 tới Internet bây giờ sẽ chuyển sang P2 để tiếp tục định tuyến.

Đă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.