ชื่อแทนที่อยู่ IP ที่กำหนดโดย DHCP


17

ฉันต้องการสร้างชื่อแทนหลายรายการให้กับ eth0 แต่มีที่อยู่ที่มอบหมายโดย DHCP แทนที่จะตั้งเป็น IP แบบคงที่ เป็นไปได้ไหม

ตัวอย่างทั้งหมดที่ฉันได้เห็นกำหนด IP แบบคงที่โดยใช้คำสั่ง:

ifconfig eth0:0 192.168.1.11 up

คำตอบ:


17

สิ่งนี้เป็นไปได้ก็ต่อเมื่อไคลเอ็นต์ DHCP สองเครื่องใช้ที่อยู่ MAC ที่แตกต่างกัน ซึ่งหมายความว่าพวกเขาไม่สามารถเรียกใช้ทั้งสองบนอินเทอร์เฟซเครือข่ายทางกายภาพเดียวกันซึ่งมีที่อยู่ MAC เดียว

การแก้ปัญหาคืออินเตอร์เฟสเครือข่าย MAC-VLAN เสมือนของ Linux MAC-VLAN อินเตอร์เฟสเป็นอินเตอร์เฟสเครือข่ายเสมือนที่สนับสนุนโดยฟิสิคัลอินเตอร์เฟส แต่ใช้กับที่อยู่ MAC ที่แตกต่างกันซึ่งสร้างขึ้นแบบสุ่มเมื่อคุณสร้างอุปกรณ์ MAC-VLAN

เมื่อคุณสร้างอินเทอร์เฟซ MAC-VLAN โดยใช้ฟิสิคัลอินเทอร์เฟซคุณจะใช้มันในลักษณะเดียวกับที่คุณใช้กับฟิสิคัล ในกรณีเฉพาะของคุณคุณสามารถเรียกใช้ไคลเอนต์ DHCP หนึ่งบนอินเทอร์เฟซทางกายภาพและอื่น ๆ บนอุปกรณ์ MAC-VLAN แต่ละอุปกรณ์ (ฟิสิคัลและ MAC-VLAN) สามารถมีที่อยู่ IP ของตัวเองได้

อุปกรณ์ MAC-VLAN ใหม่macvlan0สามารถสร้างขึ้นได้จากการeth0ทำงาน

ip link add dev macvlan0 link eth0 type macvlan

สามารถลบได้โดยการเรียกใช้

ip link delete dev macvlan0

