ipfw, fwd и bridge

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
xscrew
проходил мимо
Сообщения: 5
Зарегистрирован: 2013-01-12 12:45:37

ipfw, fwd и bridge

Непрочитанное сообщение xscrew » 2013-01-12 14:01:27

Всем привет.
Я тут новенький и очень рассчитываю на вашу помощь.

Без особых деталей.
Машина с двумя интерфейсами em0 и em1. Интерфейсы объединены в мост bridge0, на мост навешивается адрес 192.168.0.200/24. Таким образом эта машина ставится вразрез между провайдером и юзерами, будучи прозрачной на L2. Есть желание любые запросы пользоватлей tcp 80, тобишь http форвардить на апач, который запущен на этой машине, чтобы апач показывал страничку. Остальное - детали.

Фря 9.1, ядро пересобрано стакими опциями:

Код: Выделить всё

options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_FORWARD
options         DUMMYNET
options         IPFIREWALL_NAT
options         LIBALIAS
Правила в ipfw:

Код: Выделить всё

root@freebsd-snort ~ # ipfw show
01000  11486    829474 fwd 192.168.0.200,80 tcp from 192.168.0.210 to any dst-port 80
65534 181478 112169560 allow ip from any to any
65535      7      4122 deny ip from any to any
То есть на 192.168.0.210 при запросе на все адреса должен был бы сходить 192.168.0.200 в апач, а в конфиге апача прописано:

Код: Выделить всё

<VirtualHost *:80>
        ServerName default    
</VirtualHost>
Отвечать на любые запросы.

Как видно - в правиле ipfw 1000 счетчики растут, но машинка с адресом 192.168.0.210 при запросе http://ya.ru получает ya.ru, а не дефолтную страничку апача, как хотелось бы. В /var/log/httpd-access.log - пусто.

tcpdump я вижу следущее:

Код: Выделить всё

root@freebsd-snort ~ # tcpdump -n -i bridge0 host 192.168.0.210
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bridge0, link-type EN10MB (Ethernet), capture size 65535 bytes
07:45:21.703917 IP 192.168.0.210.49385 > 87.250.251.3.80: Flags [S], seq 4071647755, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
07:45:21.707319 IP 87.250.251.3.80 > 192.168.0.210.49385: Flags [S.], seq 1577453469, ack 4071647756, win 14100, options [mss 1410,nop,nop,sackOK,nop,wscale 9], length 0
07:45:21.707962 IP 192.168.0.210.49385 > 87.250.251.3.80: Flags [.], ack 1, win 16567, length 0
07:45:21.708725 IP 192.168.0.210.49385 > 87.250.251.3.80: Flags [P.], seq 1:529, ack 1, win 16567, length 528
То есть ipfw не заворачивает трафик. Почему?

P.S. стоит сказать, что все вышеописанное я как-то в тестовом виде проделал ночью на работе, убедился что все просто и на этом успокоился. Спустя время, как понадобилось это в боевом виде - не могу поворить никак. Тут правда я не могу сказать, что все делаю так, как сделал в прошлый раз, да и фря была 8.2, а здесь 9.1. Но вроде это не влияет. Зато теперь все свои действия всегда буду записывать.
Последний раз редактировалось f_andrey 2013-01-12 14:29:39, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

fessoga5
рядовой
Сообщения: 28
Зарегистрирован: 2011-11-22 20:04:00

Re: ipfw, fwd и bridge

Непрочитанное сообщение fessoga5 » 2013-01-12 15:04:24

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

xscrew
проходил мимо
Сообщения: 5
Зарегистрирован: 2013-01-12 12:45:37

Re: ipfw, fwd и bridge

Непрочитанное сообщение xscrew » 2013-01-12 15:31:02

fessoga5 писал(а):Недавно думал на эту тему. В голове возникает вопрос как пакет на ya.ru вернется назад, ведь отвечать за место ya.ru. будет ваш хост, а ос клиента ждет ответ от ya.ru, а не от вашего хоста.
Тоже это смущает, но, повторюсь - как-то сработало у меня это. И вот http://www.lissyara.su/articles/freebsd ... s/hotspot/ тут реализовано.
Во-вторых пакет даже видимо до апача не доходит, т.к. в логах тишина.

harmless
лейтенант
Сообщения: 715
Зарегистрирован: 2007-08-23 10:56:51
Откуда: Украина, г. Киев, г. Белая Церковь
Контактная информация:

Re: ipfw, fwd и bridge

Непрочитанное сообщение harmless » 2013-01-12 15:43:23

Код: Выделить всё

net.link.bridge.ipfw: 0
Поставь в 1 и будет тебе счастье.

xscrew
проходил мимо
Сообщения: 5
Зарегистрирован: 2013-01-12 12:45:37

