Несколько аренды DHCP на одном интерфейсе

Если я хочу иметь 2 статических IP-адреса, я могу сделать что-то вроде этого:

auto eth0
    iface eth0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    broadcast 192.168.1.255

auto eth0:0
    iface eth0:0 inet static
    address 192.168.1.11
    netmask 255.255.255.0
    broadcast 192.168.1.255

Однако я хотел бы использовать DHCP для получения адресов. Я попробовал следующее:

auto eth0
    iface eth0 inet dhcp

auto eth0:0
    iface eth0:0 inet dhcp

... но я получаю только eth0, а не второй IP. Есть ли простой способ сделать это?

7
задан 6 August 2014 в 22:24

3 ответа

После определенного исследования по-видимому, Вы не можете сделать этого.

подынтерфейс не может запросить другой IP-адрес, потому что это использует тот же MAC-адрес в качестве физического интерфейса, и так как запросы DHCP MAC-адресом, Вы не можете получить двух дюйм/с для того же интерфейса.

ответ от SuperUser предлагает следующие два метода:

Метод 1

Создает сценарий, который сделает что-то вроде этого (с подынтерфейсом, определенным на основном устройстве):

  1. интерфейс Primary выпускает DHCP и получает IP-адрес,
  2. , macchanger изменяет MAC-адрес интерфейса,
  3. DHCP проблем интерфейса Sub и получает IP-адрес,
  4. Возвращаются мак адрес с macchanger.
  5. Уничтожают клиента DHCP так, чтобы он автоматически не работал позже.

Отрабатывают время владения IP-адреса, который Вам дают и планируете этот сценарий для выполнения снова, прежде чем арендный договор истечет.

Метод 2

Для этого Вам будет нужно iproute2 установленный. Следующая команда добавляет виртуальный интерфейс, связанный с существующим интерфейсом eth0:

ip link add link eth0 address 00:11:22:33:44:55 virtual0 type macvlan

Замена Mac и "virtual0" название интерфейса к тому, что Вы любите. Включите его:

ip link set virtual0 up

Тогда настраивают использование dhcpd или dhclient или ifconfig по мере необходимости. Я протестировал, это на Debian сжимает - Ваш дистрибутив не может иметь всего необходимого, включенного в ядре (macvlan особенно).

Источник: SuperUser: Получение 2 IP-адресов на одной сетевой плате, с помощью DHCP

Другие источники:

0
ответ дан 6 August 2014 в 22:24

Также необходимо удостовериться, что основной интерфейс настроен для неразборчивого режима:

ip link set dev eth0 promisc on

При использовании Виртуальной машины, также удостоверьтесь, что хост VM разрешает гостю использовать неразборчивый режим.

можно принести это все вместе в /etc/network/interfaces как это:

# Primary interface
auto eth0
iface eth0 inet dhcp
    up ip link set dev eth0 promisc on

# Macvlan interfaces
auto vir1
iface vir1 inet dhcp
    pre-up ip link add link eth0 address 02:cd:ab:00:10:01 vir1 type macvlan
    post-down ip link delete vir1

auto vir2   
    iface vir2 inet dhcp
    pre-up ip link add link eth0 address 02:cd:ab:00:10:02 vir2 type macvlan
    post-down ip link delete vir2

... и т.д.

6
ответ дан 6 August 2014 в 22:24

Подробно останавливаясь на ответе David, это работало на меня, не нуждаясь promsic в режиме. Я нашел полезным добавить имя хоста, заставить мой маршрутизатор разрешать DNS для каждого интерфейса.

auto vir1
iface vir1 inet dhcp
    hostname vir1-hostname
    pre-up ip link add link eth0 address 02:cd:ab:00:10:01 vir1 type macvlan
    post-down ip link delete vir1
0
ответ дан 7 October 2019 в 09:50

Другие вопросы по тегам:

Похожие вопросы: