Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование *NIX систем > выход в интернет для компьютеров локальной сети


Автор: GwinnBleidd 29.1.2009, 22:39
Помогите, плиз решить следующую задачу. 

Имеется сетка, с адресами вида 192.168.0.xx/255.255.255.0 
Адреса компьютерам сети раздает роутер, подсоединенный портом 192.168.0.1 к локалке и портом 192.168.1.1 к компьютеру, имеющему интернет (серверу).

Соотвественно сервер имеет 2 интерфейса:
- eth0 - на роутер к локалке (адрес 192.168.1.2)
- eth1 - к другой локалке

Cервер получает интернет через pppoE, соответственно имеется еще интерфейс ppp0. 
С сервера интернет, вроде как, настроен и работает

Нужно сделать чтоб компьютеры подсети тоже могли ходить в интернет. С iptables раньше не сталкивался.
Пытался сделать в соотвествии со статьей http://forum.vingrad.ru/forum/topic-225142/kw-iptables-netfilter-nat.html , но не получилось, делал

Код

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -o eth1 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/255.255.255.0 -o ppp0 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/255.255.255.0 -o eth0 -j ACCEPT
iptables -A FORWARD -j DROP


Подскажите в чем ошибка, пожалуйста, или приведите примеры конфигурации для такой топологии сети.

Кстати, возможно недонастроен интерфейс eth0, т.к. компьютеры локалки с сервера не пингуются, хотя из локалки ssh доступ на сервер есть, скажите какие уточнения конфигурации нужны, конфиги и прочее - выложу.

Спасибо

ЗЫ: не знаю, важно ли это, но при создании соединения ppp0 выполняется:   route add default ppp0
ЗЗЫ: система Debian 4, ядро 2.6


Автор: bilbobagginz 30.1.2009, 12:17
разрешено пока только переброска сообщений
из 192.168.x.x на * через выходной интерфейс ppp0
из 192.168.х.х на * через выходной интерфейс eth1
из * на 192.168.х.х через выходной интерфейс eth0

и напр. если пришло сообщение через ppp0 на eth*, то оно не пройдёт, т.к. в конце есть:
Код

iptables -A FORWARD -j DROP


для "работы интернета" нужно использовать masquerading, т.е. делать динамически SNAT и DNAT.
(идея - сообщение из внутр. сети обозначается специально, и выходит с source адресом твоего ppp0. при входе обратно ответ проверяется на это обозначение, и соответственно преобразуется его destination на правильный внутренний адрес, в определённой конфигурации это называют "маскарадом")

в интенете есть много примеров работы с 1 внутренней картой и ppp0.
посмотри, вникни, сделай тоже с 2-мя, и после этого добавь правила на внутреннюю связь.

в Debian не надо делать:
Код

echo 1 > /proc/sys/net/ipv4/ip_forward

работать с файлами /proc лучше через sysctl (ман можно посмотреть)  
это достигается разкомментированием строк в /etc/sysctl.conf:
Код

# Uncomment the next line to enable Spoof protection (reverse-path filter)
#net.ipv4.conf.default.rp_filter = 1

# Uncomment the next line to enable TCP/IP SYN cookies
#net.ipv4.tcp_syncookies = 1

# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.conf.default.forwarding = 1
#net.ipv4.ip_forward = 1
# Uncomment the next line to enable packet forwarding for IPv6
#net.ipv6.conf.default.forwarding=1

у меня раскомментировано всё кроме посл. строки.

удачи.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)