เมื่อใช้ NCD ซอฟต์แวร์กำหนดค่าเครือข่ายของฉัน ( http://code.google.com/p/badvpn/wiki/NCD ) โปรแกรม NCD ต่อไปนี้จะสร้างอุปกรณ์ MAC-VLAN สองอุปกรณ์จากeth0( macvlan0และmacvlan1) เรียกใช้ DHCP ในแต่ละอุปกรณ์ และกำหนดที่อยู่ IP ที่ได้รับ คุณสามารถทำสิ่งอื่น ๆ เช่นเพิ่มเส้นทางและเซิร์ฟเวอร์ DNS ได้อย่างง่ายดาย อ่านหน้า NCD หากคุณสนใจ

process lan {
    # Set device.
    var("eth0") dev;

    # Wait for device to appear, set it up, and wait for cable to be plugged in.
    net.backend.waitdevice(dev);
    net.up(dev);
    net.backend.waitlink(dev);

    # Start DHCP's.
    provide("lan-link");
}

process lan_dhcp1 {
    # Wait for link.
    depend("lan-link") linkdep;

    # Choose virtual device name.
    var("macvlan0") vdev;

    # Create virtual MAC-VLAN device.
    list("/sbin/ip", "link", "add", "dev", vdev, "link", linkdep.dev, "type", "macvlan") do;
    list("/sbin/ip", "link", "delete", "dev", vdev) undo;
    run(do, undo);

    # Set virtual device up.
    net.up(vdev);

    # DHCP configuration on virtual device.
    net.ipv4.dhcp(vdev) dhcp;
    ip_in_network(dhcp.addr, "127.0.0.0", "8") test_local;
    ifnot(test_local);

    println(vdev, ": got address ", dhcp.addr);

    # Assign address to virtual device.
    net.ipv4.addr(vdev, dhcp.addr, dhcp.prefix);
}

# This differs from above only in interface name (macvlan1).
process lan_dhcp2 {
    # Wait for link.
    depend("lan-link") linkdep;

    # Choose virtual device name.
    var("macvlan1") vdev;

    # Create virtual MAC-VLAN device.
    list("/sbin/ip", "link", "add", "dev", vdev, "link", linkdep.dev, "type", "macvlan") do;
    list("/sbin/ip", "link", "delete", "dev", vdev) undo;
    run(do, undo);

    # Set virtual device up.
    net.up(vdev);

    # DHCP configuration on virtual device.
    net.ipv4.dhcp(vdev) dhcp;
    ip_in_network(dhcp.addr, "127.0.0.0", "8") test_local;
    ifnot(test_local);

    println(vdev, ": got address ", dhcp.addr);

    # Assign address to virtual device.
    net.ipv4.addr(vdev, dhcp.addr, dhcp.prefix);
}

คุณจะพบกับที่อยู่ IP ที่ได้รับ DHCP ของตัวเองmacvlan0และmacvlan1แต่ละรายการeth0จะมี แต่จะไม่มีที่อยู่ IP หรือคุณสามารถสร้างเพียงหนึ่งอินเตอร์เฟส MAC-VLAN และรันหนึ่งอินสแตนซ์ DHCP ในeth0ตัวของมันเอง


1
ขออภัยในการเพิ่มสิ่งนี้จากความตาย แต่คำสั่ง "นี่เป็นไปได้เฉพาะในกรณีที่ลูกค้า DHCP สองรายใช้ที่อยู่ MAC ที่แตกต่างกัน" ไม่ถูกต้องจากมุมมองโปรโตคอล DHCP แม้ในปี 2011 DHCP ก็ยังคงใช้รหัสลูกค้าซึ่งไม่จำเป็นต้องตรงกับที่อยู่ MAC ของอุปกรณ์ (RFC 2131 เผยแพร่ใน '97)
Andre Kostur

0

การใช้ที่อยู่ IP แบบคงที่หรือ DHCP เป็นตัวเลือกที่คุณเลือกสำหรับคอมพิวเตอร์ของคุณ

มีที่ดีคือการกวดวิชาที่นี่

มันมีรายละเอียดมากมายและช่วยให้คุณหลีกเลี่ยงปัญหาที่อาจเกิดขึ้นหากคุณใช้สแตติกแทนที่อยู่ที่ได้รับมอบหมาย DHCP เช่นวิธีการเชื่อมต่อกับเซิร์ฟเวอร์ DNS และเกตเวย์


0

ฉันไม่เคยเห็นการกำหนดค่า DHCP ซึ่งจะอนุญาตให้เซิร์ฟเวอร์ DHCP ส่งที่อยู่หลายแห่งไปยังอินเทอร์เฟซ ฉันไม่เชื่อว่าโปรโตคอลรองรับ เมื่อคุณได้รับที่อยู่ IP หลายรายการบนอินเทอร์เฟซคุณควรกำหนดค่าให้เป็นที่อยู่แบบคงที่

ไคลเอ็นต์ DHCP บางตัวอนุญาตให้กำหนดที่อยู่แบบคงที่เมื่อระบุที่อยู่ ฉันไม่เชื่อว่า Windows จะอนุญาตให้คุณเพิ่มมากกว่าหนึ่ง

ตรวจสอบว่าที่อยู่คงทั้งหมดของคุณอยู่นอกช่วงที่อยู่ DCHP


-1

ฉันไม่รู้แน่ แต่ฉันเชื่อว่าถ้าคุณไม่มีเราเตอร์โอเพ่นซอร์สคุณจะต้องใช้ IP แบบคงที่เพื่อทำสิ่งที่คุณต้องการ IMO เว้นแต่คุณจะมีเหตุผลที่ดีจริงๆสำหรับเหตุผลที่คุณต้องการทำสิ่งที่คุณต้องการฉันจะติด DHCP กับ witrh จากคำถามของคุณฉันเห็นว่าสิ่งที่คุณต้องการดังนั้นถ้าไม่มีใครรู้วิธีที่จะทำฉันจะรอและอยู่กับ DHCP จนกว่าจะมีคนให้คำตอบที่ดีกว่า แม้ว่าหากคุณไม่มีชิ้นส่วนมากกว่า 1-2 ชิ้นและไม่มีอะไรในเครือข่าย (อุปกรณ์เสริมสำหรับสื่อสิ่งพิมพ์อื่น ๆ ) ฉันก็จะไม่ใช้ Static IP เป็น IDK อย่างไรหรือถ้าเป็นไปได้ที่จะตั้งค่ารายการเหล่านี้ด้วย IP แบบคงที่ บางทีคุณสามารถทำสิ่งที่คุณต้องการถ้าคุณได้รับเราเตอร์โอเพ่นซอร์สและคุณสามารถทำสิ่งที่คุณต้องการเพียงแค่ใช้ IP แบบคงที่สำหรับเครื่องของคุณโดยใช้ที่อยู่ mac เป็นวิธีในการระบุและตั้งค่า IP และ ส่วนที่เหลือของเครือข่ายสามารถ bne DHCP IDK อย่างที่ฉันไม่เคยทำมาก่อนฉันเพิ่งจะทิ้งไอเดียดังนั้นขออภัยที่ไม่มีคำตอบให้คุณ แม้ว่าลิงค์ที่โพสต์โดยไบรอันจะดูเหมือนทรัพยากรที่ดีใน DHCP และปัญหา IP แบบคงที่ นอกจากนี้สำหรับเราเตอร์โอเพ่นซอร์สฉันเชื่อว่า Netgear และ D-Link ทำให้ฉันมั่นใจมากขึ้น แต่ IMO ทั้งสองแบรนด์เป็นสิ่งที่ฉันจะเลือก ฉันไม่ชอบ Linksys เนื่องจากพวกเขาซื้อโดยนวนิยาย (คุณคิดว่าพวกเขาจะดีกว่า แต่ไม่ใช่ IMO โดยส่วนตัวแล้วฉันชอบ D-link เนื่องจากเป็นเราเตอร์ที่ปรับแต่งได้มากที่สุดที่ฉันพบ) นอกจากนี้สำหรับเราเตอร์โอเพ่นซอร์สฉันเชื่อว่า Netgear และ D-Link ทำให้ฉันมั่นใจมากขึ้น แต่ IMO ทั้งสองแบรนด์เป็นสิ่งที่ฉันจะเลือก ฉันไม่ชอบ Linksys เนื่องจากพวกเขาซื้อโดยนวนิยาย (คุณคิดว่าพวกเขาจะดีกว่า แต่ไม่ใช่ IMO โดยส่วนตัวแล้วฉันชอบ D-link เนื่องจากเป็นเราเตอร์ที่ปรับแต่งได้มากที่สุดที่ฉันพบ) นอกจากนี้สำหรับเราเตอร์โอเพ่นซอร์สฉันเชื่อว่า Netgear และ D-Link ทำให้ฉันมั่นใจมากขึ้น แต่ IMO ทั้งสองแบรนด์เป็นสิ่งที่ฉันจะเลือก ฉันไม่ชอบ Linksys เนื่องจากพวกเขาซื้อโดยนวนิยาย (คุณคิดว่าพวกเขาจะดีกว่า แต่ไม่ใช่ IMO โดยส่วนตัวแล้วฉันชอบ D-link เนื่องจากเป็นเราเตอร์ที่ปรับแต่งได้มากที่สุดที่ฉันพบ)

ลองดูที่ลิงค์นี้และคุณอาจทำอะไรกับเราเตอร์ของคุณได้มากขึ้นถ้ามันรองรับ

ไซต์นี้มีเราเตอร์เฟิร์มแวร์


-1

ไม่คุณไม่สามารถทำเช่นนั้นได้ DHCP กำหนด IP ตามที่อยู่ฮาร์ดแวร์ของคุณ แต่ละอินเตอร์เฟสแบบฟิสิคัลมีเพียงหนึ่งในนั้นดังนั้น DHCP จะกำหนด IP หนึ่งรายการให้กับอินเตอร์เฟสแบบฟิสิคัลเท่านั้น

ฉันอยากจะแนะนำให้คุณตั้งค่า IP ของส่วนต่อประสานแบบคงที่

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