ifconfig staticarp на gentoo [РЕШЕНО]

Здравствуйте товарищи!

У меня довольно интересный вопрос. И как еще выяснилось, после гугления, больной для линукса.
Есть ли способ сделать staticarp в линуксе, в частности в gentoo?
Насколько я знаю в freebsd есть средства, вроде такого:

ifconfig em0 192.168.1.1/24 staticarp up

В gentoo я нашел только ключ -arp который вырубает arp протокол совсем. Мне этот вариант не подходит, так как я собираюсь сделать статический арп на сервере и понятное дело клиенты будут "терять" сервер после того как у них запись в arp кеше устареет и сотрется, а сервер не будет отвечать на arp запросы.

Посоветуйте как сделать лучше.
Заранее благодарен.

Вы думаете, что здесь

Вы думаете, что здесь сплошняком сетевые фряшники и все знают, что такое carp, или что кто то побежит гуглить ?
скажи толком , чего хочешь, и не говори, чего там во фряхе =)

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Я написал чего я хочу. Я хочу

Я написал чего я хочу. Я хочу статический ARP.
Только не статико-динамический как он получается при привязке IP <-> MAC командой:

arp -s 192.168.1.1 00:00:00:00:00:00

Поясню, статическим будет только то, что я вписал командой выше, но все остальные записи будут в таблице динамическими.

Если ничего не помогает, прочти наконец инструкцию...

я правильно понял что речь

я правильно понял что речь идет о привязки в ARP таблице IP к MAC?
если да то гугл выплюнул на второй ссылке http://www.opennet.ru/tips/info/750.shtml
А все остальное рубите файерволом как еритиков. Я как понимаю вам один фиг от них трафика не надо?

Хотелось бы красивее решение,

Хотелось бы красивее решение, чтобы "левые" маки вообще не попадали в ARP таблицу.
На freebsd это так и решается командой ifconfig staticarp.

Если ничего не помогает, прочти наконец инструкцию...

на предмет ядра не смотрели

на предмет ядра не смотрели кстати? может там есть что-то похожее?
http://linux.die.net/man/7/arp тут есть намек на несовсем красивое но тоже решение. ограничить размер таблицы arp ручками через sysctl и внести туда все необходимые адреса при старте машины. В общем хак но результат тотже.
Для полноты картины, я могу конечно ошибаться, но имхо пакеты один фиг будут приходить, из-за отсутсвия arp в кэше они не будут уходить, так что вернее рубить это все фаерволом...
И еще одно, в сетевом плане линух куда ущербнее чем бсдя ;) так что искать аналоги сложновато )

И еще одно, в сетевом плане

И еще одно, в сетевом плане линух куда ущербнее чем бсдя

Давайте без вбросов, плиззз.
носилянство одной какой либо системы не повод для заявлений.

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

"носилянство" я просто слова

"носилянство" я просто слова не понял.
ну в общем в линухе я вот только такие вот костылятости могу предложить. вечером еще посмотрю что там в ядре.
И всеж в БСДЕ работа с сетевыми протоколами сделана грамотнее ;) даже не смотря на то что я убежденный гентушник )

/

semlanik написал(а):
И всеж в БСДЕ работа с сетевыми протоколами сделана грамотнее ;)

Грамотнее для кого|чего?
Google и Cisco имеют на этот счет отличное от вашего мнение.
Даже несмотря на то, что они убежденные акулы бизнеса.

Наблюдаю интересную и в общем то закономерную картину: правильно поставленная задача или правильно заданный вопрос - это уже половина ответа. Хочешь "как ва {фре,венде,саляре}", ну дык используй соответствующий инструмент. Подобные формулировки совершенно не способствуют поиску решения.

как выразился один мой друг

как выразился один мой друг pf после iptables это как C++ после C. И не могу с ним не согласится ) А насчет формулировки, там пониже человек ясно дал поянть что хочет фиксированную ARP таблицу и все. Имхо можно ограничить размер и внести только интересующие записи. Должно быть счастье.

Счастье в чем? В ругани

Счастье в чем? В ругани которая будет сыпаться в логи, что ARP таблица переполнена. Это уважаемый какой-то велосипед...

Если ничего не помогает, прочти наконец инструкцию...

Тык слезайте и садитесь в

Тык слезайте и садитесь в авто, как предлагает товарищ taaroa. А так только и остается что заниматься велосипедизмом.

Это не вариант.

Это не вариант.

Если ничего не помогает, прочти наконец инструкцию...

arpd вот еще нарыл. правда о

arpd вот еще нарыл. правда о нем ничего не слышал, так что не знаю. у меня идеи кончились.

Погуглил я про него, народ

Погуглил я про него, народ жалуется что глюковатая штука.
Этот демон входит в состав iproute2 и реализует увеличение arp таблицы, за счет ведения собственной базы.
Для меня этот демон абсолютно бесполезен...

Если ничего не помогает, прочти наконец инструкцию...

.

LinAdmin написал(а):
Этот демон входит в состав iproute2 и реализует увеличение arp таблицы, за счет ведения собственной базы.

