как программно настроить ethernet интерфейс?
От: protestant  
Дата: 15.09.08 07:49
Оценка:
как программно установить ip, маску, шлюз и DNS?

17.09.08 17:47: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: как программно настроить ethernet интерфейс?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 15.09.08 07:54
Оценка:
Здравствуйте, protestant, Вы писали:

P>как программно установить ip, маску, шлюз и DNS?


IP и маска:
man -S8 ip (для Linux)
man ifconfig (для остальных)
шлюз: man route (для всех), сеть 0/0
DNS: /etc/resolv.conf — статически. В некоторых есть /etc/resolvconf/ где дистро-зависимо ставятся хуки.
The God is real, unless declared integer.
Re[2]: как программно настроить ethernet интерфейс?
От: protestant  
Дата: 15.09.08 07:56
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, protestant, Вы писали:


P>>как программно установить ip, маску, шлюз и DNS?


N>IP и маска:

N>man -S8 ip (для Linux)
N>man ifconfig (для остальных)
N>шлюз: man route (для всех), сеть 0/0
N>DNS: /etc/resolv.conf — статически. В некоторых есть /etc/resolvconf/ где дистро-зависимо ставятся хуки.

спасибо, но мне под вистой надо
Re[3]: как программно настроить ethernet интерфейс?
От: Michael Chelnokov Украина  
Дата: 17.09.08 14:50
Оценка:
Здравствуйте, protestant, Вы писали:

P>спасибо, но мне под вистой надо


Ключевое слово — WMI.
Re[3]: как программно настроить ethernet интерфейс?
От: mansur https://netmontools.com
Дата: 18.09.08 05:43
Оценка:
Здравствуйте, protestant, Вы писали:

P>спасибо, но мне под вистой надо


IpHlpApi, MSDN.
С уважением mansur.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: как программно настроить ethernet интерфейс?
От: slava_phirsov Россия  
Дата: 19.09.08 09:11
Оценка:
Здравствуйте, protestant, Вы писали:

P>как программно установить ip, маску, шлюз и DNS?


Могу расширить вопрос: как это делается в серверах? Вот есть у меня 1 основной сервер и N-1 резервных. При выходе основного сервера из строя, его заменяет любой резервный, а с точки зрения клиента — все как было, так и осталось, и IP тот же самый. Первое, что приходит в голову — "резервисты" поочередно пингуют основного товарища, и, если он не отзывается, переконфигурируют свой IP. Тупо, грубо, излишне перегружает сеть вызовами по ICMP. В голове вертится мысль, что во "взрослых" системах используются более красивые решения. Или "no silver bullett"?
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Re[2]: как программно настроить ethernet интерфейс?
От: Michael Chelnokov Украина  
Дата: 19.09.08 11:19
Оценка:
Здравствуйте, slava_phirsov, Вы писали:

_>Вот есть у меня 1 основной сервер и N-1 резервных... В голове вертится мысль, что во "взрослых" системах используются более красивые решения.


Угу. Различные кластера, в том числе с использованием специальных железяк.
Re[3]: как программно настроить ethernet интерфейс?
От: slava_phirsov Россия  
Дата: 19.09.08 11:26
Оценка:
Здравствуйте, Michael Chelnokov, Вы писали:

MC>Угу. Различные кластера, в том числе с использованием специальных железяк.

1. А поподробнее — есть информация?
2. А без специального железа кластеры собираются? Ну там, какой-нить софт, например, опенсорсный, для балансирования нагрузки между машинами.... Есть желание попробовать, чтобы в резюме писать "уверенно владею технологиями распределенных вычислений"
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Re[2]: как программно настроить ethernet интерфейс?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 19.09.08 11:28
Оценка: 1 (1)
Здравствуйте, slava_phirsov, Вы писали:

_>Здравствуйте, protestant, Вы писали:


P>>как программно установить ip, маску, шлюз и DNS?


_>Могу расширить вопрос: как это делается в серверах?


Лучше всего через это:

http://en.wikipedia.org/wiki/Common_Address_Redundancy_Protocol
http://en.wikipedia.org/wiki/VRRP
http://en.wikipedia.org/wiki/HSRP

идея одна и та же.

_> Первое, что приходит в голову — "резервисты" поочередно пингуют основного товарища, и, если он не отзывается, переконфигурируют свой IP. Тупо, грубо, излишне перегружает сеть вызовами по ICMP. В голове вертится мысль, что во "взрослых" системах используются более красивые решения. Или "no silver bullett"?


No silver bullet, но см. выше.
The God is real, unless declared integer.
Re[3]: как программно настроить ethernet интерфейс?
От: slava_phirsov Россия  
Дата: 19.09.08 11:52
Оценка:
Здравствуйте, netch80, Вы писали:

N>http://en.wikipedia.org/wiki/Common_Address_Redundancy_Protocol

N>http://en.wikipedia.org/wiki/VRRP
N>http://en.wikipedia.org/wiki/HSRP

Короче, велосипед уже давно изобретен.... Блин, какой облом Если серьезно, то есть дополнительные вопросы:
1.Работает CARP только под FreeBSD? Или есть порты под другие версии Униз/Пингвиндоуз а то и, прошу прощения, под Вынь?
2.Что конкретно надо делать для установки? Тупо скачивается некая утилита и устанавливается (пакеты, исходники) или надо пересобрать все ядро?
3.Плиз, у кого был опыт работы с карпом или его эквивалентами — поделитесь опытом!
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Re[3]: как программно настроить ethernet интерфейс?
От: slava_phirsov Россия  
Дата: 19.09.08 12:19
Оценка:
еще я почитал http://www.opennet.ru/base/net/carp_protocol.txt.html — схема, в общем, близка к предложенной мной, только все наоборот не резервные пингуют основного, а основной сообщает всем резервным, что он еще дышит. Неясно только — какие же адреса у серверов в состоянии резерва?
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Re[4]: как программно настроить ethernet интерфейс?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 19.09.08 16:20
Оценка:
Здравствуйте, slava_phirsov, Вы писали:

_>Короче, велосипед уже давно изобретен.... Блин, какой облом :))) Если серьезно, то есть дополнительные вопросы:

_>1.Работает CARP только под FreeBSD? Или есть порты под другие версии Униз/Пингвиндоуз а то и, прошу прощения, под Вынь?

Я не изучал. CARP в оригинале под OpenBSD, перетащен под все BSD, думаю, перенести под все юниксы проблем не будет, а насчёт других систем — без малейшего понятия.

_>2.Что конкретно надо делать для установки? Тупо скачивается некая утилита и устанавливается (пакеты, исходники) или надо пересобрать все ядро?


Судя по тому, что я вижу во FreeBSD 6.3 — надо пересобрать ядро с "device carp", установка его модулем без такой пересборки невозможна.
The God is real, unless declared integer.
Re[4]: как программно настроить ethernet интерфейс?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 19.09.08 17:03
Оценка:
Здравствуйте, slava_phirsov, Вы писали:

_>еще я почитал http://www.opennet.ru/base/net/carp_protocol.txt.html — схема, в общем, близка к предложенной мной, только все наоборот :))) не резервные пингуют основного, а основной сообщает всем резервным, что он еще дышит.


Не так. Фактически, в этой схеме ни один не является ни "основным" ни "резервным". Каждый из настроенных хостов систематически оповещает о себе, остальные запоминают и учитывают. Настройкой числовых параметров можно установить условия перехвата и удержания на себе виртуального хоста. Можно сделать, например, схему, в которой один всегда перехватывает на себя, когда работает, а иначе — включается резервный. Можно — когда тот, что захватил однажды, держит на себе до тех пор пока не умрёт или явно не сбросит с себя нагрузку, тогда подхватит другой. Можно настроить приоритеты удержания и перехвата. Главное — что сеть должна работать чётко и не распадаться, не иметь направления непропускания — посланное одним должно дойти до всех остальных.

_> Неясно только — какие же адреса у серверов в состоянии резерва?


