The OpenNET Project / Index page

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

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

"FreeBSD и форвардинг (два внешних интерфейса)"  
Сообщение от Pahanivo email(ok) on 23-Апр-09, 14:06 
Имею вашинку с тремя интерфейсами (третий неважен так как смотрит в локалку).
Внешние интерфейсы (оба D-Link DFE-520TX):
vr0
ifconfig_vr0="inet 222.222.33.146 netmask 255.255.255.252"
(шлюз для этого интерфейса 222.222.33.145)
vr1
ifconfig_vr1="inet 111.111.15.40  netmask 255.255.255.240"
(шлюз для этого интерфейса 111.111.15.33)

defaultrouter="111.111.15.33"

На мащине включен gateway_enable="YES"

Форвардингом в ipfw делаю так, чтобы пакет, пришедший на адрес интерфейса
vr0 (который не является шлюзом по умолчанию) уходили через него наружу:

# ipfw -a list
00010  1322  110992 fwd 222.222.33.145 ip from 222.222.33.146 to any out not via vr0
65535 36586 3307927 allow ip from any to any

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

# ping 111.111.15.19
PING 111.111.15.19 (111.111.15.19): 56 data bytes
64 bytes from 111.111.15.19: icmp_seq=0 ttl=63 time=0.875 ms
64 bytes from 111.111.15.19: icmp_seq=1 ttl=63 time=0.871 ms
64 bytes from 111.111.15.19: icmp_seq=2 ttl=63 time=0.769 ms

через интерфейс не являющийся шлюзом по умолчанию:
# ping -S 222.222.33.146 111.111.15.19
PING 111.111.15.19 (111.111.15.19) from 222.222.33.146: 56 data bytes
64 bytes from 111.111.15.19: icmp_seq=0 ttl=58 time=105.057 ms
64 bytes from 111.111.15.19: icmp_seq=1 ttl=58 time=58.239 ms
64 bytes from 111.111.15.19: icmp_seq=2 ttl=58 time=61.192 ms

также я вижу tcpdump'ом что все идет через нужный интерфейс.

НО!
Если выдернуть шнурок из сетевухи которая является шлюзом по умолчанию (vr1)
и дать команду:

# ping 111.111.15.19
то через некоторое врямя получаем:
ping: sendto: No buffer space available
ping: sendto: No buffer space available
ping: sendto: No buffer space available
...

те как я понимаю забивается буфер отправки интерфейса

команда пинга через интерфейс не являющийся шлюзом по умолчанию
дает тот же результат:
# ping -S 222.222.33.146 111.111.15.19
ping: sendto: No buffer space available
ping: sendto: No buffer space available
ping: sendto: No buffer space available
при этом шлюз данного интерфеса пингуется:
# ping 222.222.33.145
PING 222.222.33.145 (222.222.33.145): 56 data bytes
64 bytes from 222.222.33.145: icmp_seq=0 ttl=255 time=0.760 ms
64 bytes from 222.222.33.145: icmp_seq=1 ttl=255 time=0.621 ms
64 bytes from 222.222.33.145: icmp_seq=2 ttl=255 time=0.588 ms
те его буфер не забит

Если положить дефолтный интерфейс в down:
# ifconfig vr1 down
по все начинает ходить (через vr0 с его scr адресом)
- как я понимаю пакеты уже не копятся в буфере vr1, а дропаются.
Если обратно поднять интерфейс:
# ifconfig vr1 up
то через некоторое врямя ситуация повторяется, снова забивает буфер vr1.

Если воткнуть сетевой шнурок в любой хабик/свитч ни с чем не соединенный
(те чисто чтобы получить линк на сетевухе) то проблема исчезает - те пакеты
также дропаются

Что это может быть? Почему пакеты интерфейса в состоянии link down
копятся в буфере? Или как скажем настроить интерфейс чтобы он сам уходил в down
при потери линка?
Не могу понять куда копать ... туплю сафсем )

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

 Оглавление

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


1. "FreeBSD и форвардинг (два внешних интерфейса)"  
Сообщение от mikra on 24-Апр-09, 11:28 
Могу предположить, что пакеты копятся пока линка нет из-за того, что сетевуха пытается после обрыва провести с удаленной стороной согласование скоростей. Процесс это небыстрый и неоднозначный. Вкупе с какими-ньть ошибкаи или недоработками в фирмваре может и не закончиться - вертеться в цикле, не давая ядру команду обрыва линка.

Короче. Это все догадки. Чтобы проверить задай
ifconfig vr0 и vr1 media 100baseTX mediaopt full-duplex
ну или какой там должен быть на твоем линке. Если поможет, значит моя теория верна.

Дааа! И карточки сетевые я бы сменил, не жмотился бы :) По моим наблюдениям самые стабильные это все-таки реалтеки, трикомы и интелы. А все остальное рано или поздно напоминает о себе...

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

2. "FreeBSD и форвардинг (два внешних интерфейса)"  
Сообщение от Pahanivo email(ok) on 24-Апр-09, 12:09 
>Могу предположить, что пакеты копятся пока линка нет из-за того, что сетевуха
>пытается после обрыва провести с удаленной стороной согласование скоростей. Процесс это
>небыстрый и неоднозначный. Вкупе с какими-ньть ошибкаи или недоработками в фирмваре
>может и не закончиться - вертеться в цикле, не давая ядру
>команду обрыва линка.
>
>Короче. Это все догадки. Чтобы проверить задай
>ifconfig vr0 и vr1 media 100baseTX mediaopt full-duplex
>ну или какой там должен быть на твоем линке. Если поможет, значит
>моя теория верна.

это уже пробовал

>Дааа! И карточки сетевые я бы сменил, не жмотился бы :) По
>моим наблюдениям самые стабильные это все-таки реалтеки, трикомы и интелы. А
>все остальное рано или поздно напоминает о себе...

ммм есть пара карточег zyxel - попробуй поменять ...
думаете трабла в фирваре?

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

3. "FreeBSD и форвардинг (два внешних интерфейса)"  
Сообщение от Pahanivo email(ok) on 24-Апр-09, 14:42 
попробовал картояки zyxel (на realtek)
таже фегня - не в сетевухе дело ...
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "FreeBSD и форвардинг (два внешних интерфейса)"  
Сообщение от mikra on 24-Апр-09, 15:25 
>ммм есть пара карточег zyxel - попробуй поменять ...
>думаете трабла в фирваре?

Не знаю, это поиск, причем вслепую.
Но врядли у карточек другого производителя будет точно такой же глюк. Смена карточки внесет ясность в принадлежность глюка. Ведь хочется знать в железке проблема, в драйверах или в настройке софта.

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

5. "FreeBSD и форвардинг (два внешних интерфейса)"  
Сообщение от Pahanivo email(ok) on 24-Апр-09, 15:31 
>>ммм есть пара карточег zyxel - попробуй поменять ...
>>думаете трабла в фирваре?
>
>Не знаю, это поиск, причем вслепую.
>Но врядли у карточек другого производителя будет точно такой же глюк. Смена
>карточки внесет ясность в принадлежность глюка. Ведь хочется знать в железке
>проблема, в драйверах или в настройке софта.

видимо дело во фре которая продолжает слать пакеты на link down интерфес и переполняет буфер
пытаюсь найти как бы тогда класть саму карточку в down при потере линка
можно конечно написать мониторчик - но думаю при резком скачке трафика он не будет просто успевать реагировать на это событие

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

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

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




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

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