Re: ipfw, fwd и bridge

Непрочитанное сообщение xscrew » 2013-01-12 16:07:39

harmless писал(а):

Код: Выделить всё

net.link.bridge.ipfw: 0
Поставь в 1 и будет тебе счастье.

Код: Выделить всё

net.link.bridge.ipfw         Set to 1 to enable layer2 filtering
из мана. это разве то?

В любом случае, ставлю в 1 - счасться не случается

xscrew
проходил мимо
Сообщения: 5
Зарегистрирован: 2013-01-12 12:45:37

Re: ipfw, fwd и bridge

Непрочитанное сообщение xscrew » 2013-01-12 18:26:45

Думаю мне пришло понимание.

При наличия моста - пакет коммутируется на L2 и на L3, где есть правило ipfw fwd просто не поднимается (хотя счетчик увеличивается). С мостом есть только один вариант - фильтрация на L2, как раз параметр net.link.bridge.ipfw, но на L2 ipfw не умеет forward. А мне нужен forward. Может есть какие-нибудь другие варианты, при условии моста?

harmless
лейтенант
Сообщения: 715
Зарегистрирован: 2007-08-23 10:56:51
Откуда: Украина, г. Киев, г. Белая Церковь
Контактная информация:

Re: ipfw, fwd и bridge

Непрочитанное сообщение harmless » 2013-02-08 10:44:50

Судя из мана

Код: Выделить всё

                  ^    to upper layers    V
                  |                       |
                  +----------->-----------+
                  ^                       V
            [ip(6)_input]           [ip(6)_output]     net.inet(6).ip(6).fw.enable=1
                  |                       |
                  ^                       V
            [ether_demux]        [ether_output_frame]  net.link.ether.ipfw=1
                  |                       |
                  +-->--[bdg_forward]-->--+            net.link.bridge.ipfw=1
                  ^                       V
                  |      to devices       |
есть еще один уровень где работает ipfw

Код: Выделить всё

net.link.ether.ipfw: 0
Но для вас это не спасение(
Вот только что он там делает пока не знаю, буду искать(самому интересно)

Аватара пользователя
k0ma
сержант
Сообщения: 217
Зарегистрирован: 2010-12-07 8:13:09
Откуда: Глубоко в Сибири

ipfw, fwd и bridge

Непрочитанное сообщение k0ma » 2016-03-18 13:27:19

У меня подобная проблема, есть 2 сервера Freebsd 10.1 и Windows 2008. Необходимо все запросы DNS от одного сервера перекинуть на другой севрер. Допустим 192.168.1.1 - адрес, который видят все пользователи, есть адрес 192.168.10.1 - второй сервер который должен людям отвечать за место 192.168.1.1
По аналогии с "прозрачным squid" я сделал так

Код: Выделить всё

${ipfw} add 10 fwd 192.168.10.1,53 tcp from 192.168.1.1 to any
. Тоесть перенаправлять DNS tcp запросы на адрес 192.168.10.1 принятые на адрес 192.168.1.1. Верно? Подскажите как на самом деле читать данное правило? На разных сайтах по разному трактуется, кому верить? Либо это не так просто сделать, либо делается это все в пределах одного сервера?
:bn:

harmless
лейтенант
Сообщения: 715
Зарегистрирован: 2007-08-23 10:56:51
Откуда: Украина, г. Киев, г. Белая Церковь
Контактная информация:

ipfw, fwd и bridge

Непрочитанное сообщение harmless » 2016-03-18 13:42:35

Трактуется это так - все запросы от 192.168.1.1 к любому хосту по протоколу tcp перекинуть на 192.168.10.1 порт 53

LBV
ефрейтор
Сообщения: 60
Зарегистрирован: 2014-09-03 10:18:00

ipfw, fwd и bridge

Непрочитанное сообщение LBV » 2016-03-18 16:50:23

с fwd нельзя правильно перенаправить пакет на другую тачку кроме локальной, т.к. не меняется адрес источника, у ipfw с этим туго, можно поизвращатся с реверс натом или использовать pf, или софт из портов, например

Код: Выделить всё

net/portfwd

Аватара пользователя
k0ma
сержант
Сообщения: 217
Зарегистрирован: 2010-12-07 8:13:09
Откуда: Глубоко в Сибири

ipfw, fwd и bridge

Непрочитанное сообщение k0ma » 2016-03-18 17:15:19

Реверс нат?
Пример можно? pf не очень хочется, по ряду причин...
:bn:

LBV
ефрейтор
Сообщения: 60
Зарегистрирован: 2014-09-03 10:18:00

ipfw, fwd и bridge

Непрочитанное сообщение LBV » 2016-03-21 13:38:23