У каждого сервера есть свой адрес (или несколько) на интерфейсе, который он не отдаёт никогда — это его собственный. И есть два адреса — MAC и IP, IP привязан к этому MAC единообразно. MAC всегда один — 00:00:5E:00:01:$VHID, IP — назначается конфигом. Если один сервер теряет виртуальный хост, а другой приобретает, то первый перестаёт отвечать и на этот IP и на этот MAC, а другой — начинает. У HSRP другой MAC виртхоста — 00:00:0c:07:ac:$VHID, но метод работы тот же.
The God is real, unless declared integer.
Re[3]: как программно настроить ethernet интерфейс?
От: Аноним  
Дата: 21.09.08 20:57
Оценка:
P>спасибо, но мне под вистой надо
netsh
Re[5]: как программно настроить ethernet интерфейс?
От: slava_phirsov Россия  
Дата: 22.09.08 06:19
Оценка:
Здравствуйте, netch80, Вы писали:

N>У каждого сервера есть свой адрес (или несколько) на интерфейсе, который он не отдаёт никогда — это его собственный.

Имеется в виду адрес в протоколе CARP? CARP создает свое собственное адресное пространство? А как же тогда сообщения передаются? Я, пролистав информацию, решил, что CARP работает на протоколе IP, вернее, на ICMP

N>MAC всегда один — 00:00:5E:00:01:$VHID

Вот тут я вообще не догоняю... Разве MAC-адрес не задается аппаратно в сетевой карте (причем в каждом экземпляре карты — свой собственный, уникальный)?

N> IP — назначается конфигом.

Ну, тут понятно — для того CARP и нужен

N>Фактически, в этой схеме ни один не является ни "основным" ни "резервным".

Под "основным" я имею в виду тот, который в данный момент обрабатывает запросы и "владеет" виртуальным IP-адресом, а под резервными — всех прочих.

N>Каждый из настроенных хостов систематически оповещает о себе, остальные запоминают и учитывают.

Оповещает — каким образом? Через IP, ICMP, или же CARP создает свою собственную систему передачи сообщений?
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Re[6]: как программно настроить ethernet интерфейс?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 22.09.08 06:41
Оценка:
Здравствуйте, slava_phirsov, Вы писали:

_>Здравствуйте, netch80, Вы писали:


N>>У каждого сервера есть свой адрес (или несколько) на интерфейсе, который он не отдаёт никогда — это его собственный.

_>Имеется в виду адрес в протоколе CARP?

Нет, повторяю: его _собственный_ адрес. Независимый от CARP.

_> CARP создает свое собственное адресное пространство? А как же тогда сообщения передаются? Я, пролистав информацию, решил, что CARP работает на протоколе IP, вернее, на ICMP :???:


Нет, не на ICMP. На своём протоколе поверх IP. Для сравнения, HSRP — прямо поверх канального уровня Ethernet.

N>>MAC всегда один — 00:00:5E:00:01:$VHID

_>Вот тут я вообще не догоняю... Разве MAC-адрес не задается аппаратно в сетевой карте (причем в каждом экземпляре карты — свой собственный, уникальный)? :no:

Тааак... Надо больше ликбеза.
1. Адрес сейчас (последние лет 20 минимум) в сетевухах никогда не прошивается жёстко. Любая сетевуха состоит из центральной части и подключенного к ней полуПЗУ (обычно флэш, иногда другой EEPROM), в котором лежит заводской MAC и другие важные параметры (например, особенности данной реализации), может быть boot ROM. Драйвер при старте читает этот заводской MAC и прописывает в настройки чипа сетевухи. Но он может прописать и нечто другое — и на это бывают штатные настройки.
2. Сетевуха обычно не слушает только настроенный основной MAC. Как минимум ещё обычно включено слушание бродкаста (MAC FF:FF:FF:FF:FF:FF). У всех, по-разному, где качественнее, где хуже, но у всех — настраивается слушать ещё какие-то мультикастовые адреса (они же групповые — младший бит первого октета MAC равен 1, но не бродкаст). В низших сетевухах это фильтр по CRC MAC'а, у него штатно могут быть коллизии и ложные срабатывания, в старших можно задать явный список (а плюс к тому — и фильтр). Так вот — в явном списке обычном можно указывать и уникастовые (персональные) адреса. На тупых сетевухах может даже оказаться, что нужно включать promisc, чтобы такое принимать. На таких сетевухах строить CARP может быть слишком дорого. На нормальных (Intel, DEC) — обычно нет проблем.
И в любых сетевухах сейчас нет проблем послать пакет с любым src MAC. На некоторых это дороже, чем с родным, но всё равно делается.

