Вопрос или проблема
Короче говоря: мне нужно настроить два интерфейса для одного физического интерфейса, один с статическим и один с динамическим IP-адресом. Я знаю, как это сделать в /etc/network/interfaces
, но мой устройство использует dhcpcd.conf
.
Длинная история:
У меня есть два Raspberry Pi с Raspbian в доме моих родителей. Оба имеют статический IP-адрес, и один из них использует клиент OpenVPN, который позволяет мне получать доступ к этой сети, потому что весь сетевой IP-адрес скрыт за NAT провайдера.
Теперь мои родители получают обновление подключения с плохого шумного DSL на новую блестящую оптическую линию. Так что мне нужно подготовиться, потому что DSL-роутер будет заменен, и его конфигурация тоже будет изменена, в основном подсеть, вероятно, изменится, и статические адреса перестанут работать.
Я добавил второй интерфейс в /etc/network/interfaces
одного из устройств, чтобы получить любой IP через DHCP:
auto eth0:1
iface eth0:1 inet dhcp
Как только он подключается, он связывается с моим сервером здесь через ssh
, чтобы я мог к нему подключиться и обновить статическую конфигурацию.
На другом устройстве установлена более новая версия Raspbian, которая использует dhcpcd
. Я хотел бы сделать то же самое (второй интерфейс, IP от DHCP), но не знаю, как.
Моя текущая конфигурация:
# Разрешите пользователям этой группы взаимодействовать с dhcpcd через управляющий сокет.
#controlgroup wheel
# Уведомите DHCP-сервер о нашем имени хоста для DDNS.
hostname
# Использовать аппаратный адрес интерфейса для идентификатора клиента.
clientid
# или
# Используйте тот же DUID + IAID, что установлен в DHCPv6 для DHCPv4 ClientID согласно RFC4361.
# Некоторые DHCP-серверы, не соответствующие RFC, не отвечают с установленными параметрами.
# В этом случае закомментируйте duid и активируйте clientid выше.
#duid
# Сохранять конфигурацию интерфейса, когда dhcpcd выходит.
persistent
# Поддержка быстрого коммита.
# Безопасно включить по умолчанию, потому что для фактической работы требуется эквивалентная опция, установленная на сервере.
option rapid_commit
# Список параметров для запроса у DHCP-сервера.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
# Большинство дистрибутивов поддерживают NTP.
option ntp_servers
# Соблюдать сетевой MTU. Это применяется к маршрутам DHCP.
option interface_mtu
# Идентификатор сервера необходим согласно RFC2131.
require dhcp_server_identifier
# Генерировать стабильные частные IPv6-адреса вместо аппаратных.
slaac private
# Пример статической конфигурации IP:
interface eth0
static ip_address=192.168.1.3/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8
interface eth0:1
# не знаю, что здесь указать #
# Возможно вернуться к статическому IP, если DHCP не работает:
# определить статический профиль
#profile static_eth0
#static ip_address=192.168.1.23/24
#static routers=192.168.1.1
#static domain_name_servers=192.168.1.1
# возврат к статическому профилю на eth0
#interface eth0
#fallback static_eth0
Конечно, мне стоит сделать резервную копию файла перед его редактированием, чтобы не потерять конфигурацию, но я этого не сделал.
К сожалению, нет возможности для проб и ошибок, так как у меня нет физического доступа к устройству, и я могу только надеяться, что смогу добраться туда на Рождество, если только омикрон и локдауны не наступят быстрее.
Вы можете отключить dhcpcd и использовать устаревший метод сетевой конфигурации, который вы используете на своем первом Raspberry.
sudo systemctl disable --now dhcpcd
Я также думаю, что алиас интерфейса в /etc/network/interfaces должен быть статическим IP, потому что только оригинальный интерфейс может назначить шлюз, поэтому в случае неправильной статической конфигурации у вас не будет соединения. Больше информации в debianwiki.
Ответ или решение
Как настроить dhcpcd.conf для статического и динамического IP-адреса на Raspberry Pi
Для настройки двух интерфейсов на одном физическом интерфейсе Raspberry Pi, где один будет иметь статический IP-адрес, а другой динамический, необходимо правильно организовать файл конфигурации dhcpcd.conf
. При этом важно учесть, что у вас нет физического доступа к устройству, поэтому изменения должны быть выполнены корректно.
Установка статического и динамического IP
1. Основные параметры конфигурации
Ваш текущий файл dhcpcd.conf
должен содержать следующие ключевые элементы для настройки:
interface eth0
static ip_address=192.168.1.3/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8
Здесь eth0
— это основной интерфейс, который будет иметь статический IP-адрес 192.168.1.3 с маршрутизатором 192.168.1.1.
2. Конфигурация для динамического IP
Чтобы добавить второй интерфейс для получения динамического IP-адреса через DHCP, вам нужно использовать алиасы. В вашем случае это будет выглядеть следующим образом:
interface eth0:1
alias eth0
require dhcp
Алиас eth0:1
позволит второму виртуальному интерфейсу использовать DHCP для получения IP-адреса. Важно, чтобы основной интерфейс eth0
оставался основным для маршрутизации, поскольку он настроен на статический IP-адрес.
Полный пример конфигурации dhcpcd.conf
Ниже предоставлен полный пример файла dhcpcd.conf
, с учетом ваших запросов:
# Позволить пользователям этой группы взаимодействовать с dhcpcd через управляющий сокет.
#controlgroup wheel
# Укажите имя хоста
hostname
# Используйте аппаратный адрес интерфейса для идентификатора клиента.
clientid
# Обеспечьте сохранение конфигурации интерфейса при выходе dhcpcd.
persistent
# Включите клиента DHCP с использованием динамического IP
interface eth0
static ip_address=192.168.1.3/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8
interface eth0:1
require dhcp
3. Постскриптум
Не забудьте сделать резервную копию вашего текущего файла конфигурации перед его редактированием. В случае ошибки, вы сможете восстановить предыдущую конфигурацию. Используйте команду:
sudo cp /etc/dhcpcd.conf /etc/dhcpcd.conf.bak
Это позволит вам избежать потери доступа к устройству.
Следуя приведенным рекомендациям, вы сможете подготовить Raspberry Pi к новым условиям, получив как статический, так и динамический IP-адреса без потери связи с устройством. Если возникнут сложности, внимательно проверьте конфигурацию и убедитесь, что все параметры указаны верно, чтобы избежать проблем с подключением.