The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Пакеты для двух сетевых интерфейсов идут через один."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Пакеты для двух сетевых интерфейсов идут через один."  
Сообщение от Paladin84 (ok) on 24-Ноя-08, 14:10 
Здравствуйте.
У меня возникла следующая проблема:
В компьютере две сетевые карточки. Нужно чтобы пакеты посылались через обе. Однако после вызова bind() к конкретному IP адресу, пакеты все равно посылаются через одну карточку. Проверяю tcpdump ом. Все пакеты корректно сформированы - у них различные адреса источников, но посылаются через один и тот же (eth0) сетевой интерфейс. Обе карточки находятся в одной подсети.

Система: Ubuntu 8.04
Настроки маршрутизации не трогал.

Не подскажете, как это исправить? Или хотя бы куда копать?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Пакеты для двух сетевых интерфейсов идут через один."  
Сообщение от vic (??) on 24-Ноя-08, 14:18 
tcp or udp? :)

(следующий ответ будет - коды в студию)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Пакеты для двух сетевых интерфейсов идут через один."  
Сообщение от Paladin84 (ok) on 24-Ноя-08, 15:02 
Tcp.
По поволу кодов - все проще. Минимальный тест - запустить wget с параметром "--bind-address" на нужный ip адрес, качать большой файл. Пакеты ходят все равно только по одной сетевухе. Под виндой (виндовый wget + какойто то там cниффер) данный тест показывает нормальный результат (разные сетевухи в зависимости от bind а). Честно говоря думал что и под linux так же.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Пакеты для двух сетевых интерфейсов идут через один."  
Сообщение от SunRock on 24-Ноя-08, 21:50 
> Под виндой (виндовый wget + какойто то там cниффер)
> данный тест показывает нормальный результат (разные
> сетевухи >в зависимости от bind а).

Брехун несчастный :) А вы повелись ... Там точно так же нужно явно bonding делать ,)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Пакеты для двух сетевых интерфейсов идут через один."  
Сообщение от Paladin84 (??) on 25-Ноя-08, 07:12 
>Брехун несчастный :) А вы повелись ... Там точно так же нужно
>явно bonding делать ,)

Мне нужен не bonding. Мне нужна функциональность - к какому айпишнику сетевого интерфейса сделал bind, через такой интерфейс пакеты и посылаются. Всегда думал что так оно и работает. А оказалось нет. Неужели никто не знает в чем может быть дело?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "для двух сетевых интерфейсов идут через один"  
Сообщение от Andrey Mitrofanov on 24-Ноя-08, 14:35 
>Обе карточки находятся в одной подсети.
>Система: Ubuntu 8.04
>Настроки маршрутизации не трогал.
>Не подскажете, как это исправить? Или хотя бы куда копать?

Либо google.ru + linux interface bonding, либо http:/openforum/vsluhforumID10/3679.html#3 ... Наверное??...

Или две виртуальные машины "привязывать" к отдельным физ.карточкам?...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "для двух сетевых интерфейсов идут через один"  
Сообщение от Paladin84 (ok) on 24-Ноя-08, 15:10 
>Либо google.ru + linux interface bonding, либо http:/openforum/vsluhforumID10/3679.html#3 ...  

bonding это не то. Хотя функциональность на выходе должна получится схожая.
Я знаю что мои пакеты можно перенаправить куда надо(на нужную сетевую карточку). С помощью новых правил маршрутизации. Но очень странно, что оно просто не работает, без всяких ухищрений.

>Или две виртуальные машины "привязывать" к отдельным физ.карточкам?...

Нет все реальное.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "для двух сетевых интерфейсов идут через два"  
Сообщение от Andrey Mitrofanov on 25-Ноя-08, 08:58 
>>либо http:/openforum/vsluhforumID10/3679.html#3
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "для двух сетевых интерфейсов идут через два"  
Сообщение от Paladin84 (??) on 25-Ноя-08, 10:05 
>>>либо http:/openforum/vsluhforumID10/3679.html#3

