#1
|
|||
|
|||
Маршрутизация: две сетевых, static и dhcp
Dmitry Kolvakh написал(а) к All в Dec 18 17:56:44 по местному времени:
Нi All! Еще один нубский вопрос. Имеется две сетевых карты, на первой адрес задан статически, на второй DНCP. В rc.conf указан defaultrouter в сети первой карты. Для второй карты потребуется добавить в маршрутизацию пару-тройку сетей, но до этого не доходит - как только вторая карта получает адрес по DНCP, так она заодно переписывает на себя шлюз по умолчанию. В rc.conf написано так: ifconfig_em1="DНCP". Есть какое-нибудь волшебное слово, чтобы по DНCP брался только адрес, но не трогался шлюз по умолчанию? И тогда уж, есть ли возможность в статических маршрутах задавать не IP-адрес, а имя интерфейса? (т.к. неизвестно, что придет по dhcp). Типа так: static_routes="blabla" route_blabla="-net 192.168.0.1/24 em1" При попытке применить получаю ошибку "bad address em1". Как надо правильно и можно ли вообще? -- Good Luck! - Dmitry V. Kolvakh aka Keu --- GoldED+/W32-MINGW 1.1.5-b20060703 |
#2
|
|||
|
|||
Маршрутизация: две сетевых, static и dhcp
Dmitriy Smirnov написал(а) к Dmitry Kolvakh в Dec 18 18:54:08 по местному времени:
hi, Dmitry! 27 Dec 18 17:56, Dmitry Kolvakh wrote to All: DK> Для второй карты потребуется добавить в маршрутизацию пару-тройку DK> сетей, но до этого не доходит - как только вторая карта получает адрес DK> по DНCP, так она заодно переписывает на себя шлюз по умолчанию. В DK> rc.conf написано так: ifconfig_em1="DНCP". Есть какое-нибудь волшебное DK> слово, чтобы по DНCP брался только адрес, но не трогался шлюз по DK> умолчанию? DK> И тогда уж, есть ли возможность в статических маршрутах задавать не DK> IP-адрес, а имя интерфейса? (т.к. неизвестно, что придет по dhcp). DK> Типа так: staticroutes="blabla" routeblabla="-net 192.168.0.1/24 DK> em1" При попытке применить получаю ошибку "bad address em1". Как надо DK> правильно и можно ли вообще? думаю тебе поможет man dhclient.conf 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"; } запрашиваешь что хочешь и через скрипт дорисовываешь что угодно. wbr, Dmitriy. --- |
#3
|
|||
|
|||
Re: Маршрутизация: две сетевых, static и dhcp
Eugene Grosbein написал(а) к Dmitry Kolvakh в Dec 18 05:34:43 по местному времени:
27 дек. 2018, четверг, в 17:56 NOVT, Dmitry Kolvakh написал(а): DK> Еще один нубский вопрос. DK> Имеется две сетевых карты, на первой адрес задан статически, на второй DНCP. DK> В rc.conf указан defaultrouter в сети первой карты. DK> Для второй карты потребуется добавить в маршрутизацию пару-тройку сетей, но до DK> этого не доходит - как только вторая карта получает адрес по DНCP, так она DK> заодно переписывает на себя шлюз по умолчанию. DK> В rc.conf написано так: ifconfig_em1="DНCP". DK> Есть какое-нибудь волшебное слово, чтобы по DНCP брался только адрес, но не DK> трогался шлюз по умолчанию? DK> И тогда уж, есть ли возможность в статических маршрутах задавать не IP-адрес, а DK> имя интерфейса? (т.к. неизвестно, что придет по dhcp). Типа так: DK> static_routes="blabla" DK> route_blabla="-net 192.168.0.1/24 em1" DK> При попытке применить получаю ошибку "bad address em1". Теоретически можно писать -iface em1, но по разным причинам лучше так не делать, есть способ лучше. Я делаю такие вещи при помощи dhclient-enter-hooks - механизма, позволяющего переопределять действия, которые выполняет dhclient при различных событиях типа получения адреса. Создаёшь скрипт /etc/dhclient-enter-hooks и пишешь в него: # При получении адресов DNS-серверов ничего не делать # (не трогать /etc/resolv.conf) addnew_resolvconf() { return 0 } # При получении нового IP выполнять то же, # что и стандартный addnewaddress, но не трогать # default route; плюс добавлять свои маршруты addnewaddress() { # добавить адрес к интерфейсу eval "$IFCONFIG $interface \ inet $newipaddress \ netmask $newsubnetmask \ broadcast $newbroadcastaddress \ $medium" # сохранить адрес шлюза в interface description eval '$IFCONFIG $interface description "gw $new_routers"' $LOGGER "New IP Address ($interface): $newipaddress" $LOGGER "New Subnet Mask ($interface): $newsubnetmask" $LOGGER "New Broadcast Address ($interface): $newbroadcastaddress" $LOGGER "New Routers ($interface): $new_routers" # добавить свои маршруты route add X.X.X.X/X $new_routers route add Y.Y.Y.Y/Y $new_routers # перезапустить ipfw ради перенастройки ipfw nat /etc/rc.d/ipfw start >/dev/null 2>&1 return 0 } Eugene -- Поэты - страшные люди. У них все святое. --- slrn/1.0.3 (FreeBSD) |
#4
|
|||
|
|||
Маршрутизация: две сетевых, static и dhcp
Evgeny Chevtaev написал(а) к Dmitriy Smirnov в Dec 18 22:33:22 по местному времени:
Нi Dmitriy! Thursday December 27 2018 18:54, Dmitriy Smirnov wrote to Dmitry Kolvakh: DK>> И тогда уж, есть ли возможность в статических маршрутах задавать DK>> не IP-адрес, а имя интерфейса? (т.к. неизвестно, что придет по DK>> dhcp). Типа так: staticroutes="blabla" routeblabla="-net DK>> 192.168.0.1/24 em1" При попытке применить получаю ошибку "bad DK>> address em1". Как надо правильно и можно ли вообще? DS> думаю тебе поможет man dhclient.conf >> request subnet-mask, broadcast-address, time-offset, >> routers, >> domain-name, domain-name-servers, host-name; >> require subnet-mask, domain-name-servers; Я эту байлалу специально проверил по наставлению man'ов. Думал человеку умно отвечу-помогу. Но что-то нифига, всё равно дефолт переписывает. With best regards, Evgeny --- GoldED+/BSD 1.1.5-b20180707 |
#5
|
|||
|
|||
Маршрутизация: две сетевых, static и dhcp
Dmitriy Smirnov написал(а) к Evgeny Chevtaev в Dec 18 06:42:06 по местному времени:
hi, Evgeny! 27 Dec 18 22:33, Evgeny Chevtaev wrote to Dmitriy Smirnov: DK>>> И тогда уж, есть ли возможность в статических маршрутах задавать DK>>> не IP-адрес, а имя интерфейса? (т.к. неизвестно, что придет по DK>>> dhcp). Типа так: staticroutes="blabla" routeblabla="-net DK>>> 192.168.0.1/24 em1" При попытке применить получаю ошибку "bad DK>>> address em1". Как надо правильно и можно ли вообще? DS>> думаю тебе поможет man dhclient.conf >>> request subnet-mask, broadcast-address, time-offset, >>> routers, >>> domain-name, domain-name-servers, host-name; >>> require subnet-mask, domain-name-servers; EC> Я эту байлалу специально проверил по наставлению man'ов. Думал EC> человеку умно отвечу-помогу. Но что-то нифига, всё равно дефолт EC> переписывает. лет 10 назад эта байда точно работала, по крайней мере у меня на домашнем серванте. wbr, Dmitriy. --- |
#6
|
|||
|
|||
Маршрутизация: две сетевых, static и dhcp
Dmitry Kolvakh написал(а) к Evgeny Chevtaev в Dec 18 13:14:02 по местному времени:
Нi Evgeny! 27 Dec 18, Evgeny Chevtaev wrote to Dmitriy Smirnov: EC> Я эту байлалу специально проверил по наставлению man'ов. Думал EC> человеку умно отвечу-помогу. Но что-то нифига, всё равно дефолт EC> переписывает. А я думал, что это я тупой и не работает только у меня :( -- Good Luck! - Dmitry V. Kolvakh aka Keu --- GoldED+/W32-MINGW 1.1.5-b20060703 |
#7
|
|||
|
|||
Маршрутизация: две сетевых, static и dhcp
Dmitry Kolvakh написал(а) к Eugene Grosbein в Dec 18 14:16:46 по местному времени:
Нi Eugene! 28 Dec 18, Eugene Grosbein wrote to Dmitry Kolvakh: EG> Создаёшь скрипт /etc/dhclient-enter-hooks и пишешь в него: Единственный заметный эффект - работа вот этой строчки: EG> eval '$IFCONFIG $interface description "gw $new_routers"' В выводе ifconfig появляется ожидаемый description. Эффект стойкий, строчку комментируем, дескрипшн исчезает, активируем - снова появляется. EG> $LOGGER "New IP Address ($interface): $newipaddress" И более ничего не заметно. Даже в лог не пишет. Дописал в самом конце строчку $LOGGER "script debug", результат ее работы увидел только один раз, что вообще совсем странно. ЧЯ могу ДНТ? И кстати, как правильно переполучить адрес по dhcp с выполнением всех процедур? service netif restart вызывает только потерю адреса интерфейсом. -- Good Luck! - Dmitry V. Kolvakh aka Keu --- GoldED+/W32-MINGW 1.1.5-b20060703 |
#8
|
|||
|
|||
Re: Маршрутизация: две сетевых, static и dhcp
Eugene Grosbein написал(а) к Dmitry Kolvakh в Dec 18 17:15:06 по местному времени:
29 дек. 2018, суббота, в 14:16 NOVT, Dmitry Kolvakh написал(а): EG>> Создаёшь скрипт /etc/dhclient-enter-hooks и пишешь в него: DK> Единственный заметный эффект - работа вот этой строчки: EG>> eval '$IFCONFIG $interface description "gw $new_routers"' На самом деле работают все строчки. DK> В выводе ifconfig появляется ожидаемый description. Эффект стойкий, строчку DK> комментируем, дескрипшн исчезает, активируем - снова появляется. EG>> $LOGGER "New IP Address ($interface): $newipaddress" DK> И более ничего не заметно. Даже в лог не пишет. А ты в syslog.conf скомандовал писать строчки от dhclient в файл? В какой именно? DK> Дописал в самом конце строчку $LOGGER "script debug", результат ее работы DK> увидел только один раз, что вообще совсем странно. DK> ЧЯ могу ДНТ? syslog по дефолту не пишет в файл одинаковые строчки, если они идут подряд. DK> И кстати, как правильно переполучить адрес по dhcp с выполнением всех процедур? DK> service netif restart вызывает только потерю адреса интерфейсом. Я делаю просто killall dhclient; sleep 1; dhclient -b re0 Eugene --- slrn/1.0.3 (FreeBSD) |
#9
|
|||
|
|||
Маршрутизация: две сетевых, static и dhcp
Dmitry Kolvakh написал(а) к Eugene Grosbein в Dec 18 15:30:12 по местному времени:
Нi Eugene! 29 Dec 18, Eugene Grosbein wrote to Dmitry Kolvakh: EG> На самом деле работают все строчки. По логике вещей они не могут не работать, но эффекта от работы не видно. Шлюз по умолчанию как переопределялся, так и переопределяется. EG> А ты в syslog.conf скомандовал писать строчки от dhclient в файл? EG> В какой именно? Ничего не командовал, по дефолту *.notify летит в /var/log/messages, и иногда таки долетает. DK>> Дописал в самом конце строчку $LOGGER "script debug", результат DK>> ее работы увидел только один раз, что вообще совсем странно. ЧЯ DK>> могу ДНТ? EG> syslog по дефолту не пишет в файл одинаковые строчки, если они идут EG> подряд. Так я передергивал dhcp ребутом всей бабуш^W виртуалки, там журнал всего старта системы между этими строчками. DK>> И кстати, как правильно переполучить адрес по dhcp с выполнением DK>> всех процедур? service netif restart вызывает только потерю DK>> адреса интерфейсом. EG> Я делаю просто killall dhclient; sleep 1; dhclient -b re0 ОК, спасибо, попробую. -- Good Luck! - Dmitry V. Kolvakh aka Keu --- GoldED+/W32-MINGW 1.1.5-b20060703 |
#10
|
|||
|
|||
Маршрутизация: две сетевых, static и dhcp
Dmitry Kolvakh написал(а) к Eugene Grosbein в Dec 18 16:38:32 по местному времени:
Нi Eugene! 29 Dec 18, Eugene Grosbein wrote to Dmitry Kolvakh: EG> На самом деле работают все строчки. Докладываю: Нагуглил http://www.macfreek.nl/memory/DНCP<b...pt</b>Examples Процедуру addnewaddress деактивировал и сделал по инструкции оттуда: # Determine gateway from routers # extract first IP address and replace all . with " " gateway=`echo "${new_routers%% *}" | sed 's/\./ /g'` newclasslessroutes="23 192 168 0 $gateway 23 10 0 2 $gateway 24 10 0 1 $gateway" unset new_routers И это у меня заработало. -------------------- PS эхотаг 12.0 Почему не работало по твоему рецепту - неясно. Ты же его не с потолка взял. -- Good Luck! - Dmitry V. Kolvakh aka Keu --- GoldED+/W32-MINGW 1.1.5-b20060703 |