LINUX.ORG.RU
ФорумAdmin

запуск трафика между двумя сетевками на одном компе

 


0

2

Есть такая задачка.
Имеем комп с двумя сетевками. ip - адреса можно задать любые.
Обе сетевки воткнуты в один коммутатор.
Нужно заставить ходить трафик через коммутатор.

Какие есть варианты?

Перемещено true_admin из development

★★★★★

Если ты хочешь, чтобы трафик ходил по обеим картам наружу, то это называется балансировка и iptables её умеет.

anonymous
()
Ответ на: комментарий от Elyas

Через виртуальную машину

никаких виртуалок.

Только одно ядро линукс.

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

это называется балансировка и iptables её умеет.

Попробую посмотреть.

P.S. Вообще мне нужно чтоб трафик ходил между этими сетевками, но не через ядро, я через внешние физические интерфейсы.

yax123 ★★★★★
() автор топика
Последнее исправление: yax123 (всего исправлений: 2)

Не выйдет. Как ты заставишь сетевой стек выкинуть трафик наружу если адресат, вот он, внутри?

anonymous
()
Ответ на: комментарий от yax123

Никак. Только внешний IP, обращение на который заворачивает трафик обратно, но на другую ногу.

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

Только внешний IP, обращение на который заворачивает трафик обратно, но на другую ногу.

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


Я пока вижу реальный выход в том чтобы найти в ядре место где решается внутренний это ip или нет и в том месте поставить что «ip всегда внешний».

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

Был ядреный патч на эту тему, google://send to self via ethernet

А вот это похоже наш случай.

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

Я пока вижу реальный выход в том чтобы найти в ядре место где решается внутренний это ip или нет и в том месте поставить что «ip всегда внешний».

ip r  l t local
pyatak123
()

Ставлю сто гульденов, что изначальная задача звучит на самом деле иначе, а описанный велосипед лишь фантазия ТСа на тему как эту задачу решить.

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

Ставлю сто гульденов

где забрать свои 100 гульденов?

Изначальную задачу можно поставить так:
ifconfig:
eth0 192.168.1.1
eth1 192.168.1.2

iperf -B 192.168.1.1 -s -D

iperf -B 192.168.1.2 -c 192.168.1.1

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

Обе сетевки воткнуты в один коммутатор.

Или все не так? Я думал у вас есть доступ на коммутатор и коммутатор минимум L2.

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

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

pyatak123
()
Ответ на: комментарий от gh0stwizard

Или все не так? Я думал у вас есть доступ на коммутатор и коммутатор минимум L2

Иногда коммутатор это просто коммутатор. Мне нужно проверить работу коммутатора под нагрузкой при помощи одного компа с двумя сетевками.

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

имея в распоряжении одну тачку

именно так.

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

lol, 3 разные вещи, коммутатор, не управляемый, хаб. Исправь обратно.

pyatak123
()
Ответ на: комментарий от gh0stwizard

Понятно, неуправляемый называется, также известный как хаб.

hub - это концентратор (все порты в одном сегменте)
switch - это коммутатор (сегментирует сеть)

Вот у меня на на столе стоит trendnet Gigabit Switch TEG-S8g

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

Т.е человек говорит что у него коммутатор

Не привязывайтесь к человеку :)
Ну не видел он хабов. Не застал.

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

Мне нужно проверить работу коммутатора под нагрузкой при помощи одного компа с двумя сетевками.

можно ping-овать броадкаст адрес через обе сетевухи, и tcpdump-ом считать пришедшие пакеты

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

можно ping-овать броадкаст

Слишком пионерское решение. Нужно гигабит с одного порта залить в другой порт.
Есть и другие задачи, которые простым пингом не решить.

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

Это что за ведическая руна?

Это троллинг с твоей стороны. Спасибо, что поправил, но в виду того, что классические хабы это прошлый век, то, имхо сейчас хаб почти тождественнен неуправляемому коммутатору. Вообще, имхо, неуправляемые коммутаторы должны также себя изжить :)

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

На самом деле pyatak123 предложил интересный вариант
Думаю в выводе 'ip a' у тебя сейчас все адреса фигурируют как scope host
Попробуй переконфижить на scope link
Придётся почитать ман по утилите ip, но я верю ты справишься
И надо убедиться что выключен ip forwarding

zolden ★★★★★
()
Последнее исправление: zolden (всего исправлений: 1)
Ответ на: комментарий от gh0stwizard

Это не толксы чтобы кого-то троллить. Так что мимо кассы.
Развивать тему про ошибки в классификации сетевого оборудования я не собирался, но после этого:

также известный как хаб.

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

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

Вполне можно

Вообще-то про 1Гбит было не достаточное условие, а необходимое (в моем посте еще была вторая строка).
Но если вы расскажите как при помощи ping создать TCP_STREAM будет просто замечательно.


И не вздумайте называть меня троллем!

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

Мне нужно проверить работу коммутатора под нагрузкой

А зачем именно TCP? Если коммутатор тупой, то ему без разницы, какие пакеты обрабатывать

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

Задай этот вопрос своему сердцу, брат

Понятно, нигер.

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

А зачем именно TCP

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

Не нужно выдумывать ограничения и в их рамках давать советы.

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

т.е нужно обязательно-кровь-с-носу установить именно TCP соединение со своим локалхостом через внешние сетевые устройства?

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

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

вот именно! никаких ограничений.

Про то и речь. А вы предлагаете очень узкое и частное решение, да еще упрямо его отстаиваете.
Эпитет «пионерское» вас задел?

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

вот именно! никаких ограничений.

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

/0

Если никаких ограничений на тип трафика нет, почему icmp пакеты вдруг «очень узкое и частное решение»? Чем они хуже TCP?

Harald ★★★★★
()

Я такое делал, но точно все шаги сейчас не напишу.

Примерно так. Сетёвкам назначаем адреса A.A.A.A и B.B.B.B. Отправляем траффик на ip-адрес X.X.X.X, прописываем для него маршрут через первую сетёвку и прописываем arp-запись, указывающую на MAC-адрес второй сетёвки. В iptables делаем SNAT этого пакета на замену src-адреса на Y.Y.Y.Y и DNAT на замену dst-адреса на B.B.B.B. Прописываем arp-запись для Y.Y.Y.Y, указывающую на MAC-адрес первой сетёвки.

В общем смысл, чтобы на уровне работы с сокетом использовались адреса не пренадлежащие этой машине, тогда ядро примет решение о маршрутизации их через сетёвку. А при помощи arp-записей и NAT-правил в iptables сформировать пакет с адресами, пренаделжащим сетёвке.

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

А не подскажите где взять pktget? А то популярные поисковики на этот счет ничего не выдают.

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