Score:0

ไม่สามารถแยกอุโมงค์เพื่อทำงานใน Strongswan ได้

ธง us

ฉันกำลังพยายามตั้งค่า Strongswan สำหรับการแยกช่องสัญญาณ VPN

สิ่งที่ฉันต้องการคือเครือข่ายย่อยเท่านั้น 10.88.0.0/16 และ 10.0.200.0/24 สามารถเข้าถึงได้ผ่านอุโมงค์ VPN อย่างอื่นจัดการผ่าน เกตเวย์เริ่มต้น สำหรับเครือข่าย

ลูกค้าทั้งหมดจะได้รับที่อยู่ IP ที่เป็นของ 10.0.201.0/24 เครือข่ายย่อย

ในไฟล์คอนฟิกูเรชันของฉัน ฉันมีสิ่งต่อไปนี้:

# วิธีการเข้าสู่ระบบเริ่มต้น
ค่าเริ่มต้น eap {
  ระยะไกล {
   auth = eap-รัศมี
   id = % ใดๆ
   eap_id = % ใดๆ
  }
}

การเชื่อมต่อ
{
  conn-unix : conn-defaults, eap-defaults {
    เด็ก {
      สุทธิ {
        local_ts = 10.0.200.0/24, 10.88.0.0/16
      }

      esp_proposals = aes128gcm128-x25519
    }

    พูล = IkeVPN-ipv4
    ข้อเสนอ = aes128-sha256-x25519
  }

  หน้าต่าง conn: conn-defaults, eap-defaults {
    เด็ก {
      สุทธิ {
        local_ts = 10.0.200.0/24, 10.88.0.0/16
      }

      esp_proposals = aes256-sha256-prfsha256-modp1024
    }

    ข้อเสนอ = aes256-sha256-prfsha256-modp1024
    พูล = IkeVPN-ipv4
  }
}

สระว่ายน้ำ
{
  IkeVPN-ipv4 {
    แอดเดรส = 10.0.201.0/24
    DNS = 10.0.88.2
  }
}

เมื่อฉันเข้าสู่ระบบผ่าน VPN เป็นไปได้ที่จะ ping โฮสต์ที่เป็นของ 10.88.0.0/16 และ 10.0.200.0/24ฉันจึงรู้ว่าฉันสามารถใช้อุโมงค์ VPN ได้

อย่างไรก็ตาม:

หากฉันพยายามเข้าถึงแหล่งข้อมูลอื่นบนอินเทอร์เน็ตในขณะที่ยังเชื่อมต่อกับ VPN ฉันก็ไม่สามารถแม้แต่จะ ping ที่อยู่ IP ของแหล่งข้อมูลนั้น

ในตารางเส้นทางของฉันบนคอมพิวเตอร์ Windows ฉันสามารถค้นหารายการต่อไปนี้:

ตารางเส้นทางบางส่วนสำหรับไคลเอนต์ Windows ที่เชื่อมต่อกับเซิร์ฟเวอร์ VPN

ฉันรู้ว่าเมื่อคุณมีสองเส้นทางไปยังเครือข่ายย่อยที่กำหนดเช่น 0.0.0.0/0 ในตารางเส้นทาง กฎใดก็ตามที่มีเมตริกต่ำสุดจะชนะและทราฟฟิกจะถูกส่งต่อโดยใช้กฎนั้น

อย่างไรก็ตาม ฉันไม่ต้องการให้เซิร์ฟเวอร์ VPN ติดตั้งเส้นทางเริ่มต้นผ่าน VPN แต่บอกเพียงเครือข่ายย่อยนั้น 10.88.0.0/16 และ 10.0.200.0/24 จะต้องกำหนดเส้นทางผ่าน VPN

สิ่งที่ฉันต้องการคือฉันเห็นตารางเส้นทางที่ใกล้กว่านี้โดยไม่ต้องแก้ไขตารางเส้นทางด้วยตนเองบนไคลเอนต์ VPN ทุกเครื่อง:

ตารางเส้นทางที่ต้องการ

แล้วฉันจะทำอย่างนั้นได้อย่างไร?

cn flag
โปรดดูที่ [สิ่งนี้](https://wiki.strongswan.org/projects/strongswan/wiki/ForwardingAndSplitTunneling#Split-Tunneling-with-IKEv2) และ [สิ่งนี้](https://wiki.strongswan.org/ หน้า project/strongswan/wiki/WindowsClients#Split-routing-on-Windows-10-and-Windows-10-Mobile) ในวิกิ StrongSwan
us flag
ดังนั้น Strongswan จึงจำเป็นต้องอัปเดตเอกสารประกอบ เนื่องจากดูเหมือนว่า Windows จะตั้งค่าเกตเวย์เริ่มต้นเมื่อคุณลงทะเบียนการเชื่อมต่อ VPN ใหม่ อย่างน้อยสำหรับ ipv4
us flag
ฉันต้องปิดใช้งาน 'การกำหนดเส้นทางเริ่มต้น' และเปิดใช้งาน 'ปิดใช้งานการเพิ่มการกำหนดเส้นทางตามคลาส' (แปลจากภาษาเดนมาร์ก) เพื่อลบเกตเวย์เริ่มต้นหรืออย่างน้อยก็เพียงแค่รับส่งข้อมูลสำหรับซับเน็ต `10.0.0.0/8` ผ่าน VPN สิ่งที่ฉันหวังไว้คือ Strongswan มีบางสิ่งที่เทียบเท่ากับคำสั่ง 'push route' ของ OpenVPN
us flag
ค้นหาอีกเล็กน้อยบน Google บอกว่าฉันต้องส่ง `dhcp option code 121 และ 249` ให้กับลูกค้า รหัสตัวเลือก 121 ใช้งานได้กับ Linux และ Windows เวอร์ชันเก่า ในขณะที่รหัสตัวเลือก 249 ใช้งานได้กับ Windows เวอร์ชันใหม่กว่า (ใหม่กว่า Vista) และ MacOS อย่างไรก็ตาม Strongswan ไม่ได้ใช้เกตเวย์มาตรฐาน ดังนั้นปัจจัยนี้จะส่งผลอย่างไรเมื่อส่งเส้นทางไปยังลูกค้า
Score:0
ธง us

กลายเป็นว่าปัญหาของฉันเกี่ยวกับการแยกช่องสัญญาณถูกวางไว้ในพื้นที่ที่แตกต่างกันโดยสิ้นเชิง เนื่องจากฉันมีเราเตอร์ 2 ตัวที่บ้าน ดังนั้นเครือข่ายในบ้านของฉันจึงเป็นดังนี้: ISP <-> R1 <-> R2 <-> ฉัน

... และ R1 ได้รับการกำหนดค่าเป็นที่อยู่ IP ในช่วง 10.0.0.0/24

เมื่อคุณปิดใช้งานการกำหนดเส้นทางเริ่มต้นในไคลเอนต์ VPN ของ Windows มันจะเพิ่มเส้นทางตามคลาสเข้ามา ดังนั้นในกรณีของฉัน มันจะเพิ่มเส้นทางที่ส่งทุกอย่างสำหรับ 10.0.0.0/8 ผ่าน VPN ซึ่งแน่นอนว่ามันจะขัดแย้งกับการตั้งค่า บนเราเตอร์ R1

นั่นคือเหตุผลที่ต้องการลบเส้นทาง 10.0.0.0/8 ออกทั้งหมดและผลักดันเส้นทางสำหรับซับเน็ต 10.88.0.0/16 และ 10.0.200.0/16 ผ่าน VPN

ปรากฎว่าทำได้

การกำหนดเส้นทางตามคลาสจะถูกลบออกโดยการเปิดใช้งาน ปิดใช้งานการกำหนดเส้นทางตามคลาส เมื่อคุณปิดการใช้งาน เส้นทางเริ่มต้น ในไคลเอนต์ VPN

ใน Strongswan คุณต้องส่งต่อคำขอ dhcp จากลูกค้าไปยังเซิร์ฟเวอร์ DHCP ที่ติดตั้ง RFC3442

ดังนั้นในการกำหนดค่าด้านบน ฉันต้องแทนที่เหตุการณ์ทั้งหมดของ พูล = IkeVPN-ipv4 กับ พูล = dhcp และใน strongswan.conf ฉันต้องเพิ่มสิ่งต่อไปนี้ลงในส่วนย่อยของปลั๊กอิน charon:

ชารอน {
  ปลั๊กอิน {
    ...
    dhcp {
      เซิร์ฟเวอร์ = ip.address.of.dhcp.server
    }
  }
}

ฉันสามารถลบทั้งหมดได้ สระว่ายน้ำ ส่วนที่ด้านล่างของการกำหนดค่าของฉัน

มีตัวเลือกเพิ่มเติมเล็กน้อย ซึ่งสามารถอ่านได้ที่นี่.

คำแนะนำจาก Strongswan จากคำใบ้ @ecdsa ให้ข้อมูลบางอย่าง แต่คำแนะนำนั้นเฉพาะกับ Windows ดังนั้นจึงไม่ได้บอกวิธีจัดการกับอุปกรณ์ Linux, MacOS หรือ Android อย่างไรก็ตาม RFC3442 จะจัดการกับกรณีทั่วไป

สรุปสิ่งที่ RFC3442 พูดคือคุณต้องส่งสองตัวเลือก dhcp ต่อไปนี้:

  • ตัวเลือก 121 (ที่เกี่ยวข้องกับ Linux, Android และ Windows Vista หรือเก่ากว่า)
  • ตัวเลือก 249 (ที่เกี่ยวข้องกับ Windows 7 หรือใหม่กว่าและ MacOS)

โดยทั่วไปคุณต้องเข้ารหัสแต่ละเส้นทางเป็นอาร์เรย์ของ int โดยใช้ไวยากรณ์ต่อไปนี้:

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

ที่ไหน:

  • x: เน็ตมาสก์ CIDR
  • y1 - y4: เป็นเครือข่ายที่คุณต้องการกำหนดเส้นทาง แต่มีข้อแม้ว่าเมื่อส่วนท้ายของลำดับ y1,y2,y3,y4 เป็นเลขศูนย์ทั้งหมด พวกมันจะถูกละไว้
  • z1 - z4: เป็นเกตเวย์ nexthop ไปยังซับเน็ต

หากมีมากกว่าหนึ่งเส้นทางที่จะส่งผ่าน DHCP คุณจะต้องเพิ่มลำดับอื่นที่คล้ายกับด้านบนที่ส่วนท้ายของเราเตอร์ตัวแรก

ตามเอกสารของ Strongswan ฉันสามารถแทนที่เกตเวย์มาตรฐานด้วย 0.0.0.0.

นั่นหมายถึงเส้นทางของฉันไป 10.0.200.0/24 ได้รับการเข้ารหัสเป็น 24,10,0,200,0,0,0,0 และ 10.88.0.0/16 ได้รับการเข้ารหัสเป็น 16,10,88,0,0,0,0.

การรวมทั้งสองเข้าด้วยกันทำให้ฉัน 24,10,0,200,0,0,0,0,16,10,88,0,0,0,0ซึ่งนำฉันไปสู่การกำหนดค่าต่อไปนี้ใน เซิร์ฟเวอร์ ISC DHCP:

ตัวเลือก rfc-รหัสเส้นทาง 121 = อาร์เรย์ของจำนวนเต็ม 8;
ตัวเลือก ms-รหัสเส้นทาง 249 = อาร์เรย์ของจำนวนเต็ม 8;

เวลาเช่าเริ่มต้น 21600;
เวลาเช่าสูงสุด 86,000;

ซับเน็ต 10.0.201.0 เน็ตมาสก์ 255.255.255.0 {
    ช่วง 10.0.201.1 10.0.201.254;

    ตัวเลือกชื่อโดเมน "example.com";
    ตัวเลือกโดเมนเนมเซิร์ฟเวอร์ ip.address.of.dns.server;

    ตัวเลือก rfc-เส้นทาง 24,10,0,200,0,0,0,0,16,10,88,0,0,0,0;
    ตัวเลือก ms-เส้นทาง 24,10,0,200,0,0,0,0,16,10,88,0,0,0,0;
}

ฉันหวังว่านี่จะช่วยใครก็ตามที่กำลังดิ้นรนกับการแยกอุโมงค์

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา