И снова NAT...
Barboza 30 марта, 2008 - 14:33
Всем привет... Проблема такая... На компе стоит 2 сетевухи... Одна смотрит в роутер, вторая в локалку... задача дать инет локалке... Подключил модули в ядре, настроил нат по следующей инструкции: http://www.revsys.com/writings/quicktips/nat.html .. инет в локалку пошол... но! после обновления ядра на 2.6.23 он снова пропал... Порылся в конфиге ядра, выставил там всё как должно быть... Перенастроил иптаблесы, но инета в локалку так и не идёт... при пинге внешнего узла с локальной машины на компе-шлюзе netstat-nat показывает пакеты, идущие из локалки, но статус у пакетов Unreplyed... Тобишь, если я правильно думаю, то на запросы из локалки просто не идёт ответов... Помогите куда копать и как бороться... Спасибо заранее..
»
- Для комментирования войдите или зарегистрируйтесь
уверен, что
уверен, что модули ядра заинсталил?
пересобирал иптаблес?
iptables -L что показывает?
...
С модулями всё нормально... тем более что я их не модулями собирал а включил в ядро... iptables тож пересобирал после обновления ядра... вывод iptables -L:
localhost dimosoft # iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
При пинге внешнего узла с компа из локалки видим вот такую картину:
localhost dimosoft # netstat-nat
Proto NATed Address Destination Address State
udp 192.168.0.2:32784 172.17.0.17:domain UNREPLIED
udp 192.168.0.2:32783 172.17.17.5:domain UNREPLIED
По сетке поясню - интерфейс eth0 смотрит в ADSL роутер (Dlink DSL-2500U), интерфейс eth1 - в локальную сеть...
______________________________
Подводная лодка в степях Украины погибла в неравном воздушном бою...
Честно говоря,
Честно говоря, у меня после установки с системы с 23-м ядром NAT настроить вообще не получилось, хотя модули все включал. Откатился на 16-е - заработало.
Но вот вчера заметил, что половина сайтов не открывается из локалки. Даже странно, какая-то избирательность. Сначала на провайдера грешил, но потом нет, вроде с сервера все работает. С чего бы это могло быть?
Причем ping проходит. Но в броузере "Ожидание ответа..." и все ;(
Например: yandex и gentoo.ru открывается, а gentoo.org и infobox.ru - нет.
Leonid Kolesnik
iptables -nvL && iptables
iptables -nvL && iptables -nvL -t nat
покажиОдна смотрит в роутер, вторая в локалку Про структуру сети тоже не очень понятно. Роутер провайдера или еще какая то твоя железка?
По идее, если eth0 наружу, можно так попробовать - должно работать:
iptables -I FORWARD -j ACCEPT
modprobe ipt_MASQUERADE
iptables -I POSTROUTING -t nat -o eth0 -j MASQUERADE
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf && sysctl -p /etc/sysctl.conf
Где затык может быть можно посмотреть через
tcptraceroute www.ru 80 1500
В локалку
В локалку смотрит eth0, наружу - ppp0. Собственно роутером эта машина и работает. Физически к ней через eth0 подсоединен ADSL модем.
При настройке сделан 1-й шаг из руководства по настройке iptables с gentoo.wiki
hermit ~ # iptables -nvL&& iptables -nvL -t nat
Chain INPUT (policy ACCEPT 417 packets, 58169 bytes)
pkts bytes target prot opt in out source destination
378 27638 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
264 16823 DROP all -- ppp0 * 0.0.0.0/0 0.0.0.0/0 state INVALID,NEW
Chain FORWARD (policy ACCEPT 2000 packets, 1518K bytes)
pkts bytes target prot opt in out source destination
1647 480K ACCEPT all -- eth0 ppp0 0.0.0.0/0 0.0.0.0/0 state NEW,ESTABLISHED
0 0 DROP all -- ppp0 * 0.0.0.0/0 0.0.0.0/0 state INVALID,NEW
Chain OUTPUT (policy ACCEPT 777 packets, 107K bytes)
pkts bytes target prot opt in out source destination
Chain PREROUTING (policy ACCEPT 460 packets, 32169 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 34 packets, 4819 bytes)
pkts bytes target prot opt in out source destination
132 7961 MASQUERADE all -- * ppp0 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 76 packets, 7995 bytes)
pkts bytes target prot opt in out source destination
Leonid Kolesnik
Кривоватые
Кривоватые правила имхо. Дабы удостовериться пробуй те что выше писал только вместо eth0 - ppp0.
IMHO тоже
IMHO тоже кривоватые, даже думал, что из-за них. Но с твоими все тоже самое.
Вот вывод после твоих.
hermit ~ # iptables -nvL && iptables -nvL -t nat
Chain INPUT (policy ACCEPT 262 packets, 20119 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 21 packets, 5178 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 152 packets, 15291 bytes)
pkts bytes target prot opt in out source destination
Chain PREROUTING (policy ACCEPT 12 packets, 568 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 1 packets, 244 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * ppp0 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 1 packets, 244 bytes)
pkts bytes target prot opt in out source destination
Leonid Kolesnik
Это я накосячил
Штранно. Но если уже решено, да будет так. :-)
А ты попробуй
А ты попробуй попинговать большими пакетами, может быть затык в размере MTU?
Большими это
Большими это какими? 8200 Байт - нормально пингуется. Еще больше?
Leonid Kolesnik
iptables -I POSTROUTING 1 -t
iptables -I POSTROUTING 1 -t nat -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1024
А такое поможет?
А такое
А такое помогло. А в чем суть? Вкратце. Мануал я сам внимательно почитаю.
То, что это рекомендуется в настройках это я уже сам нашел.
Всем спасибо. :)
Leonid Kolesnik
Коротко, та
Коротко, та самая проблема фрагметации пакетов