Страница 1 из 1
Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-23 20:59:02
kpp
Имеем FreeBSD 7.2
Ситуация такая.
Был один канал в инет - настройки сетевого интерфейса статические.
default route через него - это основной канал.
Подключили еще один канал в инет.
Сетевой интерфейс настраивается через DHCP, при чем каждые 3-4минуты идет пересинхра.
При этом слетает default route, перезатирается resolv.conf
Провайдер отказывается напрячься и настроить под нас статический канал.
Адрес всегда выдается один и тотже, шлюз тоже.
Но если руками прописать в сетевом интерфейсе эти параметры - инета нет.
Есть ли возможность на фре настроить чтобы не слетал default route и resolv.conf ?
Заранее спасибо.
Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-23 21:31:54
reLax
Лично не сталкивался с такой проблемой, но знаю что есть некий dhclient. Ввиду вышесказанного более информации предоставить не могу, поэтому покурите ман на тему man dhclient.conf (require)
Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-23 21:36:04
kpp
Курю этот ман, пока просветления не наступило...

Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-23 21:40:51
reLax
kpp писал(а):Курю этот ман, пока просветления не наступило...

Код: Выделить всё
require [option] [, ... option];
The require statement lists options that must be sent in order
for an offer to be accepted. Offers that do not contain all the
listed options will be ignored.
Код: Выделить всё
EXAMPLES
timeout 60;
retry 60;
reboot 10;
select-timeout 5;
initial-interval 2;
reject 192.33.137.209;
interface "ep0" {
send host-name "andare.fugue.com";
send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
send dhcp-lease-time 3600;
supersede domain-name "fugue.com rc.vix.com home.vix.com";
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name;
require subnet-mask, domain-name-servers;
script "/etc/dhclient-script";
media "media 10baseT/UTP", "media 10base2/BNC";
}
Говорю же - сам не пробовал. Но по моему все понятно.
Offers that do not contain all the listed options will be ignored. - ну ?
Даже переведу по китайски - "Предложения, которые не содержат указанные варианты будут игнорированы" )))
Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-23 21:59:31
GRooVE
Рабочий конфиг
Код: Выделить всё
root@server [~]# cat /etc/dhclient.conf
interface "re2" {
prepend domain-name-servers 127.0.0.1;
script "/etc/pf/up-prov2-dhcp.sh";
}
Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-23 22:04:04
kpp
а что в скрипте /etc/pf/up-prov2-dhcp.sh ?
Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-23 22:16:24
kpp
Код: Выделить всё
timeout 60;
retry 60;
reboot 10;
select-timeout 5;
initial-interval 2;
reject 192.33.137.209; - вот тут непонятно, по доке "Любые предложения, присланные сервером DHCP со значением IP-адреса (192.33.137.209 в данном случае) будут отвергнуты"
interface "ep0" {
send host-name "andare.fugue.com"; - имя хоста моего - для прова нет имени моего - убираю ??
send dhcp-client-identifier 1:0:a0:24:ab:fb:9c; - макадрес моей сетвухи
send dhcp-lease-time 3600;
supersede domain-name "mouse.ua", routers; - указанная опция всегда будет использовать значение даже если сервер DHCP пришлет другое значение для нее.
prepend domain-name-servers 127.0.0.1; - тут непонятно, зачем указывать локалхост?
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name; - это то, что клиент будет запрашивать у сервера, вопрос согласится ли с этим сервер??
require subnet-mask, domain-name-servers;
script "/etc/dhclient-script"; - непонятно зачем скрипт ?
media "media 10baseT/UTP", "media 10base2/BNC"; - это понятно
}
Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-23 22:24:08
kpp
В resolv.conf
автоматом вписываются
Код: Выделить всё
search mouse.ua
nameserver 1.1.1.1
nameserver 2.2.2.2
Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-23 22:31:45
kpp
send dhcp-client-identifier 1:0:a0:24

