ปิดการใช้งาน IPv6 บนส่วนต่อประสานใน Debian Wheezy?


9

ฉันกำลังทำงานกับ Debian Wheezy:

$ uname -a
Linux openstack1 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux

ฉันตั้งค่าสองเครือข่ายสำหรับ VirtualBox:

# Public network vboxnet0 (10.1.0.0/16)
VBoxManage hostonlyif create
VBoxManage hostonlyif ipconfig vboxnet0 --ip 10.1.0.254 --netmask 255.255.0.0

# Private network vboxnet1 (10.2.0.0/16)
VBoxManage hostonlyif create
VBoxManage hostonlyif ipconfig vboxnet1 --ip 10.2.0.254 --netmask 255.255.0.0
...

# VirtualBox Network
VBoxManage modifyvm openstack1 --nic1 nat \
  --nic2 hostonly --hostonlyadapter2 vboxnet0 \
  --nic3 hostonly --hostonlyadapter3 vboxnet1

ในเครื่องเสมือนฉันมีสิ่งต่อไปนี้ใน/etc/network/interfaces:

# The loopback network interface
auto lo
iface lo inet loopback

# Primary network interface
auto eth0
iface eth0 inet dhcp

# Public network (OpenStack)
auto eth1
iface eth1 inet static
    address 10.1.0.10
    netmask 255.255.0.0
    network 10.1.0.0
    broadcast 10.1.255.255

# Private network (OpenStack)
auto eth2
iface eth2 inet static
    address 10.2.0.10
    netmask 255.255.0.0
    network 10.2.0.0
    broadcast 10.2.255.255

เมื่อฉันตรวจสอบการกำหนดค่าอินเทอร์เฟซ IPv6 ถูกเปิดใช้งาน:

$ sudo ifconfig
[sudo] password for openstack: 
eth0      Link encap:Ethernet  HWaddr 08:00:27:6f:c5:38  
          inet addr:172.16.1.23  Bcast:172.31.255.255  Mask:255.240.0.0
          inet6 addr: fe80::a00:27ff:fe6f:c538/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:614 errors:0 dropped:0 overruns:0 frame:0
          TX packets:120 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:61279 (59.8 KiB)  TX bytes:13336 (13.0 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:79:99:40  
          inet addr:10.1.0.10  Bcast:10.1.255.255  Mask:255.255.0.0
          inet6 addr: fe80::a00:27ff:fe79:9940/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:35 errors:0 dropped:0 overruns:0 frame:0
          TX packets:55 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5288 (5.1 KiB)  TX bytes:8485 (8.2 KiB)

eth2      Link encap:Ethernet  HWaddr 08:00:27:f1:7b:f5  
          inet addr:10.2.0.10  Bcast:10.2.255.255  Mask:255.255.0.0
          inet6 addr: fe80::a00:27ff:fef1:7bf5/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:35 errors:0 dropped:0 overruns:0 frame:0
          TX packets:55 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5288 (5.1 KiB)  TX bytes:8690 (8.4 KiB)

man 5 interfacesไม่อธิบายวิธีปิดการใช้งาน IPv6 บนอินเทอร์เฟซ โครงการDebian IPv6ไม่ได้ระบุวิธีปิดการใช้งาน IPv6 สำหรับ Wheezy (เฉพาะระดับเคอร์เนลสำหรับ Squeeze)

ในกรณีที่ไม่มีเอกสารฉันพยายามเพิ่มoffและdisableไปยังeth1และeth2แต่ทำให้เกิดข้อผิดพลาด:

iface eth1 inet6 off

(เห็นได้ชัดว่า stanza ด้านบนแตกเครือข่ายอย่างสมบูรณ์เพราะฉันไม่ได้อะไรเลยifconfigและpingใช้งานไม่ได้นอกจากนี้eth0และไม่ทำงานloแม้ว่าจะไม่ได้แก้ไขก็ตาม)

ฉันจะเพิ่มอะไร/etc/network/interfacesเพื่อปิดการใช้งาน IPv6 บนอินเทอร์เฟซที่ฉันกำหนดค่าไว้


1

ขอบคุณไมเคิล มันใกล้ แต่ไม่มาก ฉันต้องการปิดการใช้งานสำหรับอินเทอร์เฟซที่ฉันกำหนดค่าไม่ใช่เคอร์เนล
jww

2
หากคุณจะมีความสุขกับการปิดกั้น IPv6 (ไม่ปิดการใช้งาน) กว่าที่คุณสามารถใช้ip6tablesเพื่อบล็อกอินพุตและเอาต์พุต IPv6 ได้อย่างสมบูรณ์ แต่อินเทอร์เฟซจะยังคงฟัง IPv6 อยู่
VL-80

อีกวิธีที่เป็นไปได้: ตามลินุกซ์ IPv6 HOWTOมีความเป็นไปได้ที่จะเอาที่อยู่ IPv6 # /sbin/ifconfig <interface> inet6 del <ipv6address>/<prefixlength>ที่มีคำสั่ง ฉันปิดการใช้งาน IPv6 ในเคอร์เนลดังนั้นฉันจึงไม่สามารถทดสอบได้ อย่างไรก็ตามลองมันและแจ้งให้เราทราบ
VL-80

1
ขอบคุณไมเคิล "ทำไมคุณจึงพยายามปิดการใช้งาน IPv6 บนอินเทอร์เฟซ" - แล็บเล็ก ๆ ของฉันมีเฉพาะ IPv4 ดังนั้นจึงไม่จำเป็นต้องใช้ IPv6 IP v6 ใช้ทรัพยากรเพิ่มเติมและเพิ่มพื้นที่การโจมตี นอกจากนี้ยังสร้างเสียงรบกวนจำนวนมากในระหว่างการติดตาม wireshark ฉันเดาว่าฉันสามารถระดมมันกลับผ่านเน็ตได้: ทำไมผู้คนถึงเรียกใช้บางสิ่งบางอย่างที่พวกเขาไม่ต้องการหรือไม่ต้องการ
jww

คำตอบ:


12

ตามคำตอบนี้สิ่งต่อไปนี้ใน/etc/sysctl.confควรปิดใช้งาน IPv6 บนอินเทอร์เฟซทั้งหมด:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

แก้ไข: สำหรับอินเทอร์เฟซเดียวเท่านั้นต่อไปนี้ควรใช้เคล็ดลับ (แทนที่<interface>ด้วยชื่อของอินเทอร์เฟซ):

net.ipv6.conf.<interface>.disable_ipv6 = 1

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