dhclient: недовршена посла, или о нелогичним инструкцијама у скрипти

Ако имате Линукс на лаптопу, или било којој машини која мења место, овај текст може бити од користи.


Прецизније, уколико користите вашу Линукс машину бар у два различита мрежна окружења, где су IP адресе додељене на два различита начина, динамички и статички, шансе су да ћете се суочити са описаним проблемом.


Претпоставимо да у мрежи А немате DHCP сервер. Стога сте статички исконфигурисали вашу мрежну карту. Један од услова да изађете на Интернет јесте да у конфигурацији имате и адресу рутера (default gateway) који вас везује за Интернет.


У мрежи Б желите да преузмете IP адресу динамички и у ту сврху највероватније користите dhclient, замену dhcpcd-а.


Сјајно, ради се о елегантној еволуцији старијег програма. Нови клијент, dhclient, је лепо осмишљен јер је програмски део подељен у два дела: сам бинарни фајл dhclient (садржи константи део протокола) и скрипте dhclient-script. То значи добра портабилност.


Одлично. Само што у наведеном контексту, без додавања или одузимања линија, ствар не ради.


Наиме, динамичка конфигурација се лепо распита за IP адресу ваше мрежне карте, узме и адресу(е) DNS сервера, али заборави на адресу рутера.


Ех да, уколико постоји статичка конфигурација рутера (сценарио А), скрипта преузме све податке од DHCP сервера осим те једне адресе преко које шаљете све ваше пакете у свет.


Зашто баш та адреса GATEWAY=N.N.N.N, статички подешена једнако као и друге информације, представља проблем скрипти да динамички преузме нову адресу рутера?


Као прво краткорочно решење, користите команду: route add default gateway n.n.n.n

n.n.n.n стоји за IP адресу рутера (пример: 10.0.0.254).


Друго решење, поставите DHCP сервер.


За информацију, старији клијент dhcpcd је функционисао коректно: када се узима динамичка конфигурација, СВЕ информације из статичке конфигурације картице (ниво мреже) се игноришу.