У меня есть старый, но в основном неиспользуемый коммутатор Cisco / Linksys slm224g4s и маршрутизатор Mikrotik B2011UiAS-RM. На коммутаторе я настроил три vlan, два для WAN1 (id: 3) и WAN2 (id: 4) и третий для LAN (id: 2).
Моя текущая конфигурация порта
port number - designation - port2vlan - port setting pvid
1 - WAN1 input - 2 excl, 3 excl, 4 untagged - 4
2 - WAN2 input - 2 excl, 3 untagged, 4 excl - 3
3-12 servers - 2 tagged, 3 tagged, 4 tagged - 2
13 - WAN1 to router - 2 excl, 3 excl, 4 untagged - 4
14 - WAN2 to router - 2 excl, 3 untagged, 4 excl - 3
15-24 servers - 2 tagged, 3 tagged, 4 tagged - 2
G1 - LAN from router - 2 untagged, 3 excl, 4 excl - 2
G2-G4 servers - 2 tagged, 3 tagged, 4 tagged - 2
Конфигурация в админке: http://s3.fmdx.pl/public/cisco/
Маршрутизатор Mikrotik объединяет эти два подключения к глобальной сети от двух интернет-провайдеров для повышения надежности интернет-соединения и работает как маршрутизатор для всей компании.
У нас есть два блока по 8 IP-адресов от обоих интернет-провайдеров, маршрутизатор берет только один IP-адрес от каждого провайдера для обеспечения доступа в Интернет. Остальные IP-адреса используются для серверов компании (файлы, erp, серверы тестирования / разработки и т. Д.). Мту везде 1500.
На временном сервере конфигурация / etc / network / interfaces выглядит так:
# LAN
auto enp1s0.2
iface enp1s0.2 inet static
address 10.1.4.10
gateway 10.1.0.1
netmask 255.255.252.0
dns-nameservers 10.1.0.1
vlan-raw-device enp1s0
mtu 1500
# Netia
allow-hotplug enp1s0.3
iface enp1s0.3 inet static
address 192.168.0.72
gateway 192.168.0.65
netmask 255.255.255.240
dns-nameservers 8.8.8.8 8.8.4.4
vlan-raw-device enp1s0
mtu 1500
# Connected
allow-hotplug enp1s0.4
iface enp1s0.4 inet static
address 192.168.1.168
gateway 192.168.1.161
netmask 255.255.255.240
dns-nameservers 8.8.8.8 8.8.4.4
vlan-raw-device enp1s0
mtu 1500
Пакет Vlan установлен, модуль 8021q включен, первый интерфейс vlan (LAN) работает нормально, я могу пинговать что угодно через этот интерфейс.
К сожалению, я не могу ничего пинговать, используя второй и третий интерфейс vlan, а также сервер недоступен из Интернета.
ifup enp1s0.3 или enp1s0.4 возвращает
Set name-type for VLAN subsystem. Should be visible in /proc/net/vlan/config
RTNETLINK answers: File exists
ifup: failed to bring up enp1s0.3
ifdown enp1s0.3 или enp1s0.4
ifdown: interface enp1s0.3 not configured
Что мне не хватает?
Предоставленное решение не совсем правильное, например. вы все равно получите ошибку RTNETLINK answers: File exists
при попытке перезапустить сеть или перезагрузить компьютер.
Для статуса на debian stretch выполните
systemctl status networking.service
Ваши маршруты не будут работать, если вы снова не выполните скрипт вручную.
У вас есть настройка gateway 10.1.0.1
с участием netmask 255.255.252.0
где max host может быть 10.1.3.254 с broadcast 10.1.3.255
Проверьте Калькулятор IP / IP-подсети
У вас может быть только один шлюз по умолчанию. Когда вы назначаете, например, gateway 10.1.0.1
для интерфейса, он попытается назначить его по умолчанию, если уже есть один шлюз по умолчанию, вы получите сообщение об ошибке RTNETLINK answers: File exists
.
Правильная конфигурация должна быть
# LAN
auto enp1s0.2
iface enp1s0.2 inet static
address 10.1.3.254/22 # (max host!)
gateway 10.1.0.1
dns-nameservers 10.1.0.1
vlan-raw-device enp1s0
mtu 1500
# Netia
auto enp1s0.3
iface enp1s0.3 inet static
address 192.168.0.72/20
dns-nameservers 8.8.8.8 8.8.4.4
vlan-raw-device enp1s0
mtu 1500
up ip route add 192.168.0.0/20 via 192.168.0.65 ...
up ...
# Connected
auto enp1s0.4
iface enp1s0.4 inet static
address 192.168.1.168/20
dns-nameservers 8.8.8.8 8.8.4.4
vlan-raw-device enp1s0
mtu 1500
up ip route add 192.168.0.0/20 via 192.168.1.161 ...
up ...
Обратите внимание, как я упоминал ранее, вы не можете добавить несколько маршрутов по умолчанию как ip route add default via ...
.
После правильной настройки ваш auto|allow-auto|allow-hotplug [interface]
должен работать, но вы должны проверить ссылку для Больше подробности.
Надеюсь это поможет.
Хорошо. Теперь все работает нормально. В чем была проблема.
Я забыл скопировать несколько сценариев, которые мы развертываем на каждом сервере, и один из них включает этот код на bash:
# Connected routing
ip route add "$ISP1_NET" dev "$ISP1_IF" src "$ISP1_IP" table "$ISP1_NAME"
ip route add default via "$ISP1_GW" table "$ISP1_NAME"
ip rule add from "$ISP1_IP" table "$ISP1_NAME"
ip rule add from all to "$ISP1_CHECK_IP" table "$ISP1_NAME"
# Netia routing
ip route add "$ISP2_NET" dev "$ISP2_IF" src "$ISP2_IP" table "$ISP2_NAME"
ip route add default via "$ISP2_GW" table "$ISP2_NAME"
ip rule add from "$ISP2_IP" table "$ISP2_NAME"
ip rule add from all to "$ISP2_CHECK_IP" table "$ISP2_NAME"
Также мне пришлось изменить allow-hotplug на auto в / etc / network / interfaces, чтобы он работал после перезагрузки, и изменить несколько переменных в файле конфигурации.
Эти проблемы усугубляются, когда вы тратите свое время, и решение очень простое. :)