несколько физических интерфейсов с дюйм/с на той же подсети

Вы могли установить Microsoft Web Platform. Его просто несколько щелчков и все настроены правильно и готовые работать!! Это включает много веб-приложений, платформ и образцов, и это дает Вам возможность добавить что-либо, что Вы хотите канавку выбор. URL для загрузки является фунтом www.asp.net/downloads: конечно, платформа PHP включена, хе-хе-хе не запутывайтесь просто, потому что от Microsoft.

13
задан 8 August 2012 в 02:33
5 ответов

Вам нужна модель сильной оконечной системы . Linux в основном построен на слабой модели системы отправки, так что это действительно не лучший выбор ОС для этого приложения.

Вам придется подделывать каждую часть нужного поведения, от ARP до маршрутизации политики и выбора адреса источника. Вам также понадобятся фильтры для предотвращения приема пакетов, если они прибывают на неправильный интерфейс.

Определенно необходимые шаги:

  1. Настройте arp_filter = 1 и arp_ignore = 2 на всех интерфейсах.

  2. Добавьте для каждого интерфейса. , маршрутизация исходящего трафика на основе источника. (Интерфейс назначения должен быть выбран на основе адреса источника.)

  3. Добавьте фильтрацию входящего трафика для каждого интерфейса, чтобы автоматически отбрасывать пакеты, полученные на неправильном интерфейсе. (Пакеты с адресом назначения, назначенным другому интерфейсу.)

К сожалению, нет единого мнения о том, достаточно ли этих трех шагов. Модель слабой конечной системы встроена во весь стек TCP / IP Linux, и неясно, что может пойти не так с тонкими проблемами, такими как многоадресная рассылка.

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

Опять же, вы выбрали неправильный инструмент для работы.

например. Должен ли он погаснуть всех? Может быть. Каково правильное поведение, если стек получает исходящую широковещательную рассылку с адресом источника, не назначенным ни одному из интерфейсов?

Опять же, вы выбрали неправильный инструмент для работы.

например. Должен ли он погаснуть всех? Может быть. Каково правильное поведение, если стек получает исходящую широковещательную рассылку с адресом источника, не назначенным ни одному из интерфейсов?

Опять же, вы выбрали неправильный инструмент для работы.

17
ответ дан 2 December 2019 в 21:20

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

Вам также понадобится поддержка на коммутаторе.

Вот ] мини-учебник , который можно использовать для начала работы.

4
ответ дан 2 December 2019 в 21:20

Кажется, вам нужна тестовая среда, эквивалентная 9 отдельным машинам, и вы полагали, что 9 интерфейсов на одной машине могут это эмулировать. В Linux это просто невозможно сделать через один стек по причинам, описанным Дэвидом Шварцем. БТДТ и есть шрамы. Было достаточно плохо с двумя интерфейсами.

Лучшим решением могло бы быть запуск 8 или 9 дискретных виртуальных машин на вашем одном хосте и соединение 8 или 9 интерфейсов с этими виртуальными машинами.

4
ответ дан 2 December 2019 в 21:20

Скорее всего, вы хотите создать мост с интерфейсами 8/9, а затем назначить IP-адрес этому мосту (bridge-utils packet, команда 'brctl add').

Таким образом, мост будет действовать как коммутатор и может иметь IP-адрес в вашей подсети.

.
6
ответ дан 2 December 2019 в 21:20

Да, это возможно, следуя предложению Дэвида Шварца:

echo -ne 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo -ne 0 > /proc/sys/net/ipv4/conf/eth0/rp_filter
echo -ne 0 > /proc/sys/net/ipv4/conf/eth3/rp_filter

// Для правильной работы, т.е.ARP-ответы от eth1 для генерации, когда и eth0, и eth1 находятся в одной подсети

echo -ne 0 > /proc/sys/net/ipv4/conf/all/arp_filter
echo -ne 2 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo -ne 0 > /proc/sys/net/ipv4/conf/eth0/arp_filter
echo -ne 2 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo -ne 0 > /proc/sys/net/ipv4/conf/eth1/arp_filter
echo -ne 2 > /proc/sys/net/ipv4/conf/eth1/arp_ignore

//Create a table called "new_rt_table" and create a routing rule that says any packet with a mark equal to '1' gets routed according to the "new_rt_table"(can name it whatever you want) table. The file /etc/iproute2/rt_tables is the only source of table names on the system. Internally, routing tables have integer identifiers.

echo 1 new_rt_table >> /etc/iproute2/rt_tables
ip rule add from all fwmark 1 table new_rt_table

// настраиваем таблицу "new_rt_table" для маршрутизации пакетов через eth1

ip route add default dev eth1 table new_rt_table
ip route show table new_rt_table

// отмечаем пакеты, чтобы 'ip route' мог маршрутизировать их через eth1

iptables -F -t mangle
iptables -t mangle -I OUTPUT -s <ip addr of eth1> -o eth0 -j MARK --set-mark 1

// включить поддержку нескольких таблиц маршрутизации в конфигурации ядра.

Конфигурация ядра

→ Поддержка сети → Параметры сети

[*] IP: расширенный маршрутизатор

[*] IP: маршрутизация политики

CONFIG_IP_ADVANCED_ROUTER

CONFIG_IP_MULTIPLE_TABLES

// вышеуказанные шаги перенаправляют пакеты, предназначенные для вывода из eth0, для правильного выхода из eth1.

Пожалуйста, предложите любые другие методы, если кто-нибудь заставляет это работать.

0
ответ дан 2 December 2019 в 21:20

Теги

Похожие вопросы