URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 88234
[ Назад ]

Исходное сообщение
"Как задать статический маршрут для клиентов посредством DHCP"

Отправлено UltraLaser , 24-Фев-10 16:21 
Прошу помочь с настройкой DHCP (FreeBSD + isc-dhcpd 3.1). Машина на FreeBSD выполняет роль маршрутизатора между двумя локальными подсетями (gateway_enable=”YES”).
Мне необходимо клиентам (Windows XP в основном) в сети назначить статический маршрут в другую сеть - прописываю опцию для передачи клиенту (в сети 10.0.0.0/24) статических маршрутов для того, что бы мог ходить в сеть 10.0.2.0

option 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)вообще не предусмотрено задание маски подсети).

Вопрос оченно актуальный – как же все таки задать статический маршрут на клиентской машине и решить факин проблему?


Содержание

Сообщения в этом обсуждении
"Как задать статический маршрут для клиентов посредством DHCP"
Отправлено PavelR , 24-Фев-10 16:29 
Используйте ICMP redirect

"Как задать статический маршрут для клиентов посредством DHCP"
Отправлено Alex , 24-Фев-10 17:33 
Логика странноватая немного.
Задача насколько я понял - "две подсети должны видеть друг друга"?
На клиентах прописывать маршруты помоему не очень разумно.
Если сетевуха одна смотрящая в обе сети одна то прописать ей алиесом IP из второй подсети.
А по DHCP выдавать клиентам соответствующие гейтвеи.
После чего все начинает работать если firewall ничего не рубит случайно.

Инфу как по DHCP раздавать для разных подсетей разные настройки ищи здесь же.
Ключевое слово shared-network


"Как задать статический маршрут для клиентов посредством DHCP"
Отправлено mr_gfd , 24-Фев-10 18:21 
Прописать статик роут на 10.0.0.1 хосте для 10.0.2.0/24 шлюз 10.0.0.8 ине изобретать сомнительные поделки, имхо

"Как задать статический маршрут для клиентов посредством DHCP"
Отправлено StSphinx , 24-Фев-10 21:46 
>[оверквотинг удален]
>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;


"Как задать статический маршрут для клиентов посредством DHCP"
Отправлено UltraLaser , 25-Фев-10 01:52 
Спасибо всем ответившим. Скажу сразу победить удалось.  
По пунктам
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;     
    }
}