fb:9c; - макадрес моей сетвухи
ан нет, это не макадрес...
Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-23 22:41:17
kpp
Прописал такое:
Код: Выделить всё
timeout 60;
retry 60;
reboot 10;
select-timeout 5;
initial-interval 2;
interface "mos1" {
send dhcp-lease-time 3600;
# - указанная опция всегда будет использовать значение даже если сервер DHCP п
supersede routers 10.10.10.1;
# - тут указываем DNS сервера провайдера
prepend domain-name-servers 1.1.1.1,2.2.2.2;
# - это то, что клиент будет запрашивать у сервера
request subnet-mask, broadcast-address, time-offset,
domain-name, host-name;
require subnet-mask;
media "media 10baseT/UTP";
}
на первый взгляд работает, что скажут спецы?
Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-23 22:43:37
kpp
Смущает строка
вставляемая в resolv.conf при настройках по умолчанию...
Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-23 22:51:41
kpp
Не, таки слетает все равно.. через время
Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-24 0:13:08
Lycane
Могу предложитЬ костылЬ
Пишем в resolv.conf то, что там должно бытЬ чтоб всё работало, залочиваем его от перезаписи. А в крон пихаем скрипт что то типа route add(change) default xx.xx.xx.xx и чтоб выполнялся раз в 3-4 минуты

Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-24 0:23:35
GRooVE
я же дал рабочий конфиг, ничего лишнего:
Код: Выделить всё
# cat /etc/dhclient.conf
interface "re2" {
prepend domain-name-servers 127.0.0.1; #Сюда вписываешь DNS сервер(а) своего прова
script "/usr/local/etc/route.script"; #Этот скрипт выполняется при обновлении DHCP. Можешь сюда нужные маршруты запихнуть
}
Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-24 0:40:03
kpp
Lycane писал(а):Могу предложитЬ костылЬ
Пишем в resolv.conf то, что там должно бытЬ чтоб всё работало, залочиваем его от перезаписи. А в крон пихаем скрипт что то типа route add(change) default xx.xx.xx.xx и чтоб выполнялся раз в 3-4 минуты

Гы.. это слишклм костыльный костыль

GRooVE писал(а):я же дал рабочий конфиг, ничего лишнего:
Код: Выделить всё
# cat /etc/dhclient.conf
interface "re2" {
prepend domain-name-servers 127.0.0.1; #Сюда вписываешь DNS сервер(а) своего прова
script "/usr/local/etc/route.script"; #Этот скрипт выполняется при обновлении DHCP. Можешь сюда нужные маршруты запихнуть
}
script "/usr/local/etc/route.script" не выполняется почему-то при обновлении DHCP, выполняется только при
В скрипте
Код: Выделить всё
#!/bin/sh
/usr/sbin/setfib 1 /sbin/route add default 10.10.10.1
Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-25 20:16:06
kpp
В принципе победил.
Но есть еще одна проблема.
После перезагрузки этот канал в инет надо долго раскочегаривать... не пойму что не так
в
rc.conf
dhclient.conf
Код: Выделить всё
interface "mos1" {
prepend domain-name-servers 1.1.1.1,2.2.2.2;
script "/etc/dhclient-script";
}
dhclient-script
Код: Выделить всё
#!/bin/sh
/usr/sbin/setfib 1 /sbin/route delete default
/usr/sbin/setfib 1 /sbin/route add default 10.1.1.1
После перегруза инета через этот канал нет, Ип-адрес не присвоен, при перегрузке матюки что 10.1.1.1 недоступен.
Приходится руками делать
Код: Выделить всё
ifconfig mos1 inet 10.1.1.2
dhclient mos1
ifconfig mos1 down
ifconfig mos1 up
И даже так не сразу начинает работать...
Но если уже заработало - не отпадает - проверял всю ночь
Подскажите куда копать??
Re: Провайдер выдает инет через DHCP - слетает default route
Добавлено: 2009-10-26 0:42:17
FenX
после запуска dhclient`а, последний начинает мониторить default маршрут, ip на заданном интерфейсе
и днсы в resolve.conf
как только происходит ручное изменение чего-либо из выше перечисленного - dhclient отваливается, считая что юзер сам будет всё мониторить.
попробуй просто:
Код: Выделить всё
$ cat /etc/dhclient.conf
......
interface "mos1" {
send dhcp-lease-time 31536000; # 31536000 seconds = 1 year
request subnet-mask, broadcast-address, time-offset, routers, domain-name-servers;
require subnet-mask, domain-name-servers;
}
т.е. фактически запросить от сервера инфу не на 1 час (3600), а на год

чтобы след. запрос сервер послал либо после ребута, либо после года простоя

))