iptables и беременность мозга (просто мистика)
Ситуация такая:
Сервер имеет две сетевые карты
tux-server ~ # ifconfig
eth0 Link encap:Ethernet HWaddr 00:e0:4c:51:6a:6f
inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0
eth2 Link encap:Ethernet HWaddr 00:21:91:7a:32:a0
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
eth0 смотрит на ADSL модем с которого получает инет как с роутера
eth2 смотрит в локалку
нцжно дать инет локалке через сервер, делаю следующее:
tux-server ~ # iptables -F
tux-server ~ # iptables -t nat -F
tux-server ~ # iptables -P INPUT ACCEPT
tux-server ~ # iptables -P OUTPUT ACCEPT
tux-server ~ # iptables -P FORWARD DROP
tux-server ~ # export LAN=eth2
tux-server ~ # export WAN=eth0
tux-server ~ # iptables -I FORWARD -i ${LAN} -d 192.168.1.0/255.255.0.0 -j DROP
tux-server ~ # iptables -A FORWARD -i ${LAN} -s 192.168.1.0/255.255.0.0 -j ACCEPT
tux-server ~ # iptables -A FORWARD -i ${WAN} -d 192.168.1.0/255.255.0.0 -j ACCEPT
tux-server ~ # iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE
После этого на машине с сетевой настроенной так:
config_eth0=( "192.168.1.77 netmask 255.255.255.0 brd 192.168.1.255" )
routes_eth0=( "default via 192.168.1.2" )
dns_servers_eth0="212.96.96.38 212.96.104.129"
vitek-laptop vitek # ping ya.ru
PING ya.ru (213.180.204.8) 56(84) bytes of data.
64 bytes from ya.ru (213.180.204.8): icmp_seq=1 ttl=55 time=37.6 ms
64 bytes from ya.ru (213.180.204.8): icmp_seq=2 ttl=55 time=36.8 ms
64 bytes from ya.ru (213.180.204.8): icmp_seq=3 ttl=55 time=39.3 ms
Тоесть с командной строки сайты пингуются, но инета на машине нет, ни один браузер инет не показывает. Немогу понять что делаю не так?
на всякий случай:
tux-server ~ # iptables -t filter -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
DROP all -- anywhere 192.168.1.0/24
ACCEPT all -- 192.168.1.0/24 anywhere
ACCEPT all -- anywhere 192.168.1.0/24
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
tux-server ~ # iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
- Для комментирования войдите или зарегистрируйтесь
быть
быть может,
Или забыли сделать это:echo
Или забыли сделать на сервере это:
echo 1 > /proc/sys/net/ipv4/ip_forward
Нащяльника, мая сервира паставиль, фрибизьдя инсталя сделаль, апачи сабраль, пыхапе патключиль, сапускаю, а ано - ажамбех пашамбе эшельбе шайтанама!
Пока ничего не помогло,
Пока ничего не помогло, добавил правило
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Но ситуация никак не поменялась.
# cat /proc/sys/net/ipv4/ip_forward
1
что-то
что-то с утра на трезвую голову не догоняю назначение правил
а потому добавил бы тупо перед ними
iptables -A FORWARD -i 192.168.1.2 -o 192.168.0.2 -j ACCEPT
что-то добрый я сегодня ....
Не помогло :( сейчас есть
Не помогло :( сейчас есть мысль сформировать которую трудно попробую отпишусь
Попробуйте для начала
Попробуйте для начала так:
Как писал evadim, скорее
Как писал evadim, скорее всего Ваша проблема в размере MTU (неспособности Вашей системы работать с фрагментированными пакетами). По крайней мере симптомы именно такие - маленькие пакеты ходят - ping, DNS (по UDP), а большие умирают. Отследить это можно при помощи tcpdump. Если так Вас есть два варианта:
1. Правильный вариант: настроить работу с фрагментированными пакетами.
2. Так себе вариант: выставить значение MTU поменьше (стандартное 1500).
совершенно не обязательно
совершенно не обязательно использовать tcpdump. достаточно
использовать ping с опцией -s. например.
таким образом можно вычислить mtu.
хм.. а зачем, уже имея РОУТЕР
хм.. а зачем, уже имея РОУТЕР (ADSL) еще один настраивать? который в принципе ничего не делает... squd+pdnsd+авторизация(если надо) - и все есть. И даже больше, чем указанными правилами.
P.S.: Linux - это красная таблетка :-) Windows - синяя...
лично у меня старый комп
лично у меня старый комп работает быстрее роутера.
В моем случае роутер это
В моем случае роутер это D-link 2500U не такой уж он и функциональный. + мне просто интересно заставить сервер работать в качестве роутера. + скоро мне нужно будет настроить подобную связку так чтобы можно было посчитать трафик копмов в сети, пока остановился на NetAMS для этих целей.
Я бы сделал таким
Я бы сделал таким образом
и на будующее чтобы после перезагрузки не писать по новой
правила iptables
политики можно оставить открытыми все кроме FORWARD но я предпочитаю такой вариант
а в правила добавить
также для правил INPUT при помощи ключей -p и --dport можно при желании четко ограничить порты и протокол для подключения, но это уже другая история :)
Вобщем именно в такой связке у меня все и работает, за исключением только, что сервак у меня одновременно и устройство соединения с оператором :). Про mtu кстати тоже очень логичное замечание, но подсказать по этому поводу ничего не могу - не секу в этом почти :)