Điểm:0

Không thể tạo đường hầm phân chia để hoạt động trong Strongswan

lá cờ us

Tôi đang cố gắng thiết lập Strongswan cho đường hầm phân chia VPN.

Những gì tôi muốn chỉ là các mạng con 10.88.0.0/1610.0.200.0/24 có thể truy cập thông qua đường hầm VPN. Mọi thứ khác được xử lý thông qua Gateway mặc định cho mạng.

Tất cả khách hàng được chỉ định một địa chỉ ip thuộc về 10.0.201.0/24 mạng con.

Trong tệp cấu hình của tôi, tôi có những thứ khác như sau:

# Phương thức đăng nhập mặc định
eap-mặc định {
  Xa xôi {
   auth = bán kính eap
   id =% bất kỳ
   eap_id = % bất kỳ
  }
}

kết nối
{
  conn-unix : mặc định conn, mặc định eap {
    bọn trẻ {
      bọc lưới {
        local_ts = 10.0.200.0/24, 10.88.0.0/16
      }

      esp_proposals = aes128gcm128-x25519
    }

    nhóm = IkeVPN-ipv4
    đề xuất = aes128-sha256-x25519
  }

  conn-windows : conn-defaults, eap-defaults {
    bọn trẻ {
      bọc lưới {
        local_ts = 10.0.200.0/24, 10.88.0.0/16
      }

      esp_proposals = aes256-sha256-prfsha256-modp1024
    }

    đề xuất = aes256-sha256-prfsha256-modp1024
    nhóm = IkeVPN-ipv4
  }
}

hồ bơi
{
  IkeVPN-ipv4 {
    địa chỉ = 10.0.201.0/24
    dns = 10.0.88.2
  }
}

Khi tôi đăng nhập qua VPN, có thể ping các máy chủ thuộc về 10.88.0.0/1610.0.200.0/24, vì vậy tôi biết mình có thể sử dụng đường hầm VPN.

Tuy nhiên:

Nếu tôi cố gắng truy cập bất kỳ nguồn tài nguyên nào khác trên Internet trong khi vẫn được kết nối với VPN, thì tôi thậm chí không thể ping địa chỉ ip thuộc nguồn tài nguyên đó.

Trong bảng định tuyến trên máy tính Windows của mình, tôi có thể tìm thấy các mục sau:

Bảng định tuyến một phần cho máy khách Windows được kết nối với máy chủ VPN

Tôi biết rằng khi bạn có hai tuyến đến một mạng con nhất định như 0.0.0.0/0 trong bảng định tuyến, thì bất kỳ quy tắc nào có chỉ số thấp nhất sẽ thắng và lưu lượng truy cập được chuyển tiếp bằng quy tắc đó.

Tuy nhiên, tôi không muốn máy chủ VPN cài đặt tuyến mặc định qua VPN mà chỉ cho biết rằng các mạng con 10.88.0.0/1610.0.200.0/24 phải được định tuyến qua VPN.

Điều tôi muốn là tôi thấy một bảng định tuyến gần với bảng này hơn mà không cần phải chỉnh sửa bảng định tuyến bằng tay trên mọi máy khách VPN:

Bảng định tuyến mong muốn

Vì vậy, làm thế nào để tôi đi về làm điều đó?