N>>Каждый из настроенных хостов систематически оповещает о себе, остальные запоминают и учитывают.

_>Оповещает — каким образом? Через IP, ICMP, или же CARP создает свою собственную систему передачи сообщений? :xz:

Собственную. Поверх IP (CARP, VRRP), поверх эзернетного фрейминга (HSRP).
The God is real, unless declared integer.
Re[7]: как программно настроить ethernet интерфейс?
От: Изя Рнет Беларусь  
Дата: 22.09.08 08:46
Оценка:
Здравствуйте, netch80, Вы писали:

N>Собственную. Поверх IP (CARP, VRRP), поверх эзернетного фрейминга (HSRP).


Откуда эти сведения про HSRP? Он живет поверх UDP, порт 1985, в чем несложно убедиться посмотрев на него сниффером.
Re[8]: как программно настроить ethernet интерфейс?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 22.09.08 08:49
Оценка:
Здравствуйте, Изя Рнет, Вы писали:

ИР>Здравствуйте, netch80, Вы писали:


N>>Собственную. Поверх IP (CARP, VRRP), поверх эзернетного фрейминга (HSRP).


ИР>Откуда эти сведения про HSRP? Он живет поверх UDP, порт 1985, в чем несложно убедиться посмотрев на него сниффером.


Ну значит забыл за давностью.
The God is real, unless declared integer.
Re[7]: как программно настроить ethernet интерфейс?
От: slava_phirsov Россия  
Дата: 22.09.08 10:15
Оценка:
Здравствуйте, netch80, спасибо за помощь, кое-что понял, кажется. Еще уточняющий вопрос:

N>У каждого сервера есть свой адрес (или несколько) на интерфейсе, который он не отдаёт никогда — это его собственный.

Я>Имеется в виду адрес в протоколе CARP?
N>Нет, повторяю: его _собственный_ адрес. Независимый от CARP.

собственный адрес — в каком протоколе? Не в CARP — значит остаются варианты: IP, Ethernet(MAC-адрес)
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
Re[8]: как программно настроить ethernet интерфейс?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 22.09.08 10:27
Оценка:
Здравствуйте, slava_phirsov, Вы писали:

_>Здравствуйте, netch80, спасибо за помощь, кое-что понял, кажется. Еще уточняющий вопрос:


N>>У каждого сервера есть свой адрес (или несколько) на интерфейсе, который он не отдаёт никогда — это его собственный.

Я>>Имеется в виду адрес в протоколе CARP?
N>>Нет, повторяю: его _собственный_ адрес. Независимый от CARP.

_>собственный адрес — в каком протоколе? Не в CARP — значит остаются варианты: IP, Ethernet(MAC-адрес)


И IP, и MAC.
Например: собственный MAC сервера на соответствующей сетевухе 00:01:16:12:34:56, IP — 192.168.0.2 и 192.168.0.12.
Собственный MAC второго сервера на соответствующей сетевухе 00:01:16:12:34:AA, IP — 192.168.0.3.
Они оба с этими адресами будут работать независимо от CARP, и будет соответствие этих IP этим макам (каждому — по-своему).

Настраивается CARP, номер группы надёжности 40, IP 192.168.0.1.
Соответствующий MAC будет 0:00:5E:00:01:28. Сервер, который его принял, будет отвечать на ещё один MAC и соответствующий ему IP.
The God is real, unless declared integer.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.