URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 86542
[ Назад ]

Исходное сообщение
"Статус сетевой карты No carier "

Отправлено kharkov_max , 10-Сен-09 12:19 
День добрый.

Есть шлюз в котором установленно 2 сетевых карты. (if1 192.168.11.1, if2 192.168.11.2)
По определенной необходимости данные сетевые карты через свич смотрят на один шлюз.

Так вот одна из сетевых if2 в статусе пишет No carier т.е нет сигнала, хотя линк есть конечно. Если я физически вынимаю кабель из if1 и перегружаю шлюз, то нормальный линк поднимается на if2.

Подскажите пожалуйста.
1. Будет ли нормально работать сетевые если они смотрят на один шлюз ?
2. Не будет ли система сама, видя что шлюз один весь трафик слать через один интерфейс и второй выключать програмно. Как я понимаю в моей ситуации так и происходит.
3. Если возможно, то как побороть данную проблему?

Данные манипуляции необходимы для того что б через разные интерфейсы шлюза попытаться из внутренней сети во внешнюю сеть вывести 2 компа. Т.е. каждый интерфейс шлюза это вроде как отдельный компьютер для внешней сети.
Может кто то уже решал подобные задачи....
Повторюсь шлюз на который смотрят сетевые один и тот же...

Заранее спасибо за помощь.


Содержание

Сообщения в этом обсуждении
"Статус сетевой карты No carier "
Отправлено shadow_alone , 10-Сен-09 15:05 
при таком раскладе, если один и тот же шлюз, то и сети на обеих картах пересекаються  - а это неприемлемо ВООБЩЕ.

"Статус сетевой карты No carier "
Отправлено Square , 10-Сен-09 16:47 
>День добрый.
>
>Есть шлюз в котором установленно 2 сетевых карты. (if1 192.168.11.1, if2 192.168.11.2)
>
>По определенной необходимости данные сетевые карты через свич смотрят на один шлюз.
>Данные манипуляции необходимы для того что б через разные интерфейсы шлюза попытаться
>из внутренней сети во внешнюю сеть вывести 2 компа. Т.е. каждый
>интерфейс шлюза это вроде как отдельный компьютер для внешней сети.
>Может кто то уже решал подобные задачи....
>Повторюсь шлюз на который смотрят сетевые один и тот же...

Нет необходимости для каждого ip выделять персональную сетевую карту.
Можно просто повесить эти оба ip алиасами на оду карту. и настроить полиси-басед-роутинг.


"Статус сетевой карты No carier "
Отправлено kharkov_max , 11-Сен-09 08:19 
>[оверквотинг удален]
>>По определенной необходимости данные сетевые карты через свич смотрят на один шлюз.
>>Данные манипуляции необходимы для того что б через разные интерфейсы шлюза попытаться
>>из внутренней сети во внешнюю сеть вывести 2 компа. Т.е. каждый
>>интерфейс шлюза это вроде как отдельный компьютер для внешней сети.
>>Может кто то уже решал подобные задачи....
>>Повторюсь шлюз на который смотрят сетевые один и тот же...
>
>Нет необходимости для каждого ip выделять персональную сетевую карту.
>Можно просто повесить эти оба ip алиасами на оду карту. и настроить
>полиси-басед-роутинг.

А если на каждом IP необходимо иметь свой MAC ?


"Статус сетевой карты No carier "
Отправлено piroman17 , 11-Сен-09 12:20 
>[оверквотинг удален]
>>>из внутренней сети во внешнюю сеть вывести 2 компа. Т.е. каждый
>>>интерфейс шлюза это вроде как отдельный компьютер для внешней сети.
>>>Может кто то уже решал подобные задачи....
>>>Повторюсь шлюз на который смотрят сетевые один и тот же...
>>
>>Нет необходимости для каждого ip выделять персональную сетевую карту.
>>Можно просто повесить эти оба ip алиасами на оду карту. и настроить
>>полиси-басед-роутинг.
>
>А если на каждом IP необходимо иметь свой MAC ?

2 интерфейса в одной подсети приводят к такой таблице мершрутизации:
192.168.1.0/24     link#1             UC          0        0  rl0
192.168.1.0/24     link#2             UC          0        0  rl1

ядро смотрит на таблицу, идет по строчками сверху вниз, как только встречает нужный destination (в этом примере 192.168.1.0/24) то посылает пакет через соответствующий интерфейс.
Вывод: все пакеты во вне идут через rl0, а принимаются с обоих интерфейсов.
з.ы. на пакет (icmp/ping) полученный через rl1 ответ пойдет с rl0, с IP-адресом от rl0, и MAC-ом от rl0. удаленная машина (пингующая) получит пакет не с того MAC и IP и отбросит пакет. это касается всех пакетов.

з.з.ы. так вообще нельзя делать.


"Статус сетевой карты No carier "
Отправлено Pahanivo , 11-Сен-09 12:26 
>[оверквотинг удален]
>нужный destination (в этом примере 192.168.1.0/24) то посылает пакет через соответствующий
>интерфейс.
>Вывод: все пакеты во вне идут через rl0, а принимаются с обоих
>интерфейсов.
>з.ы. на пакет (icmp/ping) полученный через rl1 ответ пойдет с rl0, с
>IP-адресом от rl0, и MAC-ом от rl0. удаленная машина (пингующая) получит
>пакет не с того MAC и IP и отбросит пакет. это
>касается всех пакетов.
>
>з.з.ы. так вообще нельзя делать.

з.ы.з.ы.з.ы так можно делать если НЕ включен форвардинг


"Статус сетевой карты No carier "
Отправлено kharkov_max , 13-Сен-09 10:46 
>[оверквотинг удален]
>>Вывод: все пакеты во вне идут через rl0, а принимаются с обоих
>>интерфейсов.
>>з.ы. на пакет (icmp/ping) полученный через rl1 ответ пойдет с rl0, с
>>IP-адресом от rl0, и MAC-ом от rl0. удаленная машина (пингующая) получит
>>пакет не с того MAC и IP и отбросит пакет. это
>>касается всех пакетов.
>>
>>з.з.ы. так вообще нельзя делать.
>
>з.ы.з.ы.з.ы так можно делать если НЕ включен форвардинг

А можно поподробнее ....


"Статус сетевой карты No carier "
Отправлено piroman17 , 13-Сен-09 15:51 
>А можно поподробнее ....

когда включён форвардинг ядро в первую очерет смотри в таблицу маршрутизации и игнорирует попытки софта отдавать пакет через другой интерфейс, а когда выключен удовлетворяет запрос на отдачу пакета через нужный интерфейс и пакет идет через него (кончено если софт правильно работает). Данная ситуация рассматривалась мной на примере http-сервера apache 2.2 и ftp-сервера proftpd.


"Статус сетевой карты No carier "
Отправлено kharkov_max , 14-Сен-09 09:33 
>>А можно поподробнее ....
>
>когда включён форвардинг ядро в первую очерет смотри в таблицу маршрутизации и
>игнорирует попытки софта отдавать пакет через другой интерфейс, а когда выключен
>удовлетворяет запрос на отдачу пакета через нужный интерфейс и пакет идет
>через него (кончено если софт правильно работает). Данная ситуация рассматривалась мной
>на примере http-сервера apache 2.2 и ftp-сервера proftpd.

А ссылку можно на статью или форум ?
И вообще где можно более тщательно ознакомиться ?


"Статус сетевой карты No carier "
Отправлено Pahanivo , 14-Сен-09 11:39 
>>>А можно поподробнее ....
>>
>>когда включён форвардинг ядро в первую очерет смотри в таблицу маршрутизации и
>>игнорирует попытки софта отдавать пакет через другой интерфейс, а когда выключен
>>удовлетворяет запрос на отдачу пакета через нужный интерфейс и пакет идет
>>через него (кончено если софт правильно работает). Данная ситуация рассматривалась мной
>>на примере http-сервера apache 2.2 и ftp-сервера proftpd.
>
>А ссылку можно на статью или форум ?
>И вообще где можно более тщательно ознакомиться ?

Это основы сетей, любой учебник )


"Статус сетевой карты No carier "
Отправлено Square , 14-Сен-09 14:05 
>>А можно поподробнее ....
>
>когда включён форвардинг ядро в первую очерет смотри в таблицу маршрутизации и
>игнорирует попытки софта отдавать пакет через другой интерфейс, а когда выключен
>удовлетворяет запрос на отдачу пакета через нужный интерфейс и пакет идет
>через него (кончено если софт правильно работает). Данная ситуация рассматривалась мной
>на примере http-сервера apache 2.2 и ftp-сервера proftpd.

Вы сами то поняли что написали?


"Статус сетевой карты No carier "
Отправлено piroman17 , 14-Сен-09 16:18 
>Вы сами то поняли что написали?

Да, понял. Разъясняю последовательность работы программы-серверна:

1) socket() - создает сокет.
2) bind()   - определяет адреса host:port на которые поступают пакеты каторые будут направленны в сокет.
3) listen() - открывает порты усказнные в bind() на прием/передачу.
4) accept() - происходит после того как клиент постучался в порт, установка соединения с конкретным клиентом.
5) read() - примем пакетов от клиента
6) write() - передача пакетов клиенту

Так вот, когда пакет поступает на нужный host:port, ясдро направляет его в сокет и софт принимает через него данные. А когда софт "пихает" данные в сокет, ядро "решает" как передать его клиенту. Если форвардинг выключен - решение происходит так: пакет выходит всегда из того интерфейса на который сделан bind()+listen(), а для передачи по сети выбирается соответствующий шлюз из таблицы маршрутизации, например defalut. Если форвардинг включен - решение об отправке пакета происходит так: Ядро выбирает нужный маршрут из таблицы маршрутизации, и только после этого выбора маршрута отправляет пакет через интерфейс соответствующий этому маршруту. Например:
destination        gateway             interface
10.0.0.0/8         10.100.7.1         rl0
10.0.0.0/8         10.100.7.1         rl1
default            x.x.x.x            tun0
Ядро "проходит" по таблице маршрутизации сверху вниз, и если пакет направляется на адрес 10.1.2.3 то пакет будет отправлен через rl0, т.к. это первая подходящая по адресу/маске запись. А если пакет направлен на адрес 1.2.3.4 то он пойдет в шлюз по умолчанию через tun0.
Обратите внимание, что при выводе netstat -rn в разных ОС шлюз по умолчанию может быть выведен в любом месте таблицы, а реально он является последним и туда отправляются пакеты не попавшие под address/mask других записей таблицы маршрутизации. наиболее наглядно таблица представлена в cisco IOS:
C    192.168.4.0/24 is directly connected, FastEthernet0/0
O    192.168.254.0/24 [110/11] via 192.168.252.1, 1d01h, FastEthernet1/0
O    192.168.1.0/24 [110/11] via 192.168.252.1, 1d01h, FastEthernet1/0
O    192.168.2.0/24 [110/11] via 192.168.252.1, 1d01h, FastEthernet1/0
C    192.168.252.0/24 is directly connected, FastEthernet1/0
O*E2 0.0.0.0/0 [110/1] via 192.168.252.1, 21:32:11, FastEthernet1/0


"Статус сетевой карты No carier "
Отправлено Square , 14-Сен-09 17:06 
>>Вы сами то поняли что написали?
>
>Да, понял. Разъясняю последовательность работы программы-серверна:

Очень много букв и очень, очень туманно...

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

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

Зачем вы приплели какой-то софт, какую роль в этом играет веб-сервер, зачем-то вспомнили про акцепты, бинды....



"Статус сетевой карты No carier "
Отправлено PavelR , 11-Сен-09 15:56 
>[оверквотинг удален]
>>>из внутренней сети во внешнюю сеть вывести 2 компа. Т.е. каждый
>>>интерфейс шлюза это вроде как отдельный компьютер для внешней сети.
>>>Может кто то уже решал подобные задачи....
>>>Повторюсь шлюз на который смотрят сетевые один и тот же...
>>
>>Нет необходимости для каждого ip выделять персональную сетевую карту.
>>Можно просто повесить эти оба ip алиасами на оду карту. и настроить
>>полиси-басед-роутинг.
>
>А если на каждом IP необходимо иметь свой MAC ?

может быть попробовать brctl (br0) + tap0 + tap1 + tap2 ... ?