Здравствуйте!
ОС Fedora 13
3 сетевые карты: 1 наружу, 2 внутрь:eth0 200.200.200.200 - наружу
eth1 10.10.10.10 - внутрь
eth2.10 20.20.20.20 - внутрь ч/з vlanПравила для обеих подсетей одинаковые, только ч/з vlan ходят только пинги - страницы не открываются (только google.com отвечает ).
Такого странного поведения я еще не видел: пинг идет а сайт не открывается, за исключением одного google.
утром могу скинуть правила iptables
> Правила для обеих подсетей одинаковые, только ч/з vlan ходят только пинги -
> страницы не открываются (только google.com отвечает ).
>
>
> Такого странного поведения я еще не видел: пинг идет а сайт не
> открывается, за исключением одного google.О сколько нам открытий чудных....
Ключевые слова: MTU/MSS
Основной инструмент дебага: tcpdump> утром могу скинуть правила iptables
впрочем, тоже может быть что-то интересное.
>[оверквотинг удален]
> ОС Fedora 13
> 3 сетевые карты: 1 наружу, 2 внутрь:
> eth0 200.200.200.200 - наружу
> eth1 10.10.10.10 - внутрь
> eth2.10 20.20.20.20 - внутрь ч/з vlan
> Правила для обеих подсетей одинаковые, только ч/з vlan ходят только пинги -
> страницы не открываются (только google.com отвечает ).
> Такого странного поведения я еще не видел: пинг идет а сайт не
> открывается, за исключением одного google.
> утром могу скинуть правила iptablesИ таблицу маршрутизации!...
IF_VLAN_40=eth2.40
IP_VLAN_40=10.10.40.100
IP_HOST=10.10.40.10
NET_VLAN_40=10.10.40.0/24IF_LOCAL=eth1
IP_LOCAL=192.168.0.1
NET_LOCAL=192.168.0.0/24EXT_IF=eth0
EXT_IP=200.200.200.200
EXT_GW=200.200.200.199route add default gw $EXT_GW
# route to net 10.40.40.0/24
route add -net 10.10.40.0 netmask 255.255.255.0 gw $IP_VLAN_40
# add route to switch
route add -net 10.90.90.0 netmask 255.255.255.0 gw $IP_VLAN_40# forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward# iptables
${IPT} -F
${IPT} -Z
${IPT} -X
${IPT} -t nat -F
${IPT} -t mangle -F${IPT} -A INPUT -j ACCEPT
${IPT} -A OUTPUT -j ACCEPT# ***************************************************************
# forward
${IPT} -A FORWARD -i $IF_VLAN_40 -s $IP_HOST -j ACCEPT
${IPT} -A FORWARD -o $IF_VLAN_40 -d $IP_HOST -j ACCEPT${IPT} -A FORWARD -i $IF_VLAN_40 -o $IF_LOCAL -j ACCEPT
${IPT} -A FORWARD -i $IF_LOCAL -o $IF_VLAN_40 -j ACCEPT${IPT} -A FORWARD -i $IF_LOCAL -s $NET_LOCAL -o $EXT_IF -d 0/0 -j ACCEPT
${IPT} -A FORWARD -o $IF_LOCAL -d $NET_LOCAL -i $EXT_IF -s 0/0 -j ACCEPT${IPT} -A FORWARD -j DROP
${IPT} -t nat -A POSTROUTING -o $EXT_IF -j SNAT --to-source $EXT_IP
${IPT} -t nat -A POSTROUTING -o $IF_VLAN_40 -j SNAT --to-source $IP_VLAN_40
Пакеты проходят на роутере в обе стороныChain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
299 26637 ACCEPT all -- eth2.40 * 10.10.40.23 0.0.0.0/0
217 86155 ACCEPT all -- * eth2.40 0.0.0.0/0 10.10.40.23
0 0 ACCEPT all -- eth2.40 eth1 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- eth1 eth2.40 0.0.0.0/0 0.0.0.0/0
4440 359335 ACCEPT all -- eth1 eth0 192.168.0.0/24 0.0.0.0/0
7372 9773707 ACCEPT all -- eth0 eth1 0.0.0.0/0 192.168.0.0/24
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0Мне кажется они теряются на обратном пути - пакет не знает куда идти, когда он пришел снаружи
Уберите:
${IPT} -t nat -A POSTROUTING -o $IF_VLAN_40 -j SNAT --to-source $IP_VLAN_40
А также нарисуйте схему сети, с указанием всех параметров по сегментам сети, адреса, шлюзы, маски.
Если я уберу правило - то перестанут ходить пинги
> Если я уберу правило - то перестанут ходить пинги"А также нарисуйте схему сети, с указанием всех параметров по сегментам сети, адреса, шлюзы, маски." - не по глазам ?
Нужно _везде_ правильные маршруты попрописывать, тогда пинги будут ходить...
По идее, маршрут создается автоматически при поднятии интерфейса. Добавление статического маршрута необходимо в случае, если через интерфейс идут пакеты другой подсети. Например:
ifconfig eth0 10.10.40.10 netmask 255.255.255.0 up - здесь создастся маршрут в подсеть 10.40.40.0/24
route add -net 10.90.90.0 netmask 255.255.255.0 gw 10.10.40.10 - подсеть 10.10.40.0/24 лежит за роутером с адресом 10.90.90.10
eth0 10.10.40/24
------------------------------
/\
|
\/
------------------------------
router dlink1100-16 10.90.90.90
vlan 40 10.10.40/24------------------------------
/\
|
\/
------------------------------
OS Linux 2.6.36
eth2.40 10.10.40.100/24
eth1 192.168.0.1/24 --> 192.168.0.0/24
eth0 200.200.200.200/32 --> INTERNET
------------------------------
# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
200.200.200.200 0.0.0.0 255.255.255.252 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.10.40.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2.40
0.0.0.0 200.200.200.200 0.0.0.0 UG 0 0 0 eth0
Странное дело:
Скайп работает, google работает
mail.ru не работает
В общем, подавляющая часть сайтов не открывается, а остальная работает как ни в чем ни бывало.
Какие инструменты диагностики Вы можете предложить.
Я пользуюсь tcpdump -i eth0 -host -vvv
> Странное дело:
> Скайп работает, google работает
> mail.ru не работает
> В общем, подавляющая часть сайтов не открывается, а остальная работает как ни
> в чем ни бывало.
> Какие инструменты диагностики Вы можете предложить.
> Я пользуюсь tcpdump -i eth0 -host -vvvА что мы там говорили про:
>Ключевые слова: MTU/MSS
?
Вот отрывок tcpdump сайта, который не открывается:www.i.ua.http > 10.10.40.23.50246: Flags [.], cksum 0x620d (corre
ct), seq 1:1449, ack 450, win 54, options [nop,nop,TS val 4082863072
ecr 175225], length 1448
09:59:37.846810 IP (tos 0xa0, ttl 59, id 7214, offset 0, flags [DF],
proto TCP (6), length 1500)Сначала идет пакет 1448 байт а за ним 1500 - может в этом проблема?
PS Я снова протупил, но лучше выглядеть тупым в Ваших глазах, чем сидеть с нерешенной проблемой.
Поменял MTU на 1448 на клиентской машине и все заработало.
Если я в правилах iptables укажу MTU для интерфейса 1448, мне не нужно будет перенастраивать MTU клиентских машин?
>[оверквотинг удален]
> 09:59:37.846810 IP (tos 0xa0, ttl 59, id 7214,
> offset 0, flags [DF],
> proto TCP (6), length 1500)
> Сначала идет пакет 1448 байт а за ним 1500 - может в
> этом проблема?
> PS Я снова протупил, но лучше выглядеть тупым в Ваших глазах, чем
> сидеть с нерешенной проблемой.
> Поменял MTU на 1448 на клиентской машине и все заработало.
> Если я в правилах iptables укажу MTU для интерфейса 1448, мне не
> нужно будет перенастраивать MTU клиентских машин?/etc/sysconfig/network-scripts/ifcfg-eth2.40
MTU=1448Вроде все работает