Есть машина с CentOS 6.5, к ней подключён 4G-модем, драйверы Huawei обеспечивают отображение модема как eth2. Задача - обеспечить установку всех параметров соединения по DHCP от провайдера Yota.
Конфигурационный файл интерфейса выглядит так:
DEVICE=eth2
NM_CONTROLLED=no
ONBOOT=yes
BOOTPROTO=none
Последняя опция намеренно выставлена в none, т.к. на этом этапе в модем ещё не отправлена строка инициализации. Строку AT^NDISDUP=1,1,"yota.ru" отправляет другой скрипт, после этого можно вызывать отдельно:
dhclient eth2
В результате такого вызова (от суперпользователя, конечно же), интерфейс eth2 получает IP-адрес, в /etc/resolv.conf прописываются адреса DNS провайдера, но... в таблицу маршрутов не заносится маршрут до шлюза. Анализ файла /var/lib/dhclient/dhclient.leases показывает, что адрес шлюза провайдер нам передаёт в опциях routers и dhcp-server-identifier (ниже адрес заменён на вымышленный, но по факту он правильный):
lease {
interface "eth2";
fixed-address 1.2.3.4;
option subnet-mask 255.255.255.248;
option dhcp-lease-time 518400;
option routers 1.1.1.1;
option dhcp-message-type 5;
option dhcp-server-identifier 1.1.1.1;
option domain-name-servers 94.25.128.74,94.25.208.74;
option dhcp-renewal-time 259200;
option dhcp-rebinding-time 453600;
renew 6 2014/01/25 11:22:25;
rebind 1 2014/01/27 19:05:59;
expire 2 2014/01/28 13:05:59;
}
Но почему же этот адрес не записывается в таблицу маршрутов?