LINUX.ORG.RU
ФорумAdmin

таблица маршрутизации и две сетевухи


0

0

На одном хосте есть 2 сетевых устройства, скажем eth0 и eth1. Я хочу настроить сеть так, чтобы приложения передавали данные с первого устройства на второе (производится тетирование драйверов). В чем, собственно, проблема: предположим, назначаем IP 192.168.0.1 и 192.168.0.2. При этом в таблице маршрутизации появляются следующие записи:

192.168.0.0 * 255.255.255.0 U 0 0 0 eth0
192.168.0.0 * 255.255.255.0 U 0 0 0 eth1

Если пытаться пинговать какой-нибудь из этих IP, то пакеты не доходят из-за того (как я понимаю) ядро думает, что мы хотим передать пакеты с одного из устройств на самого себя.

Конечно, выход - разнести eth-ы на два хоста, но хотелось бы сократить количесво требуемоего железа для тестирования.

Подскажите пожалуйста, можно ли как грамотно настроить таблицу маршрутизации, чтоб пакеты шли?

Из-за того, что у тебя два интерфейса в одной подсети. Для второго, например, сделай 192.168.1.1/255.255.255.0

gruy ★★★★★
()
Ответ на: комментарий от gruy

Спасибо, но к сожалению не все так просто. Теперь картина выглядит следующим образом:

192.168.0.0 * 255.255.255.0 U 0 0 0 eth0 //192.168.0.1
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1 //192.168.1.1

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

dima3351
() автор топика
Ответ на: комментарий от dima3351

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

route add -net 192.168.1.0 dev eth0

grad
()

ИМХО, ядро перед отправкой пакета всегда проверяет, является ли адрес локальным, и соответсвенно, заставить приложения обмениватсья трафиком через внешний switch не так просто... Может попробовать написать SNAT и DNAT правила (SNAT можно делать от любого ip), и еще arp записи добавить...

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.