маршрутизатор с 2 внешними сетевыми интерфейсами [SOLVED]
Ранее был опыт поднятия обыкновенного маршрутизатора по мануалу home-router-howto, теперь нужно сделать вот что:
Имеется 3 сетевые карты:
1)Локальная сеть 192.168.23.0/24, подключена к интерфейсу eth2.
2)Интернет подключен к интерфейсу eth0. (4 мбит/c, ip получается по dhcp)
3)Интерфейс eth1 подключен к городской сети (100мбит/c, ip также по dhcp)
Некоторые ресурсы гор.сети недоступны извне. Также есть текстовый файл, где перечислены сети, входящие в гор.сеть.
Требуется:
Нужно чтобы пользователи локальной сети ходили в гор.сеть через eth1, а в интернет - через eth0.
Мои познания в линуксе не очень велики, возможно задача решается парой простых правил iptables, но моего мозга пока на это не хватает..
----- upd: Спасибо всем кто ответил на мои глупые вопросы, теперь все работает как надо
- Для комментирования войдите или зарегистрируйтесь
зачем здесь
зачем здесь фаерволл?
сделайте статическую таблицу маршрутизации
>возможно задача решается
>возможно задача решается парой простых правил iptables
почти, только не iptables, а роутингом. в /etc/conf.d/net пишешь:
Естественно маршутов добавляешь сколько нужно. Шлюз по умолчанию - в Интернет. После этого проверяешь - можно ли с роутера достучаться до ресурсов городской сети. Если все прошло успешно - пишешь разрешающие правила в iptables в цепочке FORWARD. Что-то типа:
Нейтральность - высшее достижение сознания!
1)routes_eth1=(...)
1)routes_eth1=(...) прописал.
Не вполне понял надо ли делать что-то вроде:
routes_eth0("default via шлюз_интернета")?
В моем случае eth0 стартует раньше eth1 и маршрут default вроде прописывается правильно.
2)при поднятии eth1 происходит добавление статических маршрутов (их около 30), и иногда некоторые маршруты не записываются, выдавая ошибку "RTNETLINK answers: No such process", причем иногда сначала идут ошибки, потом все впорядке, иногда вначале впорядке, потом идут ошибки, иногда вперемешку. если раза 3 перезапустить интерфейс, то хотя бы раз всё проходит без ошибок.
В остальном (когда удается поднять eth1 без ошибок) пакеты с роутера ходят и в гор.сеть, и в интернет, всё отлично
3)iptables пока не настраивал, неверно собрал ядро, пока пересобирается. Нужно же делать nat?
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
Такая конструкция решит проблему?
upd: собрал ядро, сделал так, как в пункте 3) предположил, вроде работает (через раз) Иногда бывают глюки с двумя default gateway и проблемы с обработкой статических маршрутов. Пытаюсь понять в чем проблема
Так, спасибо за советы, с тем
Так, спасибо за советы, с тем как сделать маршруты вроде бы я разобрался. Роутер работает исключая одно но: Чтобы нормально, без ошибок добавлялись маршруты при запуске интерфейса, интерфейс приходится перезапускать раз 10.. Статических маршрутов оказалось очень много (100-200), постоянно при добавлении некоторых(рандомных) вылетает ошибка "RTNETLINK answers: No such process" и этот маршрут не прописывается. В чем может быть проблема? Может ядро не справляется и можно как-то давать маршруты порциями? или может есть какой-то кеш отвечающий за добавленные маршруты и его стоит иногда чистить?
Шлюз, через который
Шлюз, через который прописывается маршрут, должен быть в онлайне.
шлюз провайдера? он 100% в
шлюз провайдера? он 100% в онлайне, интернет эта сетевая карта получает от роутера, к нему еще 1 клиент подключен. А можно маршруты прописать после поднятия интерфейса через route add? Эффект от route add <...> тот же что и routes_eth1(<...>)?
Твои шлюзы/карты! :)
Твои шлюзы/карты/интерфейсы! :)
Нельзя прописать маршрут, если интерфейс в дауне! Это не ИПтаблес-правила!