$ eix arpd|grep Desc
     Description:         ARP server which claims all unassigned addresses (for network monitoring or simulation)
$ eix iproute2|grep Desc 
     Description:         kernel routing and traffic control utilities

LinAdmin написал(а): Я

LinAdmin написал(а):
Я написал чего я хочу. Я хочу статический ARP.
Только не статико-динамический как он получается при привязке IP <-> MAC командой:

arp -s 192.168.1.1 00:00:00:00:00:00

Поясню, статическим будет только то, что я вписал командой выше, но все остальные записи будут в таблице динамическими.

Долго читал, несколько раз даже. все равно не понял.
Вы хотите жестко привязать маки к айпишкам и рубать все тех, кто не прошел проверку ( т.е не отвечать на арп запрос, если не совпала пара ARP <=> IP) ?

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

всеж рубить и не отвечать это

всеж рубить и не отвечать это разные вещи имхо. можно поймать пакет обработать но в ответе просто не найти адресата (к tcp не отностится). А можно поймать посмотреть что от кого пришло и не обрабатывать вообще. В целом надо того кто знает как устроен staticarp в бсде.

Именно это мне и надо! Я хочу

Именно это мне и надо! Я хочу жестко контролировать ARP таблицу, чтобы в ней были только те записи, которые внес я.

Если ничего не помогает, прочти наконец инструкцию...

/proc/sys/net/ipv4/neigh/имя_

/proc/sys/net/ipv4/neigh/имя_устройства/*_solicit

Может - эти параметры помогут? Насколько я понял, ими регулируется кол-во запросов перед принятием решения, что хост недоступен. Если их выставить в ноль, то линух вообще должен прекратить отправлять запросы ARP в сеть.

В том то и проблема, что

В том то и проблема, что линукс наоборот посылать ARP-ответы должен, но не должен принимать "левые" MAC-адреса, которых у него в таблице нету.
То что вы говорите можно реализовать намного проще:

ifconfig eth0 192.168.1.1/24 -arp up

После этой команды линукс перестанет принимать ARP-запросы и отвечать на них.
Меня она устроила бы, НО мне надо чтобы линукс отвечал на запросы тех машин, MAC-адреса которых есть в его таблице.
На одном из форумов был предложен следующий вариант решения этой проблемы:
1) выключаем интерфейс

ifconfig eth0 down

2) поднимаем интерфейс с выключенным ARP

ifconfig eth0 -arp up

3) записываем нужные записи в свою ARP-таблицу

arp -s <IP> <MAC>

4) напишем скрипт который бы пинговал нужные машины, чтобы они обновляли свою запись о сервере в ARP-таблице, так как наш сервер не будет отвечать на ARP-запросы. Скрипт выполняем кроном каждые 5-10 минут.

#!/bin/bash
#
for ((n=2; n<=254; n++)); do
    ping -c 1 192.168.1.${n}
done

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

Если ничего не помогает, прочти наконец инструкцию...

В том то и проблема, что

В том то и проблема, что линукс наоборот посылать ARP-ответы должен, но не должен принимать "левые" MAC-адреса, которых у него в таблице нету.

читайте маны, они рулез:

DESCRIPTION
       The arpd daemon collects gratuitous ARP information, saving it on local disk and feeding it to kernel on demand to avoid redundant broadcasting due to limited size of kernel ARP cache.

DESCRIPTION
       ebtables is an application program used to set up and maintain the tables of rules (inside the Linux kernel) that inspect Ethernet frames.  It is analogous to the iptables application,
       but less complicated, due to the fact that the Ethernet protocol is much simpler than the IP protocol.



DESCRIPTION
       Rarp manipulates the kernel's RARP table in various ways.  The primary options are clearing an address mapping entry and manually setting up one. 


DESCRIPTION
       /etc/ethers contains 48 bit Ethernet addresses and their corresponding IP numbers, one line for each IP number:

              Ethernet-address  IP-number

       The  two  items are separated by any number of SPACE and/or TAB characters.  A # at the beginning of a line starts a comment which extends to the end of the line.  The Ethernet-address
       is written as x:x:x:x:x:x, where x is a hexadecimal number between 0 and ff which represents one byte of the address, which is in network byte order (big-endian).  The IP-number may be
       a hostname which can be resolved by DNS or a dot separated number.

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

,

slepnoga написал(а):
читайте маны, они рулез:

Капитан, спасибо Вам, но надо то "как во фре" (;
__________________________________________________
@hook pre "sysctl -p &> /dev/null";
@hook post "arp -f /etc/ethers &> /dev/null";
table filter {
interface (eth0 ppp0 etc) {
chain INPUT {
policy DROP;
mod state state INVALID DROP;
mod state state (ESTABLISHED RELATED) ACCEPT;
}
}
}
domain arp chain INPUT {
policy DROP;
interface (eth0 etc) {
destination-mac BROADCAST DROP;
ACCEPT;
}
}
domain eb chain FORWARD {
policy DROP;

logical-in br0 logical-out br0 {
proto (IPv4 ARP) ACCEPT;
}
}________________________________
^а это специально для ниасиляторов iptables

Не понятно что вы хотели

Не понятно что вы хотели сказать публикуя листинги манов на английском языке. Если хотите что вас понимали изъясняйтесь пожалуйста на русском. Ведь это русский форум, ведь так?
Далее, маны читать я умею, и если бы нашел в них то, что мне надо, я бы не задал вопрос здесь. А вот вы похоже не до конца поняли что надо и советы раздаете.
ARPd - коллекционирует информацию и сохраняет ее на жесткий диск и выдает эту информацию ядру по требованию. НЕ ПОДХОДИТ.
ebtables - мосты и PPPoE у меня отсутствуют. НЕ ПОДХОДИТ.
RARP - это некий аналог DNS, в моей сети IP статические. НЕ ПОДХОДИТ.
Про /etc/ethers я знаю и читал этот ман.
Если все подытожить, то по существу вы ничего не сказали.

Если ничего не помогает, прочти наконец инструкцию...

ниже перевод моего намека на

ниже перевод моего намека на совсем уж русский.

ARPd - коллекционирует информацию и сохраняет ее на жесткий диск и выдает эту информацию ядру по требованию. НЕ ПОДХОДИТ.

НЕ ПОДХОДИТ - т.е маки и соотв их ип в общем случае узнаются астральным путем .

ebtables - мосты и PPPoE у меня отсутствуют. НЕ ПОДХОДИТ.

ман прочитай внимательно, примени мозг - ebtables работает с L2 уровнем,коем и является езернет.

RARP - это некий аналог DNS, в моей сети IP статические. НЕ ПОДХОДИТ.

ндас. а это пожалуй уже фортунки - RARP есть протокол, решающий задачу, обратную задаче протокола ARP.

Про /etc/ethers я знаю и читал этот ман.

если бы читал, то формулировка была бы "не как во фре", а как его использовать

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

И все же мне кажется, что вы

И все же мне кажется, что вы меня не поняли.
ARPd - информацию коллекционирует, но он получает ее из сети, а именно это мне и надо предотвратить.
Про ebtables и RARP я начитался и они не решают мою проблему.
И что вы предрались "как во фре", я всего лишь привел пример.
В общем то человек ниже постом описал достаточно хорошую реализацию при помощи iptables, хотя я потыкал еще и arptables это тоже вещь!

Если ничего не помогает, прочти наконец инструкцию...

если бы вы "потыкали" еще, то

если бы вы "потыкали" еще, то увидели бы, что arptables - deprecated, и заменены на ebtables :) , и что родом они с одного и того же сатйта на sf.net

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

.

LinAdmin написал(а):
У клиента может антивирус блокировать icmp

Улыбнуло.
А еще злобный клиент может настроить firewall порезав не только icmp, но и сделать mod pkttype pkt-type (broadcast multicast unicast) DROP и прочие веселые вещи (:

Хм... Вы, видимо, не поняли

Хм... Вы, видимо, не поняли меня правильно. Идет речь о запросах, а не ответах. Т.е. - приведенные мною параметры отвечают именно за запросы. Что касается ответов - то хост их будет давать, если у него будут спрашивать. Но сам он спрашивать ничего не будет, и соответственно - будет "видеть" только адреса, прописанные в арп-таблице статически.

Если я ничего не перепутал - вам именно это было нужно?

А если сервер будут

А если сервер будут опрашивать неизвестные ему узлы, то их МАКи будут записаны у него в ARP таблице?

Если ничего не помогает, прочти наконец инструкцию...

А для того, чтобы неизвестные

А для того, чтобы неизвестные узлы игнорировать, нужно использовать arptables (или ebtables по-новому, если я ничего не путаю). Т.е. - с одной стороны, через sysctl отключается активный поиск соседей, а с другой стороны, через ebtables фильтруются запросы от "левых" хостов.
Не именно это ли было нужно изначально?

Да! Именно это и нужно было!

Да! Именно это и нужно было! Огромное спасибо за помощь!

Если ничего не помогает, прочти наконец инструкцию...

http://www.gentoo.ru/content/

Совсем забыл. Сейчас

Совсем забыл. Сейчас исправлю. =)

Если ничего не помогает, прочти наконец инструкцию...

iptables -m mac --mac

iptables -I таблица -m mac --mac xx:xx:xx:xx:xx:xx -s ! нужный_ip_адрес -j DROP

вставляйте хоть в INPUT, хоть куда. Заглянцевать статической арп привязкой и положить большой болт на появляющиеся в арп таблице левые маки... это способ номер 1.

Номер 2 - ebtables+arptables. Более грамотный, но более сложный. Засим отправляю вас в гугл...

P.S. На опеннете проскакивал патч для ТРУ-параноиков. Там менялась реализация arp так, что он кормился маками ТОЛЬКО из файла, не отвечая клиентам, которых он не знает. Но, повторюсь, без грубых хаков самый тру-параноидальный способ - способ №2

Нейтральность - высшее достижение сознания!

Довольно интересное решение!

Довольно интересное решение! Поэкспериментирую на досуге. =)

Если ничего не помогает, прочти наконец инструкцию...

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".