URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 91213
[ Назад ]

Исходное сообщение
"Маршруты и цепочки FORWARD"

Отправлено handler2006 , 21-Мрт-11 23:52 
Здравствуйте!
ОС 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


Содержание

Сообщения в этом обсуждении
"Маршруты и цепочки FORWARD"
Отправлено PavelR , 21-Мрт-11 23:57 
> Правила для обеих подсетей одинаковые, только ч/з vlan ходят только пинги -
> страницы не открываются (только google.com отвечает ).
>
>
> Такого странного поведения я еще не видел: пинг идет а сайт не
> открывается, за исключением одного google.

О сколько нам открытий чудных....

Ключевые слова: MTU/MSS
Основной инструмент дебага: tcpdump

> утром могу скинуть правила iptables

впрочем, тоже может быть что-то интересное.



"Маршруты и цепочки FORWARD"
Отправлено SysA , 22-Мрт-11 01:58 
>[оверквотинг удален]
> ОС 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

И таблицу маршрутизации!...


"Маршруты и цепочки FORWARD"
Отправлено handler2006 , 22-Мрт-11 12:38 
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/24

IF_LOCAL=eth1
IP_LOCAL=192.168.0.1
NET_LOCAL=192.168.0.0/24

EXT_IF=eth0
EXT_IP=200.200.200.200
EXT_GW=200.200.200.199

route 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          

Мне кажется они теряются на обратном пути - пакет не знает куда идти, когда он пришел снаружи


"Маршруты и цепочки FORWARD"
Отправлено PavelR , 22-Мрт-11 20:40 

Уберите:
${IPT} -t nat -A POSTROUTING -o $IF_VLAN_40 -j SNAT --to-source $IP_VLAN_40


А также нарисуйте схему сети, с указанием всех параметров по сегментам сети, адреса, шлюзы,  маски.


"Маршруты и цепочки FORWARD"
Отправлено handler2006 , 22-Мрт-11 20:51 
Если я уберу правило - то перестанут ходить пинги

"Маршруты и цепочки FORWARD"
Отправлено PavelR , 22-Мрт-11 21:08 
> Если я уберу правило - то перестанут ходить пинги

"А также нарисуйте схему сети, с указанием всех параметров по сегментам сети, адреса, шлюзы,  маски." - не по глазам ?


Нужно _везде_ правильные маршруты попрописывать, тогда пинги будут ходить...


"Маршруты и цепочки FORWARD"
Отправлено handler2006 , 23-Мрт-11 08:23 
По идее, маршрут создается автоматически при поднятии интерфейса. Добавление статического маршрута необходимо в случае, если через интерфейс идут пакеты другой подсети. Например:
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

"Маршруты и цепочки FORWARD"
Отправлено handler2006 , 23-Мрт-11 10:05 
      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


"Маршруты и цепочки FORWARD"
Отправлено handler2006 , 08-Апр-11 10:26 
Странное дело:
Скайп работает, google работает
mail.ru не работает
В общем, подавляющая часть сайтов не открывается, а остальная работает как ни в чем ни бывало.
Какие инструменты диагностики Вы можете предложить.
Я пользуюсь tcpdump -i eth0 -host -vvv

"Маршруты и цепочки FORWARD"
Отправлено PavelR , 08-Апр-11 10:48 
> Странное дело:
> Скайп работает, google работает
> mail.ru не работает
> В общем, подавляющая часть сайтов не открывается, а остальная работает как ни
> в чем ни бывало.
> Какие инструменты диагностики Вы можете предложить.
> Я пользуюсь tcpdump -i eth0 -host -vvv

А что мы там говорили про:

>Ключевые слова: MTU/MSS

?


"Маршруты и цепочки FORWARD"
Отправлено handler2006 , 08-Апр-11 11:11 
Вот отрывок 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 клиентских машин?


"Маршруты и цепочки FORWARD"
Отправлено handler2006 , 08-Апр-11 12:00 
>[оверквотинг удален]
>     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

Вроде все работает