Прошу помочь с настройкой DHCP (FreeBSD + isc-dhcpd 3.1). Машина на FreeBSD выполняет роль маршрутизатора между двумя локальными подсетями (gateway_enable=”YES”).
Мне необходимо клиентам (Windows XP в основном) в сети назначить статический маршрут в другую сеть - прописываю опцию для передачи клиенту (в сети 10.0.0.0/24) статических маршрутов для того, что бы мог ходить в сеть 10.0.2.0option routers 10.0.0.1
option static-routes 10.0.2.0 10.0.0.8у клиента создается маршрут 10.0.2.0 255.255.255.255 10.0.0.8 – понятное дело, что не работает. Если я вручную в Windows XP (на машине в сети 10.0.0.0/24) задаю
route add –p 10.0.2.0 mask 255.255.255.0 10.0.0.8
все работает. Просьба НЕ предлагать решения типаoption static-routes 10.0.2.0/24 10.0.0.8
option static-routes 10.0.2.0 mask 255.255.255.0 10.0.0.8
option static-routes 10.0.2.0 netmask 255.255.255.0 10.0.0.8
option static-routes 24.0.2.0 10.0.0.8они НЕ работают. Более того, для данной опции (если я правильно понял RFC 3442)вообще не предусмотрено задание маски подсети).
Вопрос оченно актуальный – как же все таки задать статический маршрут на клиентской машине и решить факин проблему?
Используйте ICMP redirect
Логика странноватая немного.
Задача насколько я понял - "две подсети должны видеть друг друга"?
На клиентах прописывать маршруты помоему не очень разумно.
Если сетевуха одна смотрящая в обе сети одна то прописать ей алиесом IP из второй подсети.
А по DHCP выдавать клиентам соответствующие гейтвеи.
После чего все начинает работать если firewall ничего не рубит случайно.Инфу как по DHCP раздавать для разных подсетей разные настройки ищи здесь же.
Ключевое слово shared-network
Прописать статик роут на 10.0.0.1 хосте для 10.0.2.0/24 шлюз 10.0.0.8 ине изобретать сомнительные поделки, имхо
>[оверквотинг удален]
>option static-routes 10.0.2.0/24 10.0.0.8
>option static-routes 10.0.2.0 mask 255.255.255.0 10.0.0.8
>option static-routes 10.0.2.0 netmask 255.255.255.0 10.0.0.8
>option static-routes 24.0.2.0 10.0.0.8
>
>они НЕ работают. Более того, для данной опции (если я правильно понял
>RFC 3442)вообще не предусмотрено задание маски подсети).
>
>Вопрос оченно актуальный – как же все таки задать статический маршрут на
>клиентской машине и решить факин проблему?Вот так примерно....
option classless-static-route code 121 = array of unsigned integer 8;
option classless-static-route-ms code 249 = array of unsigned integer 8;option classless-static-route 22, 192,168,0, 10,10,255,254, 8, 10, 10,10,255,254;
option classless-static-route-ms 22, 192,168,0, 10,10,255,254, 8, 10, 10,10,255,254;
Спасибо всем ответившим. Скажу сразу победить удалось.
По пунктам
1) Про ICMP redirect вообще не понял – можно поподробнее – прям с конфигурацией
2) Можно пускать через шлюз по умолчанию – в моем случае это 10.0.0.1 для сети 10.0.0.0 … но это не кузяво имхо так как в этом случае будет создаваться дополнительная нагрузка на внутренний интерфейс шлюза по умолчанию. А это не хорошо, ну не по самурайски как то. Хотя можно.3) Большое спасибо за ответ по опциям 121 и 249 (Майкросвофт как всегда впереди планеты всей с распознованием опции 249 ну да чего удивлятся – лишний раз подтверждает..) – Один момент если уж советовать такое то стоит сказать что определение опции надо делать в глобальных параметрах (т.е до операторов subnet) а то догадаться до этого сложно. Однако именно Ваш ответ очень помог. Иногда такие вещи можно додумывать очень долго. Очень помогло в ответе вот это
http://www.opennet.me/openforum/vsluhforumID3/11900.html
Ниже на вский случай привожу свой конфиг полностью что бы ни у кого не могло возникнуть. Однако остается чисто риторический вопрос – а нафига было так криво писать то? Неужели нельзя было сразу определить одну опцию типа статик роут адрес маска шлюз безо всяких извратов? Или у кого то трава кончилась и перешли на что то посерьезнее? Но впрочем вопрос риторический. Вот конфиг:# single DHCP server on the network
authoritative;
default-lease-time 14400;
max-lease-time 86400;# dynamic DNS renew style
ddns-update-style interim;
ddns-ttl 14400;
log-facility local7;
option classless-static-route code 121 = string;
option classless-static-route-ms code 249 = string;
shared-network 0-2 {subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.10 10.0.0.254;
option routers 10.0.0.1;# WINS server
option netbios-name-servers 10.0.0.8;
# DNS
option domain-name-servers 192.168.55.1;
# Routing
option classless-static-route 18:0A:00:02:0A:00:00:08;
option classless-static-route-ms 18:0A:00:02:0A:00:00:08;
}
subnet 10.0.2.0 netmask 255.255.255.0 {
option routers 10.0.2.1;
option subnet-mask 255.255.255.0;# WINS server
option netbios-name-servers 10.0.0.8;
# DNS
option domain-name-servers 192.168.55.1;# Routing
#option routers 10.0.2.1;
}
}