lá cờ cn
Vui lòng xem [điều này](https://wiki.strongswan.org/projects/strongswan/wiki/ForwardingAndSplitTunneling#Split-Tunneling-with-IKEv2) và [điều này](https://wiki.strongswan.org/ project/strongswan/wiki/WindowsClients#Split-routing-on-Windows-10-and-Windows-10-Mobile) trên StrongSwan wiki.
lá cờ us
Vậy thì Strongswan cần cập nhật tài liệu của họ vì có vẻ như Windows KHÔNG đặt cổng mặc định khi bạn đăng ký kết nối vpn mới. Ít nhất là cho ipv4.
lá cờ us
Tôi đã phải tắt `định tuyến mặc định` và bật `tắt bổ sung định tuyến dựa trên lớp` (bản dịch từ tiếng Đan Mạch) để xóa cổng mặc định hoặc ít nhất là chỉ lưu lượng cho mạng con `10.0.0.0/8` qua VPN. Điều tôi đã hy vọng là Strongswan có thứ gì đó tương đương với chỉ thị `push route` của OpenVPN.
lá cờ us
Tìm kiếm thêm một chút trên Google cho tôi biết rằng tôi phải đẩy `mã tùy chọn dhcp 121 và 249` cho khách hàng. Mã tùy chọn 121 hoạt động với Linux và các phiên bản Windows cũ hơn, trong khi mã tùy chọn 249 hoạt động với các phiên bản Windows mới hơn (mới hơn Vista) và MacOS. Tuy nhiên Strongswan không sử dụng cổng tiêu chuẩn, vậy yếu tố này ảnh hưởng như thế nào khi đẩy các tuyến đến máy khách?
Điểm:0
lá cờ us

Hóa ra vấn đề của tôi với đường hầm phân chia được đặt ở một khu vực hoàn toàn khác, do tôi có 2 bộ định tuyến ở nhà nên mạng gia đình của tôi giống như: ISP <-> R1 <-> R2 <-> Me.

... và R1 được cấu hình thành địa chỉ IP trong dải 10.0.0.0/24.

Khi bạn tắt định tuyến mặc định trong máy khách Windows VPN, thì nó sẽ thêm một tuyến dựa trên lớp được cài đặt, vì vậy trong trường hợp của tôi, nó sẽ thêm một tuyến gửi mọi thứ cho 10.0.0.0/8 qua VPN, điều này tất nhiên sẽ xung đột với thiết lập trên bộ định tuyến R1.

Đó là lý do tại sao muốn loại bỏ hoàn toàn tuyến 10.0.0.0/8 và đẩy tuyến cho các mạng con 10.88.0.0/1610.0.200.0/16 qua VPN.

Hóa ra nó là có thể làm được.

Định tuyến dựa trên lớp được loại bỏ bằng cách bật vô hiệu hóa định tuyến dựa trên lớp khi bạn tắt định tuyến mặc định trong máy khách VPN.

Trong Strongswan, bạn phải chuyển tiếp yêu cầu dhcp từ máy khách đến máy chủ DHCP đã triển khai RFC3442.

Vì vậy, trong cấu hình của tôi ở trên, tôi phải thay thế tất cả các lần xuất hiện của nhóm = IkeVPN-ipv4 với pool = dhcp và trong Strongswan.conf Tôi phải thêm phần sau vào phần bổ trợ charon:

charon {
  bổ sung {
    ...
    dhcp {
      máy chủ = ip.address.of.dhcp.server
    }
  }
}

Sau đó tôi có thể xóa toàn bộ hồ bơi phần ở dưới cùng của cấu hình của tôi.

Có một số tùy chọn khác có sẵn mà có thể được đọc ở đây.

Hướng dẫn từ Strongswan từ gợi ý @ecdsa đã cung cấp một số thông tin, nhưng hướng dẫn đó dành riêng cho Windows, vì vậy nó sẽ không cho bạn biết cách xử lý các thiết bị Linux, MacOS hoặc Android. RFC3442 tuy nhiên sẽ xử lý trường hợp chung.

Tóm lại những gì RFC3442 nói là bạn phải gửi hai tùy chọn dhcp sau:

  • tùy chọn 121 (liên quan đến Linux, Android và Windows Vista trở lên)
  • tùy chọn 249 (liên quan đến Windows 7 trở lên và MacOS)

Về cơ bản, bạn phải mã hóa từng tuyến dưới dạng một mảng int bằng cú pháp sau:

x,y1,y2,y3,y4,z1,z2,z3,z4

Ở đâu:

  • x: Mặt nạ mạng CIDR
  • y1 - y4: là mạng bạn muốn định tuyến, nhưng có một điều khó hiểu là khi đuôi của dãy y1,y2,y3,y4 đều là số 0 thì chúng sẽ bị bỏ qua.
  • z1 - z4: là nexthop gateway vào subnet.

Nếu có nhiều hơn một tuyến được gửi qua DHCP, thì bạn sẽ phải thêm một trình tự khác tương tự như trên ở đuôi của bộ định tuyến đầu tiên.

Theo tài liệu Strongswan, tôi có thể thay thế cổng tiêu chuẩn bằng 0.0.0.0.

Điều đó có nghĩa là con đường của tôi đến 10.0.200.0/24 được mã hóa như 24,10,0,200,0,0,0,010.88.0.0/16 được mã hóa thành 16,10,88,0,0,0,0.

Kết hợp cả hai mang lại cho tôi 24,10,0,200,0,0,0,0,16,10,88,0,0,0,0, dẫn tôi đến cấu hình sau trong Máy chủ DHCP ISC:

tùy chọn rfc-routes code 121 = mảng số nguyên 8;
tùy chọn mã ms-tuyến 249 = mảng số nguyên 8;

thời gian thuê mặc định 21600;
thời gian thuê tối đa 86000;

mạng con 10.0.201.0 mặt nạ mạng 255.255.255.0 {
    phạm vi 10.0.201.1 10.0.201.254;

    tùy chọn tên miền "example.com";
    tùy chọn máy chủ tên miền ip.address.of.dns.server;

    tùy chọn rfc-tuyến 24,10,0,200,0,0,0,0,16,10,88,0,0,0,0;
    tùy chọn ms-tuyến 24,10,0,200,0,0,0,0,16,10,88,0,0,0,0;
}

Tôi hy vọng điều này sẽ giúp ích cho bất kỳ ai đang loay hoay với việc chia đường hầ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.