Это возможно, только если два 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);
}
Вы будете в конечном итоге с macvlan0
и macvlan1
каждый со своим собственным DHCP-полученный IP - адрес, и eth0
который работает, но не имеет IP - адрес. Кроме того, вы можете создать только один интерфейс MAC-VLAN и запустить один экземпляр DHCP для eth0
себя.
Использование статических или назначенных DHCP IP-адресов - выбор, который вы делаете для своего компьютера.
Здесь есть хорошее руководство .
Он содержит множество деталей и помогает избежать проблем, которые могут возникнуть при использовании статического адреса вместо назначенного DHCP, например, как подключиться к DNS-серверам и шлюзам.
источник
Я никогда не видел конфигурацию DHCP, которая позволила бы серверу DHCP отправлять несколько адресов интерфейсу. Я не верю, что протокол поддерживает это. Как только вы получаете несколько IP-адресов на интерфейсе, вы действительно должны настроить их как статические адреса.
Некоторые клиенты DHCP позволяют назначать статический адрес, когда адрес указан. Я не верю, что Windows позволит вам добавить более одного.
Убедитесь, что все ваши статические адреса находятся за пределами диапазона адресов DCHP.
источник
Я не знаю точно, но я верю, что если у вас нет маршрутизатора с открытым исходным кодом, вам придется использовать статический IP-адрес, чтобы делать то, что вы хотите. IMO, если у вас нет ДЕЙСТВИТЕЛЬНО веской причины, почему вы хотите делать то, что вы хотите, я бы просто придерживался DHCP. из твоего вопроса я вижу, что ты этого хочешь, так что если кто-то не знает, как это сделать, я подожду и останусь с DHCP, пока кто-нибудь не даст лучший ответ. Хотя, если у вас нет более 1-2 штук и ничего больше в сети (носители для принтеров и т. Д.), Я бы не использовал статические IP-адреса в качестве IDK, как или если можно установить эти элементы со статическим IP-адресом. Может быть, вы можете делать то, что вы хотите, если вы получаете маршрутизатор с открытым исходным кодом, и вы можете заставить его делать то, что вы хотите, просто использовать статический IP-адрес для вашей машины, используя MAC-адрес как способ его идентификации и установить его IP и остальная часть сети может быть DHCP-сервером. IDK, так как я никогда не делал ничего, я просто выбрасываю идеи, так что извините за отсутствие ответа для вас. Хотя ссылка, представленная Брайаном, выглядит как хороший ресурс по вопросам DHCP и статического IP. Также я уверен, что для маршрутизатора с открытым исходным кодом Netgear и D-Link делают их, но я бы выбрал именно эти два бренда. Я лично не люблю Linksys, так как они были куплены романом (можно подумать, что они будут лучше, но НЕ ИМО. Лично я предпочитаю D-link, так как они являются наиболее настраиваемыми маршрутизаторами, которые я когда-либо обнаруживал). Также я уверен, что для маршрутизатора с открытым исходным кодом Netgear и D-Link делают их, но я бы выбрал именно эти два бренда. Я лично не люблю Linksys, так как они были куплены романом (можно подумать, что они будут лучше, но НЕ ИМО. Лично я предпочитаю D-link, так как они являются наиболее настраиваемыми маршрутизаторами, которые я когда-либо обнаруживал). Также я уверен, что для маршрутизатора с открытым исходным кодом Netgear и D-Link делают их, но я бы выбрал именно эти два бренда. Я лично не люблю Linksys, так как они были куплены романом (можно подумать, что они будут лучше, но НЕ ИМО. Лично я предпочитаю D-link, так как они являются наиболее настраиваемыми маршрутизаторами, которые я когда-либо обнаруживал).
Также проверьте эту ссылку, и вы можете сделать больше с вашим маршрутизатором, если он поддерживается
Этот сайт имеет прошивку маршрутизатора
источник
Нет, ты не можешь этого сделать. DHCP назначает IP на основе вашего аппаратного адреса. Каждый физический интерфейс имеет только один из них, поэтому DHCP назначит только один IP-адрес физическому интерфейсу.
Я бы посоветовал вам установить статические IP-адреса интерфейса.
источник