LINUX.ORG.RU
решено ФорумAdmin

Роутер


0

0

Есть компьютер, который должен исполнять функции роутера. Есть 2 интерфейса(eth0 - локальная сеть, ppp0 - adsl-соединение). Сейчас стоят такие настройки(с которыми всё работает):

#!/bin/sh
PATH=/usr/sbin:/sbin:/bin:/usr/bin
#
# delete all existing rules.
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
# Always accept loopback traffic
iptables -A INPUT -i lo -j ACCEPT
# Allow established connections, and those not coming from the outside
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! ppp0 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
# Masquerade.
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# Don't forward from the outside to the inside.
iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT
# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward
#взято с http://www.debian-administration.org/articles/23
Сейчас появилась потребность поднять еще одно adsl-соединение(ppp1) и сделать так, чтобы на часть адресов компьютеры из локальной сети ходили через ppp1. Как такое правильно сделать?

PS И посоветуйте почитать что-нибудь по iptables, а то просто copy-paste готовых скриптов мне не сильно нравиться (=

на опеннет есть перевод мануала по iptables

добавить
iptables -t nat -A POSTROUTING -o ppp1 -j MASQUERADE
и дописать на нужные ip адреса route через ppp1

hizel ★★★★★
()
Ответ на: комментарий от hizel

через роут я делал, тока получаются не адреса, а айпишники, хотя мне хватило(прописал через 1 коннект все локальные сети прова),

Gordon01 ★★
()

Маршрутизацию организовываешь, как расписано в википедии (по одной таблице на каждого прова + таблица статических маршрутов), а дальше все разруливаешь через ip rule (как я понял, критерием выбора канала является адрес хоста в локалке).

На уровне iptables достаточно включить маскарад на обоих внешних интерфейсах.

rp_filter отключить не забываем.

nnz ★★★★
()

В итоге получилось как-то так:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE 
iptables -t nat -A POSTROUTING -o ppp1 -j MASQUERADE 
echo 1 > /proc/sys/net/ipv4/ip_forward 
+ прописать нужные роуты

Всем спасибо за помощь

hired777
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.