Автор Тема: etcnet как запретить интерфейсу получать default gateway  (Прочитано 4290 раз)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Что-то уже голова кипит...
Не могу разобраться уже 2 часа :(

Компьютер.
3 сетевые карты
net0
net1
net2

net0 - получает dhcp от провайдера (default gateway 192.168.0.1 )
net1 - статический адрес
net2 - получает dhcp от устройства и зараза переписывает default  gateway провайдера на свой ( теперь default gateway 10.10.18.161 )

и по route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.10.18.161    0.0.0.0         UG    202    0        0 net2
default         192.168.0.1     0.0.0.0         UG    204    0        0 net0
10.10.18.160    *               255.255.255.224 U     202    0        0 net2
192.168.0.0     *               255.255.255.0   U     204    0        0 net0
192.168.8.0     *               255.255.255.0   U     0      0        0 net1
и конечно раз у меня default gateway уже не провайдерский, то у меня нифига не работает :(

в файле /etc/net/ifaces/net2/options
TYPE=eth
CONFIG_WIRELESS=no
CONFIG_IPV4=yes
BOOTPROTO=dhcp

читал http://www.opennet.ru/man.shtml?topic=etcnet&category=8&russian=0, много думал, ничего не придумал :(

Пока у меня такой костыль
в файле /etc/net/ifaces/net2/ifup-post
#!/bin/sh

ip route add default via 192.168.0.1


Костыль адский. Но работает. А как сделать нормально? Как запретить net2 менять гатевей провайдера?
 


Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
А как сделать нормально? Как запретить net2 менять гатевей провайдера?
Грамотно если, то запретить одному из dhcp серверов выдавать шлюз. Вообще, это нонсенс, когда станция получает два разных шлюза от двух разных dhcp серверов. В linux default gateway может быть только один.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
А как сделать нормально? Как запретить net2 менять гатевей провайдера?
Грамотно если, то запретить одному из dhcp серверов выдавать шлюз.
не получится. В одном случае железяка провайдера, в другом случае моя железяка которая не умеет не выдавать GW :)
Так что придется учить линукс не брать при DHCP...

Вообще, это нонсенс, когда станция получает два разных шлюза от двух разных dhcp серверов.
Ну вот так получается... были бы деньги - мог бы сменить свою железяку, а деньгов нету... Поэтому, железяка остается... 

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Ну вот так получается... были бы деньги - мог бы сменить свою железяку, а деньгов нету... Поэтому, железяка остается... 
Тогда велосипедить костыль и это однозначно безграмотное решение :)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Ну раз так...
Если найду время, я научу энтот etcnet правильно работать - пропатчу его чтоб был пофичастей :)))

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Если найду время, я научу энтот etcnet правильно работать - пропатчу его чтоб был пофичастей
Дело не в etcnet или NM, а в логике машрутизации. Если шлюзов несколько, то пакеты проследуют туда, куда им предписано, при этом основного default gateway может и не быть указано. Но, если он указан, то он может быть только один и никак иначе и это правильно ибо в противном случае машрутизация как таковая сломалась бы. Клиент не может не принять шлюз, если таковой предлагает dhcp сервер, поэтому должен быть один dhcp сервер, отдающий шлюз. Вот и весь расклад.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Так что придется учить линукс не брать при DHCP...
Ну так ifup-post у etcnet и есть для таких вот странных случаев.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
В linux default gateway может быть только один.
Наверное, несовсем так. В Linux может быть несколько равноценных маршрутов для одного и того же. Вот эта вот штука вполне поддерживается: http://en.wikipedia.org/wiki/Equal-cost_multi-path_routing. Я именно с маршрутом по-умолчанию такое не практиковал, но не вижу причин, почему это не должно работать. Только к данному случаю ECMP не подходит.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Если найду время, я научу энтот etcnet правильно работать - пропатчу его чтоб был пофичастей
Дело не в etcnet
Нет. Это дело в etcnet :)
Если бы был ключик в файле настройки взять от DHCP только IP - проблем бы у меня не было... :)

Клиент не может не принять шлюз, если таковой предлагает dhcp сервер, поэтому должен быть один dhcp сервер, отдающий шлюз
После внедрения системд в линуксах демократия кончилась? :)

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Я именно с маршрутом по-умолчанию такое не практиковал, но не вижу причин, почему это не должно работать. Только к данному случаю ECMP не подходит.
Так я именно про dgw и говорю, остальное не интересует ибо проблема в замене одного dgw на другой dgw. Да скрипты тут помогают, но эти скрипты в случае dgw есть костыли, которые причину не устраняют, но борются с последствиями.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
После внедрения системд в линуксах демократия кончилась? :)
Как система инициализации соотносится с кривой конфигурацией сети в данном конкретном случае ? И виновата система инициализации, но не тот, кто проектировал сеть ?

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Так что придется учить линукс не брать при DHCP...
Ну так ifup-post у etcnet и есть для таких вот странных случаев.

Мне мой костыль не нравится так как жестко прописан гетавей и весь толк от DHCP провайдера пропаает... я конено могу вычленить гетавей провайдера в скрипте и уже туда подставлять его - но это тоже  костыли :)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
После внедрения системд в линуксах демократия кончилась? :)
Как система инициализации соотносится с кривой конфигурацией сети в данном конкретном случае ? И виновата система инициализации, но не тот, кто проектировал сеть ?

Сеть такая какая есть - выше я объяснил почему так. А мне нужно решение менее костыльное чем сейчас.


Ах.. да.. причем тут системд? Притом, что ровно такой-же ответ от системд'шников, если человек пытается реализовать что-то не стандартное. Типа это не системд не гибкое - это человек извращенец...
« Последнее редактирование: 19.10.2014 13:09:06 от YYY »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
Мне мой костыль не нравится так как жестко прописан гетавей и весь толк от DHCP провайдера пропаает... я конено могу вычленить гетавей провайдера в скрипте и уже туда подставлять его - но это тоже  костыли :)
Вообще, надо смотреть в сторону передачи параметров dhcp-клиенту на предмет не применять default gw от сервера. Вопрос в том, можно ли у etcnet дописать параметры для dhcp-client-а, и есть ли у dhcp-client такой параметр.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 6 046
Мне мой костыль не нравится так как жестко прописан гетавей и весь толк от DHCP провайдера пропаает... я конено могу вычленить гетавей провайдера в скрипте и уже туда подставлять его - но это тоже  костыли :)
Вообще, надо смотреть в сторону передачи параметров dhcp-клиенту на предмет не применять default gw от сервера. Вопрос в том, можно ли у etcnet дописать параметры для dhcp-client-а, и есть ли у dhcp-client такой параметр.
умеет
http://man.cx/dhcpcd-bin(8)
−G, −-nogateway
Don’t set any default routes.