Два ISP. Один выдаёт IP-адрес динамически (dhclient), другой выделил настоящий статический IP-адрес.
Как средствами netifrc (/etc/conf.d/net) сконфигурировать два сетевых интерфейса шлюза так, чтобы всё работало независимо от того, кабель какого ISP в какую сетевую курточку был воткнут?
Доброго Времени суток, уважаемые!
#uname -a Linux gw 4.1.12-gentoo #1 SMP Sat Jan 9 19:37:05 EET 2016 x86_64 Intel(R) Core(TM)2 Duo CPU E7400 @ 2.80GHz GenuineIntel GNU/Linux
net-misc/dhcp-4.3.1-r2::gentoo USE="client ldap server ssl -ipv6 (-selinux) -vim-syntax"
sys-apps/ifplugd-0.28-r9::gentoo USE="-doc (-selinux)"
net-misc/netifrc-0.2.2::gentoo
# cat /etc/iproute2/rt_tables 101 wan1 102 wan2
# ip ru 101: from wan-dhcp-net lookup wan1 102: from wan-static-net lookup wan2
# ip ro sh ta wan1 wan-dhcp-net dev nic-1 scope link default via wan-dhcp-gw dev nic-1
# ip ro sh ta wan2 wan-static-net dev nic-2 scope link default via wan-static-gw dev nic-2
/etc/conf.d/net) отследить ситуацию, когда будут перевоткнуты кабели от isp-dhcp в nic-2, а isp-static в nic-1, так, чтобы:
Предварительные исследования
Можно было-бы использовать
fallback_IFVAR, например в таком духе:Но тут возникают следующие нюансы при использовании
fallback_:Правила PRDB (
fallback_rules_) не прописываются. Т.е. не решается вопрос №1.Т.е. два интерфейса с одним IP-адресом. Решение вопроса №2 приобретает новые краски.
fallback_не запускает функциюfailup(). Всё проходит черезpostup(). И не известно как сюда (вpostup()) попали: поconfig_IFVARили поfallback_IFVAR?postup()).Или узнать о том, что никакая информация не была предоставлена клиентом DHCP.
С одной стороны уже имеем поднятый интерфейс на isp-static. С другой - как заставить "не поднятый" интерфейс продолжать "долбить" isp-dhcp?