Назад | Перейти на главную страницу

Есть ли в Linux такой инструмент, как 'route', для настройки записи пересылки (dst mac-адрес -> интерфейс)

У меня проблема с настройкой таблицы пересылки в Linux.
Мы называем таблицы IP для таблицы маршрутизации на уровне 3, таблицы MAC для таблицы пересылки на уровне 2.
Теперь я хочу добавить запись в таблицу пересылки. Я знаю инструмент route Команда может использоваться для добавления записи маршрутизации в таблицу маршрутизации, например:

# [корень] # добавление маршрута -net 192.168.10.0 маска сети 255.255.255.0 dev eth0

Итак, есть ли такой инструмент, как «маршрут», который позволяет мне добавлять запись в таблицу пересылки, например:

# [корень] # 'имя команды' добавить 01: 02: 03: 04: 05: 06 dev eth1

Все, что мне нужно, это как привязать MAC-адрес назначения к фиксированному сетевому интерфейсу ?!


Спасибо за ответ всем вам. Кажется, я не ясно изложил свою цель, поэтому большинство из вас задавались вопросом о моем требовании. Сейчас мы работаем над сетевым экспериментом центра обработки данных, в котором основное внимание уделяется размеру таблиц пересылки коммутаторов. В этом сценарии используется топология толстого дерева, и другая исследовательская группа разработала новый метод адресации и маршрутизации, который может гарантировать два свойства: многолучевость и малый таблица пересылки размер. Здесь мы назвали таблицу уровня 2 таблицей пересылки, поскольку это тот же вызов Cisco. В этой сети есть контроллер, поэтому все таблицы переадресации могут быть получены с помощью этого контроллера. Теперь эксперимент заключается в том, как записать таблицу пересылки от контроллера к коммутаторам. Это означает, как писать такие записи, как MAC_ADDR ---> ВЫХОДНОЙ ИНТЕРФЕЙС. Обратите внимание, что эта сеть похожа на большую «ЛВС», в которой нет необходимости выполнять IP-маршрутизацию.

У вас должно получиться сделать это с помощью утилиты arp.

arp -i eth0 -s

В Linux вы всегда должны использовать ip команда для изменения конфигурации сети. В route присутствует, но не дает вам доступа ко всем функциям маршрутизации Linux. Теперь пересылка MAC-адресов обычно называется мостом, для которого вы можете использовать brctl инструмент. Но из вопроса не ясно, как вы используете MAC-адреса.

Сначала несколько замечаний. Маршрутизация это процесс поиска направления (ов). Пересылка пакетов TCP / IP через называется пересылка. Вот почему sysctl называется net.ipv4.ip_forward и цепочка netfilter называется FORWARD. Стоит добавить, что есть динамическая и статическая маршрутизация. И то, что делают переключатели, называется (сюрприз) переключение.

Коммутаторы 2-го уровня OSI используют таблицу соответствия MAC_Dest-PortNum только потому, что эти порты относятся к 2-му уровню - этого достаточно, чтобы переключить кадр Ethernet на определенный порт (или транслировать его при отсутствии конкретной записи в таблице).

Сетевые интерфейсы Linux - это не просто порты переключения, они интерфейсы. Пересылка пакета TCP / IP (дейтаграммы) включает поиск (внутри кеша таблицы маршрутизации) соответствующего выходного интерфейса. И я никогда ничего не слышал о поддержке Linux переключение.

Вывод: если вы хотите, чтобы пакет проходил через систему Linux, вы должны использовать таблицу маршрутизации. Вы можете использовать arptables / ebtables / iptables, чтобы обмануть эти пакеты, но, поскольку вы не описали Зачем нужно ли вам это, довольно неясно, можно ли достичь вашей цели и как.

Насколько я могу судить, вы хотите сообщить ядру, что кадры Ethernet, предназначенные для конкретного MAC, должны доставляться на конкретный интерфейс. Однако это должно происходить автоматически; до тех пор, пока ваши два интерфейса соединены мостом, кадры Ethernet будут пересекать мост и без проблем находить свои места назначения. Конечно, вы должны соблюдать определенные правила, в том числе не устанавливать слишком много переключателей между несколькими точками в вашей сети.

Если вы уже используете свою систему как мост, а кадры Ethernet не достигают нужных мест, возможно, в вашей сети произошла ошибка; вам нужно перепроверить, чтобы убедиться, что в вашей сетевой проводке нет петель и т. д.

Если у вас большая сеть, то вам подойдут IP-подсети; Таким образом, у вас есть возможность запускать полноценные маршрутизаторы, которые могут перемещать пакеты уровня 3 любым способом, которым они должны перемещаться. Как правило, вы предпочтете разделение IP-подсетей на хитрые приемы на уровне 2. Вам не нужно работать с MAC-адресами, если вы не используете их в качестве ключей для регистрации. Вы, конечно, не хотите основывать на них какую-либо безопасность, поскольку MAC-адреса можно легко подделать / клонировать.