Я использую Ubuntu 16.04 на NUC для управления домашней и рабочей сетями. Единственная сетевая карта в NUC выделяет два IP-адреса, по одному в каждой сети, следующими строками в /etc/network/interfaces
:
auto lo
iface lo inet loopback
#1st is home
auto enp3s0
iface enp3s0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.254 # huawei modem
dns-search homenet
#2nd is work vpn
auto enp3s0:1
iface enp3s0:1 inet static
address 172.16.9.1
netmask 255.255.255.240
gateway 172.16.9.1
dns-search xx.yy.xx.com
ifconfig
раньше мне показывали оба адреса inet 192.168.0.1
и 172.16.9.1
, но с тех пор, как я запустил предлагаемые обновления ubuntu сегодня, теперь показывается только первый. Машины в рабочей подсети не могут видеть друг друга или внешнюю сеть, потому что IP-адрес 172.16.9.1
недоступен.
Что-то, должно быть, изменилось, но я не знаю, что именно и как это исправить.
Эта машина работает isc-dhcp-server
для распределения IP-адресов в домашней и рабочей сетях, а также bind9
для выполнения DNS-запросов для домашней сети. Когда она работает правильно, DNS для рабочих машин управляется VPN.
Я не использую графический сетевой менеджер.
Есть идеи, что можно сделать, чтобы это снова заработало?
ОБНОВЛЯТЬ: Впоследствии я увидел строку, boot.log
которой раньше не было:
Failed to start Raise network interfaces.
See 'systemctl status networking.service' for details.
Я так и сделал. И вот я вижу следующее сообщение 4 раза:
ifup[670]: Another app is currently holding the xtables lock.
Perhaps you want to use the -w option?
Внутри /etc/network
у меня есть if-pre-up.d/iptables
скрипт, который вызывает системную iptables
команду пять раз. Я предполагаю, что именно отсюда и возникает ошибка, но она работала надежно до сегодняшнего обновления. Хотя я мог бы написать -w
все эти строки, я подозреваю, что я бы лечил симптом, а не устранял настоящую причину, которую я до сих пор не определил.
ОБНОВЛЕНИЕ 2: Первоначально я думал, что пять вызовов iptables
в моем скрипте привели к четырем xtables lock
ошибкам. Я обнаружил, что мой скрипт на самом деле вызывается четыре раза: один раз для каждого интерфейса ( lo
, enp3s0
, и enp3s0:1
) и один раз со $IFACE
значением --all
. Вызовы для --all
и enp3s0
выполняются одновременно, и один блокирует другой.
Я не могу найти ничего в журналах изменений, но рискну предположить, что запуск этого скрипта для IFACE=--all, возможно, является основной причиной возникшей у меня проблемы.
заранее спасибо
Ура, Т.