Уважаемые админы, требуется ваша помощь!
Ситуация такова - есть пограничный фарволл и есть еще внутрений фаер. Внутренняя сетевая второго фаера свободно смотрит в сеть где находится тестовый веб сервер(он слушает порт 8000).Собственно вот что я делаю :
first firewall config:
eth0=212.47.87.210
eth1=192.168.1.1
second firewall config:
eth0=192.168.1.2
eth1=192.168.10.1
test web server config:
eth0=192.168.44.4first firewall iptables:
iptables -t nat -A PREROUTING -d 212.47.87.210 -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:8000
iptables -t filter -A FORWARD -p tcp -i eth0 -d 192.168.1.2 --dport 8000 -j ACCEPTsecond firewall iptables:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8000 -j DNAT --to-destination 192.168.44.4:8000
iptables -t filter -A FORWARD -p tcp -i eth0 -d 192.168.44.4 --dport 8000 -j ACCEPTПримечание - таким же нехитрым способом открыл туда ssh и все работает а вот веб не хочет. Кстати пробовал через мобилу по вапу, так страница сц*ко открывается!!!
Очень прошу указать где зарыты грабли, а то шеф к понедельнику три шкуры сдерет с меня :(
Ну если с мобилы открывается, то NAT работает, а вот неверный размер MTU и запрет на фрагментацию вполне могли привести к проблеме для больших пакетов.
из man iptables:
TCPMSS
This target allows to alter the MSS value of TCP SYN packets, to control the maximum size for that connection (usually limiting it to your out-
going interface's MTU minus 40 for IPv4 or 60 for IPv6, respectively). Of course, it can only be used in conjunction with -p tcp. It is only
valid in the mangle table.
This target is used to overcome criminally braindead ISPs or servers which block "ICMP Fragmentation Needed" or "ICMPv6 Packet Too Big" packets.
The symptoms of this problem are that everything works fine from your Linux firewall/router, but machines behind it can never exchange large
packets:
1) Web browsers connect, then hang with no data received.
2) Small mail works fine, but large emails hang.
3) ssh works fine, but scp hangs after initial handshaking.
Workaround: activate this option and add a rule to your firewall configuration like:
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
-j TCPMSS --clamp-mss-to-pmtu--set-mss value
Explicitly set MSS option to specified value.--clamp-mss-to-pmtu
Automatically clamp MSS value to (path_MTU - 40 for IPv4; -60 for IPv6).These options are mutually exclusive.
Хм, это идея. Спасибо за подсказку, непременно попробую. Только чуть не понимаю как все же основной веб работает будучи за первым фаером. Ну да ладно, время все разъяснит.
>Хм, это идея. Спасибо за подсказку, непременно попробую. Только чуть не понимаю
>как все же основной веб работает будучи за первым фаером. Ну
>да ладно, время все разъяснит.Попробовал. Добавил так же правило и для цепочки postrouting в manglе но к сожалению не сработало.
Добавлять на обоих шлюзах, в FORWARD.
Альтернативно посмотрите не запрещены ли указанные типы ICMP пакетов.
Я добавлял на обоих шлюзах. Итог тот же. Отслеживал tcpdump-ом обращение ко 2-му шлюзу по 8000 порту так получил следущее:orange 3g modem
[root@home ~]# tcpdump dst port 8000
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
16:35:24.143082 IP host-94-243-68-161.hspa.orange.md.bpcp-trap > 192.168.44.4.oa-system: S 1997004792:1997004792(0) win 65535 <mss 1460,nop,wscale 2,nop,nop,sackOK>16:35:27.081547 IP host-94-243-68-161.hspa.orange.md.bpcp-trap > 192.168.44.4.oa-system: S 1997004792:1997004792(0) win 65535 <mss 1460,nop,wscale 2,nop,nop,sackOK>
16:35:33.101456 IP host-94-243-68-161.hspa.orange.md.bpcp-trap > 192.168.44.4.oa-system: S 1997004792:1997004792(0) win 65535 <mss 1460,nop,wscale 2,nop,nop,sackOK>
opera mini wap
16:45:57.115223 IP p09-12.opera-mini.net.51760 > 192.168.44.4.oa-system: . ack 53056 win 747 <nop,nop,timestamp 1520214658 1050254970,nop,nop,sack 1 {54504:54909}>
16:45:57.118050 IP p09-12.opera-mini.net.51760 > 192.168.44.4.oa-system: . ack 54909 win 732 <nop,nop,timestamp 1520214659 1050254974>
16:45:57.230054 IP p09-12.opera-mini.net.51772 > 192.168.44.4.oa-system: P 1715:2603(888) ack 15033 win 295 <nop,nop,timestamp 1520214685 1050253952>
16:45:57.298827 IP p09-12.opera-mini.net.51772 > 192.168.44.4.oa-system: . ack 16481 win 318 <nop,nop,timestamp 1520214704 1050255158>
16:45:57.303024 IP p09-12.opera-mini.net.51772 > 192.168.44.4.oa-system: . ack 17929 win 340 <nop,nop,timestamp 1520214704 1050255158>
16:45:57.306474 IP p09-12.opera-mini.net.51772 > 192.168.44.4.oa-system: . ack 19377 win 363 <nop,nop,timestamp 1520214705 1050255158>
16:45:57.366557 IP p09-12.opera-mini.net.51772 > 192.168.44.4.oa-system: . ack 20825 win 385 <nop,nop,timestamp 1520214721 1050255226>
16:45:59.211027 IP p09-12.opera-mini.net.52052 > 192.168.44.4.oa-system: . ack 3846938072 win 46 <nop,nop,timestamp 1520215182 1050257078>
16:45:59.222649 IP p09-12.opera-mini.net.52053 > 192.168.44.4.oa-system: S 2324897080:2324897080(0) win 5840 <mss 1460,sackOK,timestamp 1520215185 0,nop,wscale 7>
16:45:59.267863 IP p09-12.opera-mini.net.51754 > 192.168.44.4.oa-system: P 5214:6077(863) ack 31826 win
566 <nop,nop,timestamp 1520215195 1050257031>16:45:59.268700 IP p09-12.opera-mini.net.51755 > 192.168.44.4.oa-system: P 5195:6057(862) ack 81419 win
757 <nop,nop,timestamp 1520215195 1050257010>16:45:59.272213 IP p09-12.opera-mini.net.51759 > 192.168.44.4.oa-system: P 1723:2587(864) ack 3387 win 91 <nop,nop,timestamp 1520215195 1050257011>
16:45:59.282490 IP p09-12.opera-mini.net.52053 > 192.168.44.4.oa-system: . ack 3846090348 win 46 <nop,nop,timestamp 1520215200 1050257150>
moldtelecom adsl
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
09:00:53.824756 IP host-static-92-115-49-79.moldtelecom.md.sddp > 192.168.44.4.oa-system: S 2327245485:2327245485(0) win 65535 <mss 1460,nop,nop,sackOK>09:00:56.853384 IP host-static-92-115-49-79.moldtelecom.md.sddp > 192.168.44.4.oa-system: S 2327245485:2327245485(0) win 65535 <mss 1460,nop,nop,sackOK>
09:01:02.868413 IP host-static-92-115-49-79.moldtelecom.md.sddp > 192.168.44.4.oa-system: S 2327245485:2327245485(0) win 65535 <mss 1460,nop,nop,sackOK>
09:01:15.199089 IP host-static-92-115-49-79.moldtelecom.md.qsm-proxy > 192.168.44.4.oa-system: S 705637948:705637948(0) win 65535 <mss 1460,nop,nop,sackOK>
09:01:18.842563 IP host-static-92-115-49-79.moldtelecom.md.qsm-gui > 192.168.44.4.oa-system: S 3211773044:3211773044(0) win 65535 <mss 1460,nop,nop,sackOK>
09:01:21.679572 IP host-static-92-115-49-79.moldtelecom.md.qsm-gui > 192.168.44.4.oa-system: S 3211773044:3211773044(0) win 65535 <mss 1460,nop,nop,sackOK>
09:01:27.715911 IP host-static-92-115-49-79.moldtelecom.md.qsm-gui > 192.168.44.4.oa-system: S 3211773044:3211773044(0) win 65535 <mss 1460,nop,nop,sackOK>
first gateway: elinks ttp://192.168.1.2:8000 - работает, страницу вижу
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
10:34:00.971064 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: S 2269613086:2269613086(0) win 5840 <mss 1460,sackOK,timestamp 491624907 0,nop,wscale 5>
10:34:00.973230 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 3708596283 win 183 <nop,nop,timestamp 491624909 1114340136>10:34:00.973460 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: P 0:179(179) ack 1 win 183 <nop,nop,timestamp 491624909 1114340136>
10:34:00.974902 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 224 win 216 <nop,nop,timestamp 491624910 1114340139>
10:34:00.977084 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: P 179:451(272) ack 224 win 216 <nop,nop,timestamp 491624913 1114340139>
10:34:00.978962 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 1357 win 307 <nop,nop,timestamp 491624914 1114340142>
10:34:00.980167 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: P 451:736(285) ack 1357 win 307 <nop,nop,timestamp 491624916 1114340142>
10:34:00.981763 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 4253 win 488<nop,nop,timestamp 491624917 1114340145>
10:34:00.982031 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 7149 win 669<nop,nop,timestamp 491624917 1114340145>
10:34:00.982724 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 10045 win 850<nop,nop,timestamp 491624918 1114340146>
10:34:00.982981 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 12941 win 1031 <nop,nop,timestamp 491624918 1114340146>10:34:00.983206 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: . ack 15462 win 1212 <nop,nop,timestamp 491624919 1114340147>
10:34:20.989418 IP 192.168.1.1.41392 > 192.168.44.4.oa-system: F 736:736(0) ack 15463 win 1212 <nop,nop,timestamp 491644444 1114360148>
В проблемных случаех с 3g и adsl фигурирует mss 1460, наверно тут как раз и грабли но я ведь приспособил шлюзы к pmtu, потому и не могу взять в толк что же происходит.
Проверил через dial-up - страница видна и работает как надо. Пробовал разные значения --set-mss но без продвижений для тех клиентов что ходят через adsl. Если кто-то сталкивался с подобными проблемами пожалуйста отзовитесь.
>first firewall iptables:
>iptables -t nat -A PREROUTING -d 212.47.87.210 -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:8000
>iptables -t filter -A FORWARD -p tcp -i eth0 -d 192.168.1.2 --dport 8000 -j ACCEPT
>
>second firewall iptables:
>iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8000 -j DNAT --to-destination 192.168.44.4:8000
>iptables -t filter -A FORWARD -p tcp -i eth0 -d 192.168.44.4 --dport 8000 -j ACCEPTИМХО, не хватало таких правил:
first firewall iptables:
iptables -t nat -A POSTROUTING -p tcp --dst 192.168.1.2 --dport 80 -j SNAT --to-source 212.47.87.210second firewall iptables:
iptables -t nat -A POSTROUTING -p tcp --dst 192.168.44.4 --dport 8000 -j SNAT --to-source 192.168.1.2