Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с настройкой NAT, gentoo 
V
    Опции темы
Alar
Дата 28.1.2010, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 20.7.2005
Где: г. Пермь

Репутация: нет
Всего: нет



Доброго времени суток.

Есть у меня такая проблема, сам искать решение уже отчаялся. Домашняя сеть, сервер с Gentoo Linux подключен к интернету через интерфейс ppp0, через интерфейс eth1 смотрит в локальную сеть. В локальной сети один комп (пока), на нем в основном Windows, но временами (когда я решаю поработать дома  smile ) тот же генту. На сервере инет работает идеально. Но вот на рабочем компе наблюдаются глюки. 
Глюки проявляются двумя основными способами:
  •  (главный) При обращении к некоторым хостам (их немного, но и немало - например, http://microsoft.com или http://polymerclayexpress.com) TCP-соединение устанавливается, но потом все замирает. В браузере выглдит это как "Ожидание ответа от ...." бесконечное время. Такое чувство, что клиент ждет данных, а сервер их не посылает. netstat на клиенте подтверждает наличие сессии (в состоянии ESTABLISHED), wireshark (ну или tcpdump) подтверждает, что сессия устанавливается, а данные не идут.
  •  (побочный эффект) на хостах, с которыми все таки все работает, часто возникает эффект: страница загрузилась, но браузер показывает, что передача данных еще идет.
Еще раз - на сервере все идеально. На те же хосты с сервера заходит на раз. Если вместо NAT настроить прокси (squid), все работает идеально. Но хотелось бы все-таки добить NAT.

Конфигурация iptables (Я понимаю, что это достаточно эээ... тупая конфигурация, но зато простая. При ней достигается вышеизложенный эффект):
Код

iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

iptables -A INPUT -i lo -j ACCEPT

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 eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE


У меня было несколько подозрений почему все так работает.
 - может, не подключен какой-то модуль ядра. я пересобирал ядро несколько раз, включая все что хоть как-то относится с сети, nat, tcp/ip. Сейчас уже включено, наверное, все.
 - может, что-то не так в настройках сети? Какая-нибудь включенная по дефолту безопасная настройка, мешающая нормальному функционированию NAT.
 - может, все-таки с iptables что-то не так?

Выпрямите руки, пожалуйста  smile 

UPD: 
# uname -a
Linux host.ru 2.6.31-gentoo-r6 #2 SMP Fri Jan 8 02:20:12 YEKT 2010 i686 Pentium III (Coppermine) GenuineIntel GNU/Linux

Это сообщение отредактировал(а) Alar - 28.1.2010, 22:51
PM MAIL ICQ   Вверх
student80
Дата 29.1.2010, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Абучю рускаму язаку
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 504
Регистрация: 18.4.2006

Репутация: 1
Всего: 7



Цитата

iptables -A INPUT -m state --state NEW ! -i ppp0 -j ACCEPT

iptables -A INPUT -m state --state NEW -i ! ppp0 -j ACCEPT
кажись так

Добавлено через 12 минут и 40 секунд
Попробуй такие правила.

iptables -A OUTPUT -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i ! ppp0 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
PM MAIL   Вверх
student80
Дата 29.1.2010, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Абучю рускаму язаку
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 504
Регистрация: 18.4.2006

Репутация: 1
Всего: 7



и еще в системе нужно включить FORWARD
в генту не знаю, где включается, а в дебиане
/etc/sysctl.conf
net.ipv4.ip_forward=1
PM MAIL   Вверх
Alar
Дата 29.1.2010, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 20.7.2005
Где: г. Пермь

Репутация: нет
Всего: нет



2 student80 Спасибо за ответ. Но тут, к сожалению, все хитрее.
Цитата
Попробуй такие правила.

Это практически то же самое что и приведенное мной. Но на всякий случай попробовал, результат тот же.
Цитата
/etc/sysctl.conf
net.ipv4.ip_forward=1

Это, разумеется, включено.

Вообще, NAT так-то работает (я это сообщение пишу через него smile ). Просто с ощутимыми глюками. Даже на вышеупомянутые сайты соединение устанавливается (находится в состоянии ESTABLISHED), правда дальше дело не идет. 

Вот мой sysctl.cfg (комментарии для компактности убраны)
Код

net.ipv4.ip_forward = 1
#net.ipv4.ip_dynaddr = 0
#net.ipv4.tcp_ecn = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
#net.ipv4.tcp_syncookies = 1

#net.ipv4.conf.all.accept_source_route = 0
#net.ipv4.conf.default.accept_source_route = 0
#net.ipv4.conf.all.accept_redirects = 0
#net.ipv4.conf.default.accept_redirects = 0
#net.ipv4.conf.all.secure_redirects = 0
#net.ipv4.conf.default.secure_redirects = 0

#net.ipv4.icmp_echo_ignore_broadcasts = 1

#kernel.sysrq = 0
#kernel.panic = 3
#kernel.pid_max = 999999

#fs.nfs.nlm_tcpport = 0
#fs.nfs.nlm_udpport = 0


Тут я пробовал менять эти две строчки (по умолчанию стояло 2):
Код

net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0


Добавлено через 10 минут и 10 секунд
А-а-а-а-а!!!!!
Нашел наконец-то корень всех бед.
Это из-за MTU.
Решается строчкой
Код

$IPTABLES -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

взято тут.

Всем спасибо. Пока тут вопрос не задал, проблема не решалась smile

ЗЫ. Ирония судьбы в том, что MTU - первое на что я подумал, просто не нашел эту строчку сразу.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Администрирование"
ZeeLax
Imple
nerezus
Этот форум предназначен для решения вопросов по администрации *n?x-систем, в частности по настройке сложных сетей и обслуживанию серверного оборудования.

  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование *NIX систем | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.