Добрый день!Впервые в FreeBSD 10 прописываю статические маршруты в файле rc.conf
=======
static_routes="mh max"
route_mh="192.168.55.0 192.168.50.1 -netmask 0xffffff00"
=======
тем не менее маршруты не прописываются в таблице машршрутов что проверяю по команде netstat -nr.
С коммандной строки маршуты применяются без проблем.
Такая ситуация уже на 2-шлюзах.
На предудущих версиях операционки таких проблем никогда не было.Почему в десятке не применяются маршруты с rc.conf?
>[оверквотинг удален]
> =======
> static_routes="mh max"
> route_mh="192.168.55.0 192.168.50.1 -netmask 0xffffff00"
> =======
> тем не менее маршруты не прописываются в таблице машршрутов что проверяю по
> команде netstat -nr.
> С коммандной строки маршуты применяются без проблем.
> Такая ситуация уже на 2-шлюзах.
> На предудущих версиях операционки таких проблем никогда не было.
> Почему в десятке не применяются маршруты с rc.conf?адреса интерфейсов (в частности того, откуда виден 192.168.50.1) назначены статикой или получаются динамически?
> адреса интерфейсов (в частности того, откуда виден 192.168.50.1) назначены статикой или
> получаются динамически?на всех интерфейсах адреса статичны
>[оверквотинг удален]
> =======
> static_routes="mh max"
> route_mh="192.168.55.0 192.168.50.1 -netmask 0xffffff00"
> =======
> тем не менее маршруты не прописываются в таблице машршрутов что проверяю по
> команде netstat -nr.
> С коммандной строки маршуты применяются без проблем.
> Такая ситуация уже на 2-шлюзах.
> На предудущих версиях операционки таких проблем никогда не было.
> Почему в десятке не применяются маршруты с rc.conf?А куда у вас приставка -net делась? man rc.conf
надо так
route_mh="-net 192.168.55.0/24 192.168.50.1"
>[оверквотинг удален]
>> =======
>> тем не менее маршруты не прописываются в таблице машршрутов что проверяю по
>> команде netstat -nr.
>> С коммандной строки маршуты применяются без проблем.
>> Такая ситуация уже на 2-шлюзах.
>> На предудущих версиях операционки таких проблем никогда не было.
>> Почему в десятке не применяются маршруты с rc.conf?
> А куда у вас приставка -net делась? man rc.conf
> надо так
> route_mh="-net 192.168.55.0/24 192.168.50.1"могу ошибаться, но исходный формат должен срабатывать
> могу ошибаться, но исходный формат должен срабатыватьдолжен в "ручном варианте", но в rc.conf видимо не обязан
>> могу ошибаться, но исходный формат должен срабатывать
> должен в "ручном варианте", но в rc.conf видимо не обязаноба варианта проверял. второй как раз и брал с дефолтового rc.conf. результат в обоих случаях негативен.
еще раз переписал rc.conf для чистоты эксперимента#ROUTES
static_routes="mh max"
route_mh="-net 192.168.55.0/24 192.168.50.1"
route_max="192.168.66.0 192.168.60.1 -netmask 0xffffff00"как и ожидалось - таблица марушрутов пустая..
> еще раз переписал rc.conf для чистоты эксперимента
> #ROUTES
> static_routes="mh max"
> route_mh="-net 192.168.55.0/24 192.168.50.1"
> route_max="192.168.66.0 192.168.60.1 -netmask 0xffffff00"
> как и ожидалось - таблица марушрутов пустая..Может в 10 что изменилось? Синтаксис?
Да ладно, что гадать, а пойдёмте к Элис! Тьфу, блин, а поедем-те в номера! Да блин, в man!
Cмотрим man rc.conf, там сказано
static_routes
(str) Set to the list of static routes that are to be added
at system boot time. If not set to ``NO'' then for each
whitespace separated element in the value, a route_<element>
variable is assumed to exist whose contents will later be
passed to a ``route add'' operation. For example:static_routes="ext mcast:gif0 gif0local:gif0"
route_ext="-net 10.0.0.0/24 -gateway 192.168.0.1"
route_mcast="-net 224.0.0.0/4 -iface gif0"
route_gif0local="-host 169.254.1.1 -iface lo0"When an element is in the form of name:ifname, the route is
specific to the interface ifname.
Переведём?
static_routes
(стр) Установит список статических маршрутов, которые будут добавлены
во время загрузки системы. Если не установлено в "NO", то предполагается,
что для каждого элемента разделенного пробелами, в значении переменной
route_<element>, существует содержимое, которое будет позднее передано
операции "route add". Например:static_routes="ext mcast:gif0 gif0local:gif0"
route_ext="-net 10.0.0.0/24 -gateway 192.168.0.1"
route_mcast="-net 224.0.0.0/4 -iface gif0"
route_gif0local="-host 169.254.1.1 -iface lo0"Если элемент в виде name:ifname, будет добавлен специфичный маршрут
для интерфейса ifname.
Изменения есть - ключевое слово -gateway ( (не)обязательное? )
Так, нам тут говорят, что будет вызвана route с командой add
Ладно, пошли в man route
The other commands have the following syntax:route [-n] command [-net | -host] destination gateway [netmask]
[-fib number]where destination is the destination host or network, gateway is the
next-hop intermediary via which packets should be routed. Routes to a
particular host may be distinguished from those to a network by inter-
preting the Internet address specified as the destination argument. The
optional modifiers -net and -host force the destination to be interpreted
as a network or a host, respectively. Otherwise, if the destination has
a ``local address part'' of INADDR_ANY (0.0.0.0), or if the destination
is the symbolic name of a network, then the route is assumed to be to a
network; otherwise, it is presumed to be a route to a host. Optionally,
the destination could also be specified in the net/bits format.For example, 128.32 is interpreted as -host 128.0.0.32; 128.32.130 is
interpreted as -host 128.32.0.130; -net 128.32 is interpreted as
128.32.0.0; -net 128.32.130 is interpreted as 128.32.130.0; and
192.168.64/20 is interpreted as -net 192.168.64 -netmask 255.255.240.0.A destination of default is a synonym for the default route. For IPv4 it
is -net -inet 0.0.0.0, and for IPv6 it is -net -inet6 ::.
Переведём
Другие команды имеют следующий синтаксис:route [-n] command [-net | -host] destination gateway [netmask]
[-fib number]где назначение — хост или сеть назначения, шлюз — посредник следующего
прыжка(хопа), через который следует маршрутизировать пакеты.
Маршруты к определенному хосту можно отличить от маршрутов к сети путем
интерпретации Интернет-адреса, указанный в качестве аргумента назначения.
Опциональные модификаторы -net и -host принудительно интерпретируют сеть или узел,
соответственно. Если назначение имеет "локальную частью адреса" из INADDR_ANY (0.0.0.0)
или назначением является символическое имя сети, то маршрут предполагается к сети;
в противном случае он считается маршрутом к хосту. При необходимости назначение
также может быть указано в формате сеть/битовая маска сети.Например, 128.32 интерпретируется как -host 128.0.0.32; 128.32.130
интерпретируется как -host 128.32.0.130; -net 128.32 интерпретируется
как 128.32.0.0; -net 128.32.130 интерпретируется как 128.32.130.0;
и 192.168.64/20 интерпретируется как сеть 192.168.64 с маской 255.255.240.0.Назначение по умолчанию является синонимом для маршрута по умолчанию.
Для IPv4 это -net -inet 0.0.0.0 и для IPv6 -net -inet6 ::.
И поскольку ключевое слово здесь "Опциональные", что значит необязательные модификаторы, то,
получается, что таки да, для "ручного" добавления маршрута достаточно дать команду, скажем
route add 192.168.55.0 192.168.50.1 -netmask 255.255.255.0
а для rc.conf увы "не прокатывает" и требует обязательного указания -net или -host,
и мало того ещё и указания -gateway(?)итак, пробуем указать добавление маршрута в rc.conf
static_routes="mh"
route_mh="-net 192.168.55.0/24 -gateway 192.168.50.1"Ну, теперь по фен-шую? Так работает?
> Ну, теперь по фен-шую? Так работает?(Михалыч, я очень Вам благодарен за подробное пояснение).
Не работает. Но теперь я нашел причину. И одна проблемма заменена другой.
Простите за подмену проблеммы.
Оказывается все три варианта синтаксиса - коректны:
===================================
static_routes="mh max tst"
route_tst="-net 192.168.77.0/24 192.168.51.7"
route_mh="-net 192.168.55.0/24 -gateway 192.168.51.5"
route_max="192.168.66.0 192.168.51.6 -netmask 0xffffff00"
===================================
Причина отсутсвия маршрутов - их некоректность относительно интерфейсов. Не полностью поднялся тунель на интерфейсе gif0. Та часть которая указывает на внешние адресса концов тунеля - прописана. А та которая указывает на внутренние адреса - отсутвует.gif_interfaces="gif0"
gifconfig_gif0="А.А.А.А В.В.В.В"
ifconfig_gif0="inet а.а.а.а b.b.b.b netmask 0xffffffff"ifconfig выдает следующее:
gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1280
tunnel inet А.А.А.А --> В.В.В.В
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>а ожидалось:
gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1280
tunnel inet А.А.А.А --> В.В.В.В
inet а.а.а.а --> b.b.b.b netmask 0x0
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
таким образом в rc.conf не обрабатывается строка:
ifconfig_gif0="inet а.а.а.а b.b.b.b netmask 0xffffffff"
если же вручную дать команду
ifconfig gif0 inet а.а.а.а b.b.b.b
то все тунель работает отлично.возможно теперь нужно правильно определить формат написания в rc.conf строки
ifconfig_gif0="inet а.а.а.а b.b.b.b netmask 0xffffffff"
> таким образом в rc.conf не обрабатывается строка:
> ifconfig_gif0="inet а.а.а.а b.b.b.b netmask 0xffffffff"
> если же вручную дать команду
> ifconfig gif0 inet а.а.а.а b.b.b.b
> то все тунель работает отлично.
> возможно теперь нужно правильно определить формат написания в rc.conf строки
> ifconfig_gif0="inet а.а.а.а b.b.b.b netmask 0xffffffff"Так а тут-то что?
А, пойду в переводчики, пусть меня научат.))
gif_interfaces
(стр) Эта переменная считается устаревшей, рекомендуется использовать cloned_interfaces.
Задаёт список интерфейсов туннеля gif для настройки на этом узле. Предполагается,
что переменная gifconfig_<interface> должна существовать для каждого значения интерфейса.
Значение этой переменной используется для настройки канального туннеля согласно
синтаксису параметра туннеля для ifconfig. Кроме того, этот параметр гарантирует,
что каждый из перечисленных интерфейсов создаётся ifconfig через параметр create
перед попыткой настроить его.gif_interfaces="gif0 gif1"
gifconfig_gif0="10.1.1.1 10.1.2.1"
gifconfig_gif1="10.1.1.2 10.1.2.2"
Ну вот, говорят устарело.
Поехали дальше.
cloned_interfaces
(стр) Задаёт список клонируемых сетевых интерфейсов для создания на этом узле.
Для дальнейшего клонирования, аргументы могут быть переданы команде
ifconfig create для каждого интерфейса, установленного переменной
create_args_<interface>. Если имя интерфейса задаётся с ключевым словом
":sticky", интерфейс не будет уничтожен, даже когда скрипт rc.d/netif
вызывается с аргументом "stop". Это полезно, когда конфигурация интерфейса
изменяется без разрушения его. Записи в cloned_interfaces, автоматически
добавляются к network_interfaces для конфигурации.cloned_interfaces="gif0 gif1 gif2 gif3"
Вроде не сложно?
Пока я тут с карманным словариком переводил, смотрю, решился вопрос.
Ну и чудненько. Буду английский прокачивать, и в man'ы лазить. ))
> Вроде не сложно?
> Пока я тут с карманным словариком переводил, смотрю, решился вопрос.
> Ну и чудненько. Буду английский прокачивать, и в man'ы лазить. ))спасибо, что помогаете ;)
закрываю эту тему поскольку причина моих проблем в ином.
резюме: в rc.conf во FreeBSD 10 статические маршруты можно прописать тремя способами:static_routes="route1 route2 route3"
route_route1="-net 192.168.77.0/24 192.168.51.7"
route_route2="-net 192.168.55.0/24 -gateway 192.168.51.5"
route_route3="192.168.66.0 192.168.51.6 -netmask 0xffffff00"
> закрываю эту тему поскольку причина моих проблем в ином.
> резюме: в rc.conf во FreeBSD 10 статические маршруты можно прописать тремя способами:
> static_routes="route1 route2 route3"
> route_route1="-net 192.168.77.0/24 192.168.51.7"
> route_route2="-net 192.168.55.0/24 -gateway 192.168.51.5"
> route_route3="192.168.66.0 192.168.51.6 -netmask 0xffffff00"по итогу в чем проблема была?
>> закрываю эту тему поскольку причина моих проблем в ином.
>> резюме: в rc.conf во FreeBSD 10 статические маршруты можно прописать тремя способами:
>> static_routes="route1 route2 route3"
>> route_route1="-net 192.168.77.0/24 192.168.51.7"
>> route_route2="-net 192.168.55.0/24 -gateway 192.168.51.5"
>> route_route3="192.168.66.0 192.168.51.6 -netmask 0xffffff00"
> по итогу в чем проблема была?В создании тунелей) См. http://www.opennet.me/openforum/vsluhforumID1/95477.html