Всем привет. Столкнулся с проблемой. Есть дома компьютер, используемый в качестве шлюза, для остальных домашних компьютеров. На нем установлено Gentoo, ядро 2.6.22, настроин NAT на iptables и PPTP. Есть 2 сетевые карты. Одна LAN(192.168.0.x), другая WAN(10.x.x.x) + на ней поднимается VPN, для доступа в инет. Прописан роутинг для одновременного доступа в сеть и в инет. IP адрес для WAN и PPTP выдается DHCP сервером провайдера. Все поднимается нормально, доступ в инет и в сеть есть. Только почему-то некоторые сайты не открываются, например ya.ru и rambler.ru открываются нормально, а masterhost.ru не открывается. ДНС сервер провайдера IP адрес masterhost.ru выдает, но пинги не доходят и сайт не открывается. Если кабель включить прямо в домашний комп с Win2003 или WinXP , то все нормально работе, все открывается нормально. NAT настраивал так:
Цитата
Сначала обнуляем наши текущие правила # iptables -F # iptables -t nat -F
Установим политики по умолчанию для трафика, не соответствующего ни одному из правил # iptables -P INPUT ACCEPT # iptables -P OUTPUT ACCEPT # iptables -P FORWARD DROP
Теперь закроем наши сервисы так, чтобы они могли работать только для 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
В конце добавляем правила для 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 ${WAN} -d 192.168.0.0/255.255.0.0 -j ACCEPT # iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE # iptables -A FORWARD -i ${VPN} -d 192.168.0.0/255.255.0.0 -j ACCEPT # iptables -t nat -A POSTROUTING -o ${VPN} -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 # rc-update add iptables default # nano /etc/sysctl.conf Добавьте/Раскомментируйте следующие строки: net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 1
Если у вас динамически назначаемый IP-адрес, возможно, вам понадобиться включить следующее: net.ipv4.ip_dynaddr = 1
Похожая проблема у меня была, когда настраивал какой-то роутер. Тоже на masterhost.ru не пускал и на другие, определенные сайты. Проблема решалась изменение MTU. Сейчас у себя пробовал менять MTU, не помогло. В чем может быть проблема?
Jul_i пишет: Iptables со всеразрешающими правилами - пропускает? ИМХО - таки MTU. Какое значение ставил - может недостаточно уменьшил? У меня проблему решило MTU 1482 на роутере
Делал меньше, и 100 и 500 и 1000 и 1400. Не помогло. ПО default MTU 1500 для WAN и PPP0
Цитата
Linuxoid-ht пишет: В iptables есть модуль, который "выравнивает" разницу MTU. Просто менять MTU помогает не всегда.
Что за модуль? Как называется? И как проверить, подключен ли он?
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1500 -j TCPMSS --clamp-mss-to-pmtu -o $VPNFACE(имя интерфейса ppp0 for example) желательно стартовать после ВПНа и выдирать имя интерфейса по результатам коннекта (заморочка нужна только когда соединение иногда отваливается, и поднимается скриптом, когда соединений много... хотя можно попробовать чтото вроде ppp+ (имя интерфейса поставить), не пробовал но может прокатит (тогда заморочек не нужно)
Проверь-ка вот этот ключик: cat /proc/sys/net/ipv4/ip_no_pmtu_disc И почитай насчёт PMTU Discovery особенно в части туннелей вот тут - http://www.netheaven.com/pmtu.html ну и сам RFC - 1191. Уведомление о необходимости фрагментирования пакетов для уменьшения MTU приходит по протоколу ICMP (тип 3, подтип - 4)
SOLDIER пишет: Проверь-ка вот этот ключик: cat /proc/sys/net/ipv4/ip_no_pmtu_disc И почитай насчёт PMTU Discovery особенно в части туннелей вот тут - http://www.netheaven.com/pmtu.html ну и сам RFC - 1191. Уведомление о необходимости фрагментирования пакетов для уменьшения MTU приходит по протоколу ICMP (тип 3, подтип - 4)
Проверил, значение ключа 0. А за ссылку спасибо, почитаю.
-YaRosh-, и что - в Дженте указанная строка сходу подхватилась? Или всё-таки пришлось пересобирать ядро для поддержки указанного модуля? Обычно подобные модули появляются после патча исходников ядра при помощи POM iptables. Или он таки есть по умолчанию в gentoo-sources? Просто лень смотреть сейчас.
SOLDIER пишет: -YaRosh-, и что - в Дженте указанная строка сходу подхватилась? Или всё-таки пришлось пересобирать ядро для поддержки указанного модуля? Обычно подобные модули появляются после патча исходников ядра при помощи POM iptables. Или он таки есть по умолчанию в gentoo-sources? Просто лень смотреть сейчас.
Я использую Gentoo, в стандартном ядре (сорсе) все есть, патчить ничего не надо (только в фильтрах галочки правильно поставить).
SOLDIER пишет: -YaRosh-, и что - в Дженте указанная строка сходу подхватилась?
Да сразу. Причем строка указанная в документации ТУТ, не помогла. А написанная Linuxoid-ht сразу все пошло. Просто нуно прочитать руководство по Iptables, тады проблем, думаю, не будет.
Всем привет. Господа, может посоветуете, у меня есть роутер, на который приходит интернет. Я при помощи pptpd делаю VPN. Присоединяюсь клиентом pptp к серверу, все ок. Только вот не открываются некоторые сайты. Хотя на уровне сервера, который раздает VPN, все работает. Пробовал менять MTU, некоторые сайты стали открываться (которые раньше не открывались), а некоторые перестали Может посоветуешь какое решение? Проблема, я так понимаю, на уровне роутера.