Я пытался получить статический IP-адрес, работающий при установке Debian 10. Сервер должен работать в VLAN отдельно от любой другой сети. Идентификатор VLAN в соответствии с интерфейсом маршрутизатора - 3. Модель маршрутизатора - Pakedge RE-2.
Конфигурация роутера:
IP: 192.168.2.1
Netmask: 255.255.255.0
DHCP range: 192.168.2.2 - 192.168.2.10
Вот для чего настроена VLAN:
VLAN IP: 192.168.0.1
Netmask: 255.255.255.0
DHCP range: 192.168.0.10 - 192.168.0.254
Статический IP-адрес сервера 192.168.0.2
. Следующее - это / etc / network / interfaces:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
allow-hotplug eth0
#iface eth0 inet static
# address 192.168.0.2
# netmask 255.255.255.0
# gateway 192.168.0.1
Следующее - interfaces.d / eth0:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
#source /etc/network/interfaces.d/*
# The loopback network interface
#auto lo
#iface lo inet loopback
# The primary network interface
#auto eth0
#allow-hotplug eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
Я могу успешно пинговать доменные имена и IP-адреса с помощью dhclient eth0
, но он использует IP-адрес, который находится в диапазоне DHCP маршрутизатора. ip route
перед dhclient eth0
:
default via 192.168.0.1 dev eth0 onlink
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.2
ip route
после dhclient eth0
:
default via 192.168.0.1 dev eth0 onlink
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.2
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.3
'ip a' вывод перед dhclient eth0
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0b:db:be:9f:a5 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::20b:dbff:febe:9fa5/64 scope link
valid_lft forever preferred_lft forever
Я не знаю, что мне делать. Похоже, что шлюз может быть проблемой, поскольку dhcp работает, но изменение его на IP-адрес маршрутизатора (вне vlan), похоже, не работает, и он не работает независимо от того, сколько раз я перезагружаю или перезапускаю networking
демон. Еще хочу добавить, что вроде перезапускать networking
демон не обнаруживает изменений в /etc/network/interfaces.d/eth0
при перезапуске кажется, что каждое изменение, которое я вношу для тестирования, мне нужно перезапускать, что очень раздражает.
РЕДАКТИРОВАТЬ: Я также хотел бы добавить, что соединение Ethernet работает (домены и IP-адреса успешно отправляются, а веб-сайты работают) на других компьютерах, которые я подключил для тестирования (да, даже после отключения Wi-Fi). Похоже, у меня проблемы с этим конкретным сервером. У него Windows XP Professional установлена в другом разделе, но, похоже, он также не может общаться автоматически там. Я бы сказал, что это проблема с оборудованием, но dhcp работает нормально. Вероятно, другие компьютеры, которые я тестировал, использовали dhcp и просто подключались обратно к маршрутизатору за пределами VLAN, поскольку статика не была установлена. Я проведу повторную проверку без dhcp и dhcp, чтобы увидеть данный ip.
РЕДАКТИРОВАТЬ 2: я отключил DHCP-сервер для vlan и маршрутизатора, и я все еще не могу подключиться к Интернету на сервере. Я также хотел бы упомянуть, что я не мог пинговать 192.168.0.1 (IP-адрес vlan, то есть шлюз), прежде чем я отключил серверы DHCP, и я все еще не могу пинговать 192.168.0.1.
РЕДАКТИРОВАТЬ 3: Благодаря A.B я смог вручную использовать интерфейс vlan. Команды следующие: ip address delete 192.168.0.2/24 dev eth0; ip link add link eth0 name eth0.3 type vlan id 3; ip link set dev eth0.3 up; ip address add 192.168.0.2/24 dev eth0.3; ip route add default via 192.168.0.1 dev eth0.3
//Deletes the address assigned to eth0
ip address delete 192.168.0.2/24 dev eth0;
//Creates a link to eth0 with the vlan interface eth0.3 which is configured for vlan id 3
ip link add link eth0 name eth0.3 type vlan id 3;
//Sets eth0.3 up
ip link set dev eth0.3 up;
//Adds and associates 192.168.0.2/24 with eth0.3
ip address add 192.168.0.2/24 dev eth0.3;
//Configures the default route to go to the gateway 192.168.0.1 with the eth0.3 interface
ip route add default via 192.168.0.1 dev eth0.3;
Однако это не решает проблему с файлами конфигурации ifupdown. A.B говорит, что адрес на eth0 может быть причиной проблем ifupdown. В комментариях есть информация о настройке eth0.3 в качестве интерфейса в конфигурациях интерфейсов, которая может быть кому-то полезна. В итоге я установил пакет vlan, modprobing 8021q и создал файл с именем eth0.3
в /etc/network/interfaces.d/
со следующим:
auto eth0.3
iface eth0.3 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
vlan-raw-device eth0
Но, как уже говорилось, для меня это привело к сбою сетевого демона (после перезагрузки), потому что ifup не может вызвать eth0.3. Если у кого-то есть информация, которая может помочь решить эту проблему, это было бы здорово.
РЕДАКТИРОВАТЬ 4: Когда я удалил auto eth0.3
из eth0.3
в /etc/network/interfaces.d
, сетевой демон больше не выходил из строя при перезапуске и показывал, что он был активен и после перезагрузки systemctl --failed
показал, что ни один демон не запустился; однако пинг по-прежнему дает Destination Host Unreachable
(даже после перезапуска).
Я решил проблему с ifupdown.
Если кто-то, читающий это, не читал комментарии и другие ответы, установите vlan
пакет ('apt-get install vlan' или dpkg -i <vlan package name.deb>
(последнее, если вы не в сети и вручную переносите deb в систему)) и (я бы перезагрузился перед загрузкой и выполнением следующей части) загрузите модуль ядра 8021q через modprobe 8021q и / или поместите 8021q
в /etc/modules-load.d/modules.conf
поэтому он будет загружаться при каждой загрузке. Затем отредактируйте следующие файлы конфигурации сети (при необходимости замените ips или другие параметры конфигурации):
Пересмотр /etc/network/interfaces
это сработало:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
Пересмотр /etc/network/interfaces.d/eth0
это сработало:
# The primary network interface
auto eth0
allow-hotplug eth0
iface eth0 inet manual
pre-up ip link set dev $IFACE up
pre-down ip link set dev $IFACE down
Пересмотр /etc/network/interfaces.d/eth0.3
это сработало:
# The vlan network interface
auto eth0.3
allow-hotplug eth0.3
iface eth0.3 inet manual
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
vlan-raw-device eth0
Впоследствии перезапуск сетевого демона (systemctl restart networking
) должен быть успешным (проверьте статус с помощью systemctl status networking
) и пинг должен быть успешным. Перезагрузка с проверкой (рекомендуется) должна дать то же самое.
Я видел чат с @ a-b, вы смогли заставить работать VLAN, но у вас все еще есть проблема со скриптами для включения и выключения интерфейса. Для загрузки модуля 8021q при загрузке просто выполните:
echo 8021q | sudo tee -a /etc/modules
Затем попробуйте настроить файл / etc / network / interfaces таким образом:
iface eth0 inet static
auto eth0.3
iface eth0.3 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
vlan-raw-device eth0