Alias ​​alamat IP yang diberikan oleh DHCP

17

Saya ingin membuat beberapa alias untuk eth0, tetapi memiliki alamat yang ditetapkan oleh DHCP alih-alih diatur ke IP statis. Apakah ini mungkin?

Semua contoh yang saya lihat menetapkan IP statis menggunakan perintah:

ifconfig eth0:0 192.168.1.11 up
Steve
sumber

Jawaban:

17

Ini hanya mungkin jika kedua klien DHCP menggunakan alamat MAC yang berbeda. Yang berarti mereka tidak dapat menjalankan keduanya pada antarmuka jaringan fisik yang sama, yang memiliki satu alamat MAC.

Solusinya adalah antarmuka jaringan virtual MAC-VLAN Linux. Antarmuka MAC-VLAN adalah antarmuka jaringan virtual yang didukung oleh antarmuka fisik, tetapi menggunakan dengan alamat MAC yang berbeda, yang dihasilkan secara acak saat Anda membuat perangkat MAC-VLAN.

Setelah Anda membuat antarmuka MAC-VLAN menggunakan antarmuka fisik, Anda menggunakannya dengan cara yang sama seperti yang Anda lakukan pada yang fisik. Dalam kasus khusus Anda, Anda dapat menjalankan satu klien DHCP pada antarmuka fisik, dan yang lain pada perangkat MAC-VLAN. Setiap perangkat (fisik dan MAC-VLAN) kemudian dapat memiliki alamat IP sendiri.

Perangkat MAC-VLAN baru macvlan0dapat dibuat eth0dengan menjalankan

ip link add dev macvlan0 link eth0 type macvlan

Itu bisa dihapus dengan menjalankan

ip link delete dev macvlan0

Menggunakan NCD, perangkat lunak konfigurasi jaringan saya ( http://code.google.com/p/badvpn/wiki/NCD ), program NCD berikut ini akan membuat dua perangkat MAC-VLAN dari eth0( macvlan0dan macvlan1), menjalankan DHCP pada masing-masingnya, dan memberi mereka alamat IP yang diperoleh. Anda dengan mudah melakukan hal-hal lain seperti menambah rute dan server DNS; baca halaman NCD jika Anda tertarik.

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);
}

Anda akan berakhir dengan macvlan0dan macvlan1masing-masing dengan alamat IP yang diperoleh DHCP-nya sendiri, dan eth0yang sudah habis tetapi tidak memiliki alamat IP. Atau, Anda dapat membuat hanya satu antarmuka MAC-VLAN, dan menjalankan satu instance DHCP dengan eth0sendirinya.

Ambroz Bizjak
sumber
1
Permintaan maaf untuk membangkitkan ini dari kematian, tetapi pernyataan "Ini hanya mungkin jika dua klien DHCP menggunakan alamat MAC yang berbeda" salah dari perspektif protokol DHCP. Bahkan pada tahun 2011 DHCP masih didasarkan pada ID Klien, yang tidak harus cocok dengan alamat MAC perangkat. (RFC 2131, diterbitkan pada '97)
Andre Kostur
0

Menggunakan alamat IP yang ditetapkan statis atau DHCP adalah pilihan yang Anda buat untuk komputer Anda.

Ada tutorial yang bagus di sini .

Ini berisi banyak detail, dan membantu Anda menghindari masalah yang dapat Anda miliki jika Anda menggunakan alamat statis dan bukan DHCP, misalnya cara menyambung ke server DNS dan gateway.

Bryan
sumber
0

Saya belum pernah melihat konfigurasi DHCP yang akan memungkinkan server DHCP untuk mengirim beberapa alamat ke sebuah antarmuka. Saya tidak percaya protokol mendukungnya. Setelah Anda masuk ke beberapa alamat IP pada antarmuka, Anda benar-benar harus mengonfigurasikannya sebagai alamat statis.

Beberapa klien DHCP memungkinkan alamat statis diberikan ketika alamat diberikan. Saya tidak percaya Windows akan memungkinkan Anda untuk menambahkan lebih dari satu.

Pastikan semua alamat statis Anda berada di luar rentang alamat DCHP.

BillThor
sumber
-1

Saya tidak tahu pasti. Tapi saya percaya kecuali Anda memiliki router open source maka Anda harus menggunakan IP statis untuk melakukan apa yang Anda inginkan. IMO kecuali Anda memiliki alasan yang BENAR-BENAR mengapa Anda ingin melakukan apa yang Anda inginkan. Saya hanya akan tetap dengan DHCP witrh. dari pertanyaan Anda saya lihat itulah yang Anda inginkan jadi kecuali seseorang tahu bagaimana melakukannya, saya akan menunggu dan tetap dengan DHCP sampai seseorang memberikan jawaban yang lebih baik. Meskipun jika Anda tidak memiliki lebih dari 1-2 pcs dan tidak ada yang lain di jaringan (extender media printer dll) maka saya tidak akan menggunakan IP Statis sebagai IDK bagaimana atau jika mungkin untuk mengatur item ini dengan IP statis. Mungkin Anda dapat melakukan apa yang Anda inginkan jika Anda mendapatkan Open source Router dan Anda mungkin dapat membuatnya melakukan apa yang Anda inginkan hanya menggunakan IP statis untuk mesin Anda menggunakan alamat mac sebagai cara untuk mengidentifikasi dan mengatur IP dan sisa jaringan bisa menjadi DHCP. IDK karena saya belum pernah melakukan thins saya hanya membuang ide jadi Maaf karena tidak memiliki jawaban untuk Anda. Meskipun tautan yang diajukan oleh Bryan terlihat seperti sumber yang bagus tentang DHCP dan masalah IP Statis. Juga untuk router Open Source saya percaya Netgear dan D-Link membuat mereka saya yakin lebih tetapi IMO dua merek ini adalah yang akan saya pilih. Saya pribadi tidak suka Linksys karena mereka dibeli oleh novel (Anda akan berpikir mereka akan lebih baik tetapi BUKAN IMO. Secara pribadi saya lebih suka D-link karena mereka adalah router paling dapat disesuaikan yang saya temukan.) Juga untuk router Open Source saya percaya Netgear dan D-Link membuat mereka saya yakin lebih tetapi IMO dua merek ini adalah yang akan saya pilih. Saya pribadi tidak suka Linksys karena mereka dibeli oleh novel (Anda akan berpikir mereka akan lebih baik tetapi BUKAN IMO. Secara pribadi saya lebih suka D-link karena mereka adalah router paling dapat disesuaikan yang saya temukan.) Juga untuk router Open Source saya percaya Netgear dan D-Link membuat mereka saya yakin lebih tetapi IMO dua merek ini adalah yang akan saya pilih. Saya pribadi tidak suka Linksys karena mereka dibeli oleh novel (Anda akan berpikir mereka akan lebih baik tetapi BUKAN IMO. Secara pribadi saya lebih suka D-link karena mereka adalah router paling dapat disesuaikan yang saya temukan.)

Periksa juga tautan ini dan Anda mungkin dapat berbuat lebih banyak dengan router Anda jika didukung

Situs ini memiliki Router Firmware

Hippi
sumber
-1

Tidak, kamu tidak bisa melakukan itu. DHCP memberikan IP berdasarkan alamat perangkat keras Anda. Setiap antarmuka fisik hanya memiliki satu di antaranya, sehingga DHCP hanya akan menetapkan satu IP untuk antarmuka fisik.

Saya akan menyarankan Anda untuk hanya mengatur IP antarmuka secara statis.

Belrog
sumber