Нет. Это я почитал еще вчера - там куча описаний по настройки маршрутов для двух провайдеров. У меня проблема другая. Я уже говорил что с помощью добавления маршрутов проблема может быть успешно разрешена. Тем не менее это ненормальное поведение (как я думаю).
Я не нашел по ссылкам ничего для моего случая. Если я ошибаюсь - и там решение действительно есть - дайте пожалуйста более конкретную ссылку.

Еще раз - есть две сетевые карточки - выходят в одну локальную сеть. Когда bind к айпишнику второй из карточек - то пакеты все равно уходят через первую, хотя адрес источника как у второй.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "для двух сетевых интерфейсов идут через два"  
Сообщение от angra (ok) on 25-Ноя-08, 10:25 
А какую роль играет адресс источника, если маршрут выбирается по назначению. Система ведет себя вполне адекватно, выбирает первый попавшийся маршрут, который позволяет доставить пакет, вот если бы выбирала второй, тогда было бы странно. Если хочется что-то поменять, то добавьте соответствующее правило маршрутизации.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "для двух сетевых интерфейсов идут через два"  
Сообщение от Paladin84 (??) on 25-Ноя-08, 14:07 
>А какую роль играет адресс источника, если маршрут выбирается по назначению. Система
>ведет себя вполне адекватно, выбирает первый попавшийся маршрут, который позволяет доставить
>пакет, вот если бы выбирала второй, тогда было бы странно. Если
>хочется что-то поменять, то добавьте соответствующее правило маршрутизации.

То есть это нормальное поведение системы? А для чего тогда существует bind? Для чего существует возможность bind ится к какому либо ip адресу (реально существующему), если потом пакеты идут все равно только по одному интерфейсу? Для чего реализовали эту возможность (--bind-address) в wget? На что это может влиять?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "для двух сетевых интерфейсов идут через два"  
Сообщение от devcoder (ok) on 25-Ноя-08, 14:19 
>То есть это нормальное поведение системы? А для чего тогда существует bind?
>Для чего существует возможность bind ится к какому либо ip адресу
>(реально существующему), если потом пакеты идут все равно только по одному
>интерфейсу? Для чего реализовали эту возможность (--bind-address) в wget?

bind() придуман для привязки локального сокета к ip-адресу
и ни разу не обещает тебе через какую трубу выйдет пакет.
У тебя адрес в источнике исходящих пакетов как указан в случае с bind()?
Правильно, так как ты и задал в bind(). Не требуй больше от него (bind-a).
Если бы сетевухи были в разных подсетках, то было бы так, как ты хочешь.
Но нет, у тебя несколько нетипичная задача и поэтому гуляй
в сторону LARTC (Linux Advanced Routing & Traffic Control HOWTO).

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "для двух сетевых интерфейсов идут через два"  
Сообщение от vic (??) on 25-Ноя-08, 14:28 
>>А какую роль играет адресс источника, если маршрут выбирается по назначению. Система
>>ведет себя вполне адекватно, выбирает первый попавшийся маршрут, который позволяет доставить
>>пакет, вот если бы выбирала второй, тогда было бы странно. Если
>>хочется что-то поменять, то добавьте соответствующее правило маршрутизации.
>
>То есть это нормальное поведение системы? А для чего тогда существует bind?
>Для чего существует возможность bind ится к какому либо ip адресу
>(реально существующему), если потом пакеты идут все равно только по одному
>интерфейсу? Для чего реализовали эту возможность (--bind-address) в wget? На что
>это может влиять?

Не так. Пакеты идут согласно правилам маршрутизации. Параметр --bind-address дает возможность указать обратный адрес в пакете и все. Это не значит что исходящий пакет пойдет через другую сетевую карту. Этой командой указывается на какой адрес удаленная сторона должна слать ответ. Т.е. wget сделает стандартный bind на указанный IP (просто в поле источник в пакете вписывается IP). Но ниже по стеку уже включаются правила маршрутизации которые управляют пакетами на данном хосте. По правилам у вас в локалку два маршрута, но при равных дефолтных условиях будет выбираться всегда первый маршрут.

В общем это абсолютно нормально. Но рыть доку в поисках точного объяснения лень.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру