อินเทอร์เฟซใดได้รับบทบาท NAT ด้านในและด้านนอกบนทางออก VPN ของ IOS
ติดตามแพ็กเก็ตไคลเอนต์ที่ถอดรหัสแล้วจากอินเทอร์เฟซเสมือนไปยังอัปลิงก์ การแปลอยู่ในเส้นทางภายในนี้ ไม่ใช่การขนส่งภายนอกของอุโมงค์
เราเตอร์ที่ให้ทางออกอินเทอร์เน็ตแบบอุโมงค์เต็มทำงานสองอย่างที่ดูเหมือนอย่างเดียว มันสิ้นสุดอุโมงค์และส่งแพ็กเก็ตไคลเอนต์ที่ถอดรหัสแล้วออกไปยังอินเทอร์เน็ต มีเพียงงานที่สองเท่านั้นที่ต้องการการแปล และการแปลต้องตรงกับเส้นทางภายใน ความแตกต่างนี้กำหนดว่าอินเทอร์เฟซใดรับบทบาท NAT และช่วงที่อยู่ใดปรากฏในกฎ
ติดตามแพ็กเก็ตหนึ่งแพ็กเก็ตผ่านเราเตอร์
สมมติให้ไคลเอนต์ที่ 10.90.0.25 เปิดบริการ HTTPS สาธารณะ ปลายทางนั้นจะเข้าอุโมงค์หรือไม่เป็นการตัดสินใจของนโยบายไคลเอนต์เอง เมื่อเข้ามา เราเตอร์จะถอดรหัสแพ็กเก็ตและส่งไปยังอินเทอร์เฟซเสมือน จากนั้นจึงถูกกำหนดเส้นทางไปยังอัปลิงก์สาธารณะ
อินเทอร์เฟซเสมือนนั้นคือด้านในของการแปล อัปลิงก์สาธารณะคือด้านนอก หากบทบาทสลับกันหรือหายไป แพ็กเก็ตจะออกไปพร้อมแหล่งที่มาส่วนตัว หรือถูกทิ้งก่อนที่จะถูกแปล
| Stage | Question to answer |
|---|---|
| VPN client | Does the client's policy put this destination inside the tunnel? |
| Decrypted ingress | Which virtual interface receives the inner packet? |
| Internet egress | Which route, access policy and source translation apply? |
| Reply | Is the client's flow translated back before it is delivered over the tunnel? |
จับค่านโยบายการแปลกับกลุ่มไคลเอนต์
กฎ NAT ต้องระบุช่วงที่ไคลเอนต์ได้รับจริง ไม่ใช่ LAN ของสำนักงานที่บังเอิญใช้อัปลิงก์ร่วมกัน กฎที่ครอบคลุมเฉพาะซับเน็ตภายในจะพลาดไคลเอนต์ระยะไกล แม้ทั้งสองจะออกผ่านอินเทอร์เฟซเดียวกัน
ip access-list extended NAT-TUNNEL
permit ip 10.90.0.0 0.0.0.255 any
ip nat inside source list NAT-TUNNEL interface GigabitEthernet0/0/0 overload
แยกข้อยกเว้นสำหรับไซต์ส่วนตัวไว้ต่างหาก ทราฟฟิกไปยังปลายทางภายใน ต้องคงแหล่งที่มาดั้งเดิมไว้ มิฉะนั้นปลายทางจะตอบกลับไปยังที่อยู่ที่ไปไม่ถึง และขากลับจะล้มเหลวในลักษณะที่ดูเหมือนลูปลูปเส้นทาง
ใช้บทบาทกับอินเทอร์เฟซจริงในการออกแบบที่ติดตั้งไว้ ชิ้นส่วน Virtual-Template ที่คัดลอกจากคำตอบ Easy VPN เก่าไม่ใช่การกำหนดค่าปัจจุบันที่สมบูรณ์ และชนิดอุโมงค์ที่ใช้เป็นตัวกำหนดว่าอินเทอร์เฟซใดรับแพ็กเก็ตที่ถอดรหัสแล้ว
แยกการขนส่งภายนอกกับการแปลภายในออกจากกัน
การแปลแหล่งที่มาของแอปพลิเคชันที่ถอดรหัสแล้วไม่ใช่การดำเนินการเดียวกับการดันแพ็กเก็ต IKE หรือแพ็กเก็ตที่ป้องกันผ่านอุปกรณ์ NAT ที่อยู่เหนือขึ้นไป อย่างแรกเปลี่ยนสิ่งที่อินเทอร์เน็ตมองเห็นเป็นแหล่งที่มาของคำขอไคลเอนต์ ส่วนอย่างที่สองทำให้อุโมงค์ยังคงอยู่ผ่านอุปกรณ์กลาง
การสับสนระหว่างสองอย่างนี้ทำให้เกิดความล้มเหลวคลาสสิกสองแบบ เราเตอร์ที่แปลการขนส่งอุโมงค์ของตัวเองจะทำให้ความสัมพันธ์กับเพื่อนร่วมอุโมงค์แตกสลาย ขณะที่เราเตอร์ที่ไม่เคยแปลเส้นทางภายในจะส่งที่อยู่ส่วนตัวออกสู่อินเทอร์เน็ต อ่านว่าคุณกำลังดูเส้นทางใดก่อนแก้ไขกฎ และตรวจสอบว่าอุโมงค์ยังคงอยู่หลังการเปลี่ยนแปลงหรือไม่ กฎที่แก้การท่องเว็บแต่ทำให้อุโมงค์ล่มได้ย้ายปัญหาไปแทนที่จะแก้ไข
ไม่มีความล้มเหลวใดแก้ไขได้ด้วยการเปลี่ยนอีกอย่าง อ่านว่าคุณกำลังดูเส้นทางใดก่อนแก้ไขกฎ
ตรวจสอบที่ขอบทั้งสองด้าน
อ่านแหล่งที่มาของแอปพลิเคชันที่ขอบอินเทอร์เน็ต และปลายทางที่กู้คืนได้ในขากลับ อย่างแรกบอกว่าการแปลเกิดขึ้นหรือไม่ อย่างที่สองบอกว่าการแมปย้อนกลับมาถึงไคลเอนต์ที่ถูกต้องหรือไม่
จากนั้นทดสอบไคลเอนต์ที่ใช้เส้นทางอุโมงค์แยกที่ได้รับอนุมัติ ไคลเอนต์นั้นไม่เคยใช้การแปลอินเทอร์เน็ตของเราเตอร์นี้ ดังนั้นจึงควรมีพฤติกรรมแตกต่าง และความแตกต่างยืนยันว่าเส้นทางใดที่ทราฟฟิกใช้
หากไคลเอนต์ทั้งสองมีพฤติกรรมเหมือนกัน นโยบายอุโมงค์แยกไม่ได้ทำตามที่การออกแบบระบุ แก้ไขก่อนเพิ่มกฎการแปลเพิ่มเติม เพราะกฎที่เขียนสำหรับเส้นทางที่ไม่ได้ใช้จะซ่อนปัญหาจริง