forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.UNIX.BSD

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 27.12.2018, 17:21
Dmitry Kolvakh
Guest
 
Сообщений: n/a
По умолчанию Маршрутизация: две сетевых, 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  
Старый 27.12.2018, 18:02
Dmitriy Smirnov
Guest
 
Сообщений: n/a
По умолчанию Маршрутизация: две сетевых, 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  
Старый 28.12.2018, 02:41
Eugene Grosbein
Guest
 
Сообщений: n/a
По умолчанию 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  
Старый 28.12.2018, 21:21
Evgeny Chevtaev
Guest
 
Сообщений: n/a
По умолчанию Маршрутизация: две сетевых, 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  
Старый 29.12.2018, 05:52
Dmitriy Smirnov
Guest
 
Сообщений: n/a
По умолчанию Маршрутизация: две сетевых, 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  
Старый 29.12.2018, 12:21
Dmitry Kolvakh
Guest
 
Сообщений: n/a
По умолчанию Маршрутизация: две сетевых, 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  
Старый 29.12.2018, 14:12
Dmitry Kolvakh
Guest
 
Сообщений: n/a
По умолчанию Маршрутизация: две сетевых, 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  
Старый 29.12.2018, 14:32
Eugene Grosbein
Guest
 
Сообщений: n/a
По умолчанию 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  
Старый 29.12.2018, 14:42
Dmitry Kolvakh
Guest
 
Сообщений: n/a
По умолчанию Маршрутизация: две сетевых, 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  
Старый 29.12.2018, 16:11
Dmitry Kolvakh
Guest
 
Сообщений: n/a
По умолчанию Маршрутизация: две сетевых, 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
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 16:18. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot