handler Опубликовано 24 апреля, 2008 Жалоба Поделиться Опубликовано 24 апреля, 2008 Здравствуйте Имеем два канала интернета xlo и xl1 один внутренний интерфейс defaultroute показывает на xl0 весь трафик идет туда шейпим каналами pipe 1 config bw 256Kbit/s pipe 1 allow ip from x.x.x.x to any теперь надо разгрузить один канал направив часть адресов внутренней сети в другой канал pipe 2 config bw 256Kbit/s (тут надо указать явно интерфейс) pipe 2 allow ip from y.y.y.y to any такая модель не работает читал статьи по настройке второго шлюза по умолчанию но по-моему это не то какие будут соображения? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
handler Опубликовано 26 апреля, 2008 Автор Жалоба Поделиться Опубликовано 26 апреля, 2008 sockstat | grep natd natd 8668 что нам дает следующая команда? natd -n interface -p 8669 sockstat|grep natd natd 8669 natd 8668 что изменилось в сисетме? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
cppmm Опубликовано 26 апреля, 2008 Жалоба Поделиться Опубликовано 26 апреля, 2008 Два NAT'а - это хорошо. Но нужны ещё маршруты. А с этим уже сложнее. В Linux можно использовать iproute2 для создания разных таблиц маршрутизации и распределения по ним трафика. Во Фряхе я аналогичных пакетов не знаю. Однако знаю, что это возможно. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
handler Опубликовано 29 апреля, 2008 Автор Жалоба Поделиться Опубликовано 29 апреля, 2008 у меня не линукс а фря и почему когда я явно указываю интерфейс пакеты все равно не ходят? ipfw allow ip from x.x.x.x to any via interface пробоввал также ipfw add fwd x.x.x.x ip from y.y.y.y to any ipfwd: getsockopt(IP_FW_ADD): Invalid argument Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
cppmm Опубликовано 29 апреля, 2008 Жалоба Поделиться Опубликовано 29 апреля, 2008 Цитата: и почему когда я явно указываю интерфейс пакеты все равно не ходят? Потому что вы пытаетесь фаерволл заставить делать то, что делается таблицами маршрутизации. Вашим правилом вы разрешили проходить пакетам с определённого адреса на интерфейс. Но ведь маршрут у этого пакета идёт через другой интерфейс, что можно посмотреть при помощи route. Я не зря рассказал вам про то, как это делается в linux. В разных системах инструменты разные, но принцип в данном случае один. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
vpk_vpk Опубликовано 29 апреля, 2008 Жалоба Поделиться Опубликовано 29 апреля, 2008 http://www.bsdportal.ru/viewtopic.php?t=10848 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
handler Опубликовано 30 апреля, 2008 Автор Жалоба Поделиться Опубликовано 30 апреля, 2008 ссылка не то делаю так 1 два ната natd -n xl0 -p 8668 natd -n xl1 -p 8669 2 divert в /etc/rc.firewall add divert 8669 ip4 from x.x.x.x to any (сюда часть адресов) add divert 8668 ip4 from any to any (сюда остальные) 3 forward add fwd x.x.x.x ip from y.y.y.y to any (x - gateway y - ip address) счетчик показывает что пакеты уходят но все равно не работает Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
cppmm Опубликовано 30 апреля, 2008 Жалоба Поделиться Опубликовано 30 апреля, 2008 Вы упорно не хотите слушать. С этим всё отлично. Цитата: делаю так 1 два ната natd -n xl0 -p 8668 natd -n xl1 -p 8669 2 divert в /etc/rc.firewall add divert 8669 ip4 from x.x.x.x to any (сюда часть адресов) add divert 8668 ip4 from any to any (сюда остальные) Но пакеты должны знать маршрут, по которому им двигаться. форвардом вы просто переслали всё, что пришло с y.y.y.y на x.x.x.x Откуда роутер x.x.x.x знает, куда отвечать? Откуда настраиваемый вами роутер знает, что делать с пакетами, которые к нему приходят(если придут)? В вашей схеме всё будет натиться, но никто не будет знать, куда идти, потому что после ната пакеты уходят в default gateway, т.е. к основному провайдеру... P.S. Команду route вы игнорируете? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
handler Опубликовано 30 апреля, 2008 Автор Жалоба Поделиться Опубликовано 30 апреля, 2008 вас понял теперь объясните как задать второй маршрут делаю так route add 1.0.0.0/1 ip_gateway маршрут добавляет но половина адресов не резольвится т е некоторые сайты открывает некоторые нет и аська вылетает сразу да и второй нат не удалось при загрузке создать natd2_enable="yes" natd2_interface="xl1" natd2_flags="-p 8669" cp /etc/rc.d/natd natd2 но sockstat | grep natd выдает только один екземпляр ната а в ручную все работает natd -n xl1 -p 8669 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
cppmm Опубликовано 1 мая, 2008 Жалоба Поделиться Опубликовано 1 мая, 2008 Цитата: маршрут добавляет но половина адресов не резольвится т е некоторые сайты открывает некоторые нет и аська вылетает сразу Попробуйте посмотреть трассу на внешние ip из маршрутизируемой сети. Если пакеты уходят на второй шлюз, значит с маршрутами всё ок и можно идти дальше. Что касается резолвинга, тут зависит от того, каким dns'ом вы пользуетесь. Если провайдерским, надо соответственно на клиентах прописывать адреса тех провайдеров, через которых они завёрнуты. Что касается ната при старте системы, тут нужны спецы по фряхе. Единственное, что я бы попробовал, это прописать команды в /etc/rc.local, или посмотреть, что именно делает скрипт в /etc/rc.d Возможно там есть какие-то ньюансы, которые, в случае двух натов, надо переписывать руками. Кстати, в логах по этому поводу ничего нет? И ещё, в прошлый раз пропустил, диверты на NAT наружу вы сделали. А назад для обоих натов есть? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
handler Опубликовано 1 мая, 2008 Автор Жалоба Поделиться Опубликовано 1 мая, 2008 как посмотреть трассу на наличие маршрута? днс у мя свой а гейт и днс прова прописаны на самих роутерах а у клиентов гейты уже на роутер и как диверт обратный реализуется? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
cppmm Опубликовано 5 мая, 2008 Жалоба Поделиться Опубликовано 5 мая, 2008 Цитата: как посмотреть трассу на наличие маршрута? В *nix-системах утилита traceroute в оффтопике tracert Цитата: и как диверт обратный реализуется? Примерно так: ipfw add 100 divert natd ip from x.x.x.x/x to any ipfw add 110 divert natd ip from any to y.y.y.y где x.x.x.x/x - локальная сеть, которую надо занатить, а y.y.y.y - внешний ip. В вашем случае надо будет прописывать для обоих провайдеров и вместо natd использовать порты, соответствующие первому и второму нату. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
handler Опубликовано 5 мая, 2008 Автор Жалоба Поделиться Опубликовано 5 мая, 2008 все не то есть локальная сеть есть маршрут и он единственный второй мне добавить не удалось и нужно из этой сети отдельно взятый адрес отправить на другой роутер как это сделать появилась опция RADIX_MPATH в ядре но 6.2 не поддерживает ее pf и iproute2 в freebsd не реализованы неужели невозможно конкретный адрес запихнуть в конкретный GW? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
cppmm Опубликовано 5 мая, 2008 Жалоба Поделиться Опубликовано 5 мая, 2008 Цитата: нужно из этой сети отдельно взятый адрес отправить на другой роутер route add -host x.x.x.x y.y.y.y не работает? Иксы - адрес, пакеты с которого надо перенаправить? y.y.y.y - шлюз. Только в любом случае оно должно работать в связке с натом. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
handler Опубликовано 5 мая, 2008 Автор Жалоба Поделиться Опубликовано 5 мая, 2008 конструкция которую вы мне предлагаете создаст маршрут к данному узлу и пакеты вообще перестанут ходить а мне надо часть адресов на один модем а часть на другой неужели это невозможно и неужели никто не юзал больше одного канала? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
cppmm Опубликовано 5 мая, 2008 Жалоба Поделиться Опубликовано 5 мая, 2008 Цитата: конструкция которую вы мне предлагаете создаст маршрут к данному узлу и пакеты вообще перестанут ходить Это почему? Перечитайте внимательно всю тему. Вкратце: Есть дефаулт маршрут на один шлюз, куда уходят все пакеты, не описанные отдельно. Есть отдельный маршрут для определённого хоста(или сети, как удобнее) на другой шлюз. Есть один нат для общего маршрута и первого провайдера. Есть второй нат для отдельного маршрута ко второму провайдеру. Что именно неясно в такой схеме? И вроде бы даже определились с инструментами, с помощью которых это всё делается. Я бы сам попробовал, но у меня фряхи свободной для экспериментов под рукой не установлено. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
handler Опубликовано 5 мая, 2008 Автор Жалоба Поделиться Опубликовано 5 мая, 2008 route add x.x.x.x/x y.y.y.y добавляет маршрут к этому узлу и после этого узел не может выйти в мир хоть нат поднят хоть нет пока не удалишь маршрут не работает и ходит по дефолту I'm so tired Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
cppmm Опубликовано 5 мая, 2008 Жалоба Поделиться Опубликовано 5 мая, 2008 А. Точно. Давненько я не работал с route. Извиняюсь. Даже не знаю, как именно это делается в нём. Ну тогда могу посоветовать только поискать доки, как завернуть маршруты от адреса на шлюз. Вот ещё подумалось, может вам в этом поможет zebra. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
handler Опубликовано 6 мая, 2008 Автор Жалоба Поделиться Опубликовано 6 мая, 2008 хорошо допустим 2 ната первый системный по-дефолту порт 8668 привязан к первому интерфейсу второй мы добавили ручками порт 8669 привязан ко второму интерфейсу маршрут я так понимаю напрямую связан с натом значит у нас должно быть как минимум 2 маршрута появился патч который поддерживает два маршрута www.opennet.ru/opennews/art.shtml?num=15356 но у меня ядро такую опцию не компилит как же мне разрулить каналы неужели никто не работал с несколькими каналами? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
handler Опубликовано 12 мая, 2008 Автор Жалоба Поделиться Опубликовано 12 мая, 2008 есть два ната по одному на каждый интерфейс natd -n myk0 -p 8668 natd -n xl1 -p 8669 есть правила ipfw divert 8669 ip from x.x.x.x to any via xl1 fwd y.y.y.y ip from x.x.x.x to any tcpdump показывает что пакеты уходят ч|з указанный интерфейс но не возвращаются и счетчик у правила диверт равен нулю если в правиле диверт убрать via xl1 то счетчик начинает работать но пакеы уже не ходят я так понимаю мне не хватает правил для обратного форвардинга Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
M_Maniac Опубликовано 17 октября, 2008 Жалоба Поделиться Опубликовано 17 октября, 2008 Тема не справедливо умерла, у меня таже проблема. По логам в дивертах видно, что он кидает трафик на интерфейс который соответствует дефаултному шлюзу. Как это решается ?? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
M_Maniac Опубликовано 30 октября, 2008 Жалоба Поделиться Опубликовано 30 октября, 2008 Ну так что ?? идей нету ?? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
cppmm Опубликовано 30 октября, 2008 Жалоба Поделиться Опубликовано 30 октября, 2008 Мне добавить к вышесказанному больше нечего. Как я и писал, в Linux это довольно простая задача при использовании iproute2. А FreeBSD уже почти не использую, поэтому сложно сказать. Слышал, что какие-то умельцы переносили iproute2 во фряху, но с уверенностью утверждать не стану. Попробуйте копнуть в эту сторону, если из вышеприведённых примеров ничего не выходит. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.