DHCPによって割り当てられたIPアドレスエイリアス


17

eth0にいくつかのエイリアスを作成したいのですが、静的IPに設定されるのではなく、DHCPによってアドレスが割り当てられます。これも可能ですか?

私が見たすべての例では、次のコマンドを使用して静的IPを割り当てています。

ifconfig eth0:0 192.168.1.11 up

回答:


17

これは、2つのDHCPクライアントが異なるMACアドレスを使用している場合にのみ可能です。つまり、単一のMACアドレスを持つ同じ物理ネットワークインターフェイスで両方を実行することはできません。

ソリューションは、Linuxの仮想MAC-VLANネットワークインターフェイスです。MAC-VLANインターフェースは、物理インターフェースに裏打ちされた仮想ネットワークインターフェースですが、MAC-VLANデバイスの作成時にランダムに生成される異なるMACアドレスを使用します。

物理インターフェイスを使用してMAC-VLANインターフェイスを作成したら、物理インターフェイスと同じように使用します。特定のケースでは、物理インターフェイスで1つのDHCPクライアントを実行し、MAC-VLANデバイスで別のDHCPクライアントを実行できます。各デバイス(物理およびMAC-VLAN)は、独自のIPアドレスを持つことができます。

実行macvlan0することにより、新しいMAC-VLANデバイスを作成できます。eth0

ip link add dev macvlan0 link eth0 type macvlan

実行することで削除できます

ip link delete dev macvlan0

ネットワーク構成ソフトウェア(http://code.google.com/p/badvpn/wiki/NCD)を使用して、次のNCDプログラムはeth0macvlan0およびmacvlan1)から2つのMAC-VLANデバイスを作成し、それぞれで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);
}

最終的にmacvlan0macvlan1それぞれが独自のDHCPで取得したIPアドレスをeth0持ち、IPアドレスを持たないアップ状態になります。または、MAC-VLANインターフェイスを1つだけ作成し、eth0それ自体で1つのDHCPインスタンスを実行できます。


1
死からこれを上げることをおologiesびしますが、「これは、2つのDHCPクライアントが異なるMACアドレスを使用している場合にのみ可能」というステートメントは、DHCPプロトコルの観点からは正しくありません。2011年でも、DHCPはクライアントIDに基づいていましたが、デバイスのMACアドレスと一致する必要はありません。(RFC 2131、'97年に公開)
アンドレコストゥー

0

静的IPアドレスまたはDHCPによって割り当てられたIPアドレスを使用することは、コンピューターに対して行う選択です。

ここに良いチュートリアルがあります

これには多くの詳細が含まれており、DHCPで割り当てられたアドレスではなく静的アドレスを使用する場合に発生する可能性がある問題(DNSサーバーやゲートウェイへの接続方法など)を回避するのに役立ちます。


0

DHCPサーバーがインターフェイスに複数のアドレスを送信できるようにするDHCP構成を見たことはありません。プロトコルがサポートしているとは思わない。インターフェイスで複数のIPアドレスを取得したら、それらを静的アドレスとして設定する必要があります。

一部のDHCPクライアントでは、アドレスが提供されたときに静的アドレスを割り当てることができます。Windowsで複数追加できるとは思わない。

すべての静的アドレスがDCHPアドレス範囲外であることを確認してください。


-1

確かなことはわかりませんが、オープンソースのルーターがない限り、静的IPを使用して必要なことを行う必要があると思います。IMOは、あなたがやりたいことを本当に正当な理由がない限り、DHCPに固執します。あなたの質問から私はあなたが望むものを見るので、誰かがそれを行う方法を知らない限り、私は誰かがより良い答えを与えるまで待ってDHCPにとどまります。ネットワーク上に1-2個以上しかなく、プリンタ(メディアエクステンダーなど)を何も持っていない場合、静的IPをIDKとして使用しないか、静的IPでこれらのアイテムを設定することは可能ですか?もしかしたら、オープンソースのルーターを手に入れれば、あなたがやりたいことをできるかもしれませんし、MACアドレスを使ってそれを識別し、そのIPを設定する方法としてあなたのマシンに静的IPを使うようにしたいかもしれません。ネットワークの残りの部分はDHCPを使用できません。IDKは私が一度もやったことがないので、私はただアイデアを捨てているだけなので、答えが得られないことを残念に思います。Bryanによって提示されたリンクは、DHCPと静的IPの問題に関する優れたリソースのように見えますが。また、オープンソースのルーターについては、NetgearとD-Linkがそれらを作ると私は確信していますが、IMOはこれら2つのブランドが私が選択するものです。私は個人的にLinksysを小説で買ったので好きではありません(彼らはIMOではなくより良いと思うでしょう。個人的には、私が見つけた最もカスタマイズ可能なルーターであるDリンクを好みます。)また、オープンソースのルーターについては、NetgearとD-Linkがそれらを作ると私は確信していますが、IMOはこれら2つのブランドが私が選択するものです。私は個人的にLinksysを小説で買ったので好きではありません(彼らはIMOではなくより良いと思うでしょう。個人的には、私が見つけた最もカスタマイズ可能なルーターであるDリンクを好みます。)また、オープンソースのルーターについては、NetgearとD-Linkがそれらを作ると私は確信していますが、IMOはこれら2つのブランドが私が選択するものです。私は個人的にLinksysを小説で買ったので好きではありません(彼らはIMOではなくより良いと思うでしょう。個人的には、私が見つけた最もカスタマイズ可能なルーターであるDリンクを好みます。)

また、このリンクをチェックしてください。サポートされている場合は、ルーターでさらに多くのことができるかもしれません。

このサイトにはルーターファームウェアがあります


-1

いいえ、できません。DHCPは、ハードウェアアドレスに基づいてIPを割り当てます。各物理インターフェイスにはそれらの1つしかありません。したがって、DHCPは1つのIPのみを物理インターフェイスに割り当てます。

インターフェイスIPを静的に設定することをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.