Iptables NATforwarding setup


1

ฉันมี 2 เครื่องเสมือนพร้อม CentOS7:

  1. การ์ดเครือข่าย: เครือข่าย Intern IP 192.168.1.10w / GW: 192.168.1.254 enp0s3 (ไคลเอ็นต์ 1) (ไม่เชื่อมต่อโดยตรงกับอินเทอร์เน็ต)

  2. การ์ดเครือข่าย: เครือข่าย Intern IP IP 192.168.1.254enp0s3 และ NAT IP 10.0.3.15enp0s8 (ไคลเอนต์ 2) (เชื่อมต่ออินเทอร์เน็ตได้) (NO GW ของ)

เป้าหมายคือสามารถปิงไปที่ตัวอย่างเช่น google.com กับ Client1 ซึ่งไม่ได้เชื่อมต่ออินเทอร์เน็ตโดยตรง แต่การเชื่อมต่อจะถูกส่งต่อโดย client2

ฉันจะทำเช่นนี้กับ iptables ได้อย่างไร


เราต้องการข้อมูลเพิ่มเติม เกตเวย์ใดที่มี vms ทั้งสอง iptables ตัวไหนที่ใช้อินเทอร์เน็ตได้บ้าง? ฉันเดาว่า client2 ไม่ได้เชื่อมต่ออินเทอร์เน็ตและเป็นสิ่งที่คุณต้องการเพียงเพื่อเข้าถึงอินเทอร์เน็ตผ่านทาง client1 ใช่ไหม เราต้องการชื่อของอินเทอร์เฟซด้วย ... ข้อมูลไม่ดีที่นี่!
OscarAkaElvis

แก้ไขเล็กน้อย ...
xCeltix

คำตอบ:


2

ตกลงเป็นเรื่องง่าย คุณต้องเปิดใช้งานการส่งต่อบนเครื่องที่กำลังทำ NAT คุณต้องทำสองสิ่งนี้:

echo 1 > /proc/sys/net/ipv4/ip_forward และ iptables -P FORWARD ACCEPT

จากนั้นทำการปลอมตัวเพื่อส่งออกไปยังอินเทอร์เน็ตที่ทำ:

iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE

เรากำลังสมมติว่าคุณไม่มีกฎอื่น ๆ ที่ขัดแย้งกับสิ่งนี้และ Client2 ใช้งานอินเทอร์เน็ตได้ คุณสามารถทำความสะอาดกฎทั้งหมดก่อนที่จะทำเช่นนี้กับiptables -Fและiptables -t nat -Fแล้วการเปิดตัวกฎนี้ฉันใส่ก่อน


ยินดีที่ได้ช่วยเหลือ อย่าลืมทำเครื่องหมายคำถามตามที่ได้รับการแก้ไข :)
OscarAkaElvis

ตกลงทำเครื่องหมาย;)
xCeltix

ขอขอบคุณ. เป็นการปฏิบัติที่ดี ... ไม่เพียงเพราะคนที่ช่วยให้คุณได้รับคะแนนชื่อเสียง ... เป็นวิธีที่จะพูดว่า "ขอบคุณ" และเป็นกฎของเว็บไซต์! หากแก้ไขแล้วให้ทำเครื่องหมายเพราะอาจช่วยคนอื่นได้ในภายหลัง
OscarAkaElvis
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.