Проблема маршрутизации.
nikola13 27 ноября, 2005 - 21:24
Господа специалисты, помогите ламеру! Есть комп с двумя сетевыми картами. Одна подключена к городской сети с выходом в интернет (10.103.0.0/255.255.128.0), другая локальной сети (192.168.0.0/255.255.255.0). Проблема в том, что я не могу связать сети. Под виндой все работает на ура. Под Линуксом никак. Обе сети поотдельности функционируют нормально. Поставил iptables настроил по Wiki - не работает.
Вот таблица маршрутизации:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.0.0 * 255.255.255.0 U 0 0 0 eth1 10.103.0.0 * 255.255.128.0 U 0 0 0 eth0 loopback * 255.0.0.0 U 0 0 0 lo default 10.103.0.2 0.0.0.0 UG 0 0 0 eth0
Помогите избавиться от мелкомягкого убожества. Это последнее, что меня с ним связывает.
»
- Для комментирования войдите или зарегистрируйтесь

Что значит
Что значит связать сети? Т.е. сделать так чтобы пользователь из локалки мог попадать в городскую сеть? Если да, то то что нужно - это NAT (как вариант). Настраивается с помощью iptables. Док по этому полно, не получится, пишите сюда.
Дык
Дык ылыментарно.
www.gentoo.org/doc/ru/home-router-howto.xml раздел NAT
_________________
With Love from Siberia!
Увы и ах...
Сделал - не работает:-(. Такое впечатление, что туда идет, а обратно - нет. Когда пингуешь 10.103.0.2 ответа нет. Как только остановишь eth0 - ругается:
From 192.168.0.1 icmp_seg=xxx Destination Host Unreachable,
что и естественно. Где грабли? Может я забыл поставить какие-то пакеты?
Приведи
Приведи правила iptables, которые вводил.
Включен ли ip_forwarding (cat /proc/sys/net/ipv4/ip_forward)? Если нет, то правь /etc/sysctl.conf:
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
_________________
With Love from Siberia!
Эффект нулевой
Прочитал иструкцию взад и вперед раза три. Получилось вот что:
/etc/conf.d/net
# Global config file for net.* rc-scripts modules=( "iproute2" ) config_eth1=("192.168.0.1 broadcast 192.168.0.255 netmask 255.255.255.0") #routes_eth1=( "default gw 192.168.0.1" ) config_eth0=("dhcp")Далее по иструкции написал и выполнил скрипт:
#!/bin/bash #Установим политики по умолчанию для трафика, не соответсвующего ни #одному из правил iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP #Скопируйте и вставьте для примера... export LAN=eth1 export WAN=eth0 #Теперь закроем наши сервисы так, чтобы они могли работать только для LAN iptables -I INPUT 1 -i ${LAN} -j ACCEPT iptables -I INPUT 1 -i lo -j ACCEPT iptables -A INPUT -p UDP --dport bootps -i ! ${LAN} -j REJECT iptables -A INPUT -p UDP --dport domain -i ! ${LAN} -j REJECT #(Необязательно) Разрешаем доступ к нашему ssh-серверу из интернета # iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT #Отбросим все TCP/UDP-пакеты, обращающиеся к привелигированным портам iptables -A INPUT -p TCP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP iptables -A INPUT -p UDP -i ! ${LAN} -d 0/0 --dport 0:1023 -j DROP #В конце добавляем правила для NAT iptables -I FORWARD -i ${LAN} -d 192.168.0.0/255.255.0.0 -j DROP iptables -A FORWARD -i ${LAN} -s 192.168.0.0/255.255.0.0 -j ACCEPT iptables -A FORWARD -i ${LAN} -d 192.168.0.0/255.255.0.0 -j ACCEPT iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE #Сообщаем ядру, что ip-форвардинг разрешён echo 1 > /proc/sys/net/ipv4/ip_forward for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; doneДалее /etc/init.d/iptables save и /etc/init.d/iptables restart.
Проверил /etc/sysctl.conf там все в порядке.
Эффект нулевой.
попробуй
попробуй пинговать из внутренней сети сначала внутренний интерфейс роутера твоего, потом внешний, потом шлюз.. тогда будет понятно на каком месте у тебя отваливается...
кстати вот эта запись типа echo "1" > /proc/sys/.... может и не работать если у тебя не правильно сконфигурировано ядро.
_________________
Gentoo x86_64 2.6.13-r3 на Athlon 64 3000+
Такое ощущение,
Такое ощущение, что форвардинг у тебя в никакую не работает.
Все же проверь, стоит еденичка при выполнении cat /proc/sys/net/ipv4/ip_forward. Похоже, придется пересобирать ядро согласно инструкциям из вышеописанного документа.
_________________
With Love from Siberia!
Re: Эффект нулевой
через цепочку FORWARD пакеты ходят в обе стороны, поэтому исходя из приведеных правил пакеты в сеть 192.168.0.0/16 никогда не попадут
почитай еще вот это - http://www.opennet.ru/docs/RUS/iptables/
Урра, заработало!
Добавил кправилам:
и все заработало.
Спасибо всем, особенно за ссылки.
P.S. Если не трудно высказаться по поводу выбранного решения. Буду рад любым советам.
@#$@%^!
Б***ь! гхм... Вы абсолютно правы. Поправка к документу: строку
следует читать как
Xakep и nikola13 выражаю благодарность от имени GDP за бдительность при поиске бага. А я пошел исправлять...
Кстати, Никол, если подправить эту строку, то у тебя отпадет надобность в добавленном правиле (надеюсь ~:))
_________________
With Love from Siberia!