Конфигурирование хитрых интерфейсов в Debian’е (original) (raw)

[User Picture] From: ufm2015-11-04 08:43 pm (UTC) (Link)

Другой способ описания вланов:
iface vlan5 inet static
address 192.168.20.30
netmask 255.255.255.0
vlan_raw_device eth1

[User Picture] From: dil2015-11-04 09:08 pm (UTC) (Link)

Да, так тоже работает, но eth1.5 на одну строчку короче :)

[User Picture] From: ufm2015-11-04 09:45 pm (UTC) (Link)

Не поверишь - до сих пор бывает софт, неадекватно реагирующий на точку в имени интерфеса. Впрочем - и на двоеточие тоже, поэтому если мне надо повесить на один интерфейс два адреса - я предпочитаю это делать через ip.

[User Picture] From: dil2015-11-05 10:19 am (UTC) (Link)

Это какой софт? Системный линуксовый вроде нормально понимает, а прикладному имена интерфейсов вообще обычно пофиг.

[User Picture] From: ufm2015-11-05 10:50 am (UTC) (Link)

Честно - уже не вспомню. Но в своей админской жизни встречал.

О! Спасибо за собирание этого в одном месте!
Что до вопроса: насколько я помню - это решается написанием скрипта-обработчика и навешиванием его на событие получения адреса по dhcp

[User Picture] From: dil2015-11-05 12:04 pm (UTC) (Link)

Ну в общем да, скриптик в /etc/dhcp/dhclient-[enter|exit]-hooks.d/ , а вот что в нём написать, чтобы маршрут от ethFake не приделывался в качестве дефолтового?

Никогда такую задачу не решал, но если верить man dhclient-script:
"..A default route should be set using newrouters,andstaticroutesmayneedtobesetupusingnew_routers, and static routes may need to be set up using newrouters,andstaticroutesmayneedtobesetupusingnew_static_routes." в разделе "Bound".
Подозреваю, само навешивание скрипта перекладывает работу по маршрутам и DNS с ОС на скрипт. Соответственно, в скрипте описываем только то, что нам нужно.
В своей практике в похожем случае (когда некоторым хостам в сегменте нужны разные default gateways или по каким-то причинам default gateway не выдавать вообще) использую конструкцию с виртуалками по количеству вариантов с маршрутами. Соответственно, по MACам DHCP-сервер выдаёт default gateway на нужную виртуалку, а в ней уже описаны и фильтрация и маршрутизация. Для закрепления - ставим перед компом с виртуалками-шлюзами управляемый коммутатор и прописываем на нём так или иначе IP-MAC binding по портам.
Да, я знаю про FIB, но мне кажется это глючный вариант. С виртуалками - надёжнее.

[User Picture] From: dil2015-11-06 10:20 pm (UTC) (Link)

Там по умолчанию уже есть пачка скриптов для отладочной печати получаемых параметров и перезапуска ntp, sendmail, и пр. при обновлении dhcp, но маршруты они не устанавливают, это dhcp-клиент как-то сам делает.

Заинтригован. В понедельник поеду к одному из конторских тестовых стендов для планового upgrade, заодно подниму виртуалку (там как раз на сеть с виртуалками есть свой DHCP-сервер) и посмотрю как оно. По результатам отпишусь тут.

в dhclient.conf вписать для данного интерфейса
request subnet-mask, broadcast-address, time-offset;

На сколько я понимаю, в таком случае все остальные options (в том числе и routers) будут просто проигнорированы.

[User Picture] From: dil2015-11-05 05:48 pm (UTC) (Link)

Вообще говоря, request - это опции, которые клиент запрашивает у сервера, а сервер может некоторые из них и не вернуть, если у него их нет, а с другой стороны, может вернуть и те, которые клиент не спрашивал.

Но в данном случае проблема в том, что routers таки нужны, если этот псевдоинтерфейс со своим IP тоже будет использоваться для соединений. Только их надо вписывать не в main, а в какую-нибудь отдельную маршрутную таблицу.

А вот с этого места поподробнее...
Разве сервер может вернуть что-то, что у него не спрашивали? Проверять мне очень лень, но кажется, что не должон.

Ну а что касается, что адрес гейта таки нужен, но для чего-то особенного, то это в задаче не стояло :)
Другое дело, что так не только default gateway, но и простых static routes не получишь. Что несколько неаккуратно, да.

[User Picture] From: dil2015-11-05 09:48 pm (UTC) (Link)

Не должон, но могёт.
RFC 2131:
"The server MUST supply as many of the requested parameters as possible and MUST omit any parameters it cannot provide."
с другой стороны, " The server MUST return to the client:
...
o Any parameters specific to this client (as identified by the contents of 'chaddr' or 'client identifier' in the DHCPDISCOVER or DHCPREQUEST message), e.g., as configured by the network administrator,

o Any parameters specific to this client's class (as identified by the contents of the 'vendor class identifier' option in the DHCPDISCOVER or DHCPREQUEST message), e.g., as configured by the network administrator;
...
o Parameters with non-default values on the client's subnet."

Вот routers по-моему подпадает под последний пункт.

Я что-то не очень понял что есть "default values on client's subnet".
Потому просто проверил. Таки не получает он гейта. Возможно, что оно от сервера зависит.

[User Picture] From: dil2015-11-05 10:08 pm (UTC) (Link)

Возможно, это про broadcast и network, если они не совпадают с тем, что получается из клиентского IP и маски подсети. А может как раз про то, у кого дефолтовых значений вообще нет, типа того самого default gw, или DNS, или ещё чего.

Гейта мне провайдер тоже не выдал, но я сильно подозреваю, что это зависит от настроек сервера.

[User Picture] From: dil2015-11-05 10:35 pm (UTC) (Link)

Ага, стоило добавить в сервер option dhcp-parameter-request-list 3;, и он стал всегда выдавать клиенту routers независимо от того, запрашивал он их или нет.

[User Picture] From: dil2015-11-05 09:56 pm (UTC) (Link)

Провёл практический эксперимент: в dhcp.conf явно указал request subnet-mask, broadcast-address, time-offset, interface-mtu;.
При этом в DHCPDISCOVER и DHCPREQUEST в Parameter request list натурально были указаны только эти 4 опции - 1, 28, 2, 26.
А сервер в DHCPOFFER и в DHCPACK вернул кроме этих четырёх ещё 51 (IP address lease time), что вполне логично, но вдобавок и 6 (DNS servers), которых вовсе не просили. Routers, правда, не вернул, но ведь мог же..

Прибить дефолт роут гвоздями с минимальной метрикой.

[User Picture] From: dil2015-11-12 08:33 am (UTC) (Link)

Так он тоже по DHCP получается, как его прибить?

"а это уже отдельный вопрос"

[User Picture] From: dil2015-11-12 09:35 pm (UTC) (Link)

Ну как отдельный, если это часть ответа на вопрос, заданный в посте, то ответ должен включать все дополнительные костыли с подробностями..

[User Picture] From: byg2015-11-22 12:32 pm (UTC) (Link)

а как вы решаете вопрос с default gw когда 2 и более физических интерфейсов по dhcp?

[User Picture] From: dil2015-11-22 01:49 pm (UTC) (Link)

А в данном случае не принципиально, физические интерфейсы или виртуальные, поведение dhcp-клиента от этого не меняется.