จะปิดการใช้งาน IPv4 stack จาก Linux ได้อย่างไร?


17

ฉันจะปิดการใช้งานIPv4 stack จาก Linux ได้อย่างไร ฉันต้องการที่จะทำแบบไดนามิกนั่นคือบางครั้งฉันต้องการเปิดใช้งานและบางครั้งฉันต้องการเพียงIPv6 stack มีวิธีพกพาที่จะทำเช่นนั้น? ถ้าคุณรู้วิธีการทำเช่นนั้นในการแจกแจงใด ๆ มันจะช่วยฉันได้มาก


2
@kasperd ไม่มีอะไรเปลี่ยนแปลงตั้งแต่ปี 2011
Michael Hampton

คำตอบ:


21

หลังจากสนทนาเล็กน้อยใน IRC ความคิดเห็นทั่วไปคือเคอร์เนล linux ใช้รหัสบางอย่างระหว่าง ipv4 และ ipv6 และนั่นอาจทำให้ ipv4 ปิดการใช้งานโดยสิ้นเชิงเป็นไปไม่ได้เลย คุณสามารถลองคอมไพล์เคอร์เนลโดยไม่มีส่วน ipv4 แต่ ipv6 อาจไม่คอมไพล์ในกรณีนี้ (แต่ไม่มีอะไรทำให้คุณไม่สามารถลองได้!)

คุณสามารถลบที่อยู่ ipv4 ออกจากอินเทอร์เฟซ AFAIK แต่ฉันคิดว่ามันเป็นไปไม่ได้ในเวลานี้เพื่อปิดการใช้งาน ipv4 โดยสมบูรณ์

แก้ไข:หลังจากตรวจสอบอย่างรวดเร็วmake menuconfigในเคอร์เนล 2.6.36 ฉันไม่สามารถหาวิธีปิดการใช้งาน ipv4 โดยไม่ต้องปิดการใช้งานสแต็ก TCP / IP ทั้งหมด (และอื่น ๆ ipv6)


4

หากนี่คือสำหรับนักพัฒนาก็สามารถใช้ "การแทรกซึมของห้องสมุด" โดยใช้ LD_PRELOAD ห้องสมุดที่ได้รับการรับรองบางส่วนพร้อมฟังก์ชั่นต้นขั้วที่ส่งคืนข้อผิดพลาดเพียงอย่างเดียว (หรือเรียกสิ่งที่แท้จริงขึ้นอยู่กับวันของสัปดาห์


2

ฉันคิดว่ามันเป็นไปไม่ได้ที่จะปิดการใช้งาน IPv4 อย่างสมบูรณ์ แต่ขึ้นอยู่กับเป้าหมายของคุณการลดทราฟฟิก IPv4 ทั้งหมดที่ใช้iptablesอาจจะเพียงพอแล้วใช่ไหม

สิ่งนี้จะทำงานได้ดี ฉันยังไม่ได้ทดสอบกับเครื่องใด ๆ เพราะฉันเข้าถึงผ่านทาง IPv4

sudo iptables -I INPUT -j DROP
sudo iptables -O OUTPUT -j DROP

1
วิธีนี้จะบล็อกการรับส่งข้อมูลซึ่งบางครั้งอาจมีประโยชน์ แต่จะไม่หยุดโปรแกรมจากการเชื่อมต่อซ็อกเก็ต IPv4 นี่เป็นสิ่งจำเป็นเพื่อปิดการใช้งาน IPv4 อย่างสมบูรณ์
Michael Hampton

สิ่งที่ฉันได้ในเครื่องที่ฉันต้องการที่จะเรียกใช้ IPv6 อย่างเดียวคือการปิดการใช้งานไคลเอ็นต์ DHCP /etc/network/interfaces.dใน มันไม่ได้มากเช่นเดียวกับการปิดใช้งาน IPv4 ตั้งแต่ยังคงฟังบนsystemd-resolved แต่มันก็เพียงพอที่จะตอบสนองความต้องการของฉันทันทีและแนะนำมากที่จะล้อเล่นกับ127.0.0.53:53 iptables
kasperd

1

ส่วนใหญ่คุณควรคอมไพล์เคอร์เนลของคุณใหม่โดยไม่มีโมดูล ipv4 ฟาง

คุณไม่สามารถปิดใช้งานได้อย่างสมบูรณ์เพราะระบบใช้อินเทอร์เฟซวนกลับ 127.0.0.1
แต่คุณสามารถปิดการใช้งานฟังก์ชั่น ipv4 บางส่วนได้ด้วยคำสั่ง if-cfg

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