LINUX.ORG.RU
ФорумAdmin

Провайдер блочит NAT

 , , , ,


1

2

Проблема следующия: идеем роутер на базе debian 8. Интернет на роутере - через витую пару от провайдера. Если раздавать интернет через NAT, то на клиентах не открываются сайты. Сейчас я завернул маршрут на VPS, и с неё и пишу. Звонил в техподдежку - говорят что проблема у меня. Пробывал:

менять ttl через iptables
обновлять ядро до последний версии
переключил маршрут на VPS - работает
звонил в суппорт

Полная конфигурация:

root@servl:/home/admin# cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:

auto wlan0
iface wlan0 inet static
	address 169.254.225.211
	netmask 255.255.0.0

source-directory /etc/network/interfaces.d

root@servl:/home/admin# ls /etc/network/interfaces.d
br0  eth0  eth1  vlan100

root@servl:/home/admin# for a in $(ls /etc/network/interfaces.d); do cat /etc/network/interfaces.d/$a; done
auto br0
iface br0 inet static
	address 10.250.2.1
	netmask 255.255.255.0
bridge_ports wlan0
auto eth0
iface eth0 inet static
	address 10.250.1.1
	netmask 255.255.255.0
auto eth1
iface eth1 inet dhcp
auto vlan100
iface vlan100 inet static
	address 10.255.1.1
	netmask 255.255.255.0
vlan_raw_device eth0
root@servl:/home/admin# 

root@servl:/home/admin# cat /etc/firewall.conf 
# Generated by iptables-save v1.4.19 on Fri Jul 10 05:13:08 2015
*nat
:PREROUTING ACCEPT [160644:65415484]
:INPUT ACCEPT [32884:2684916]
:OUTPUT ACCEPT [26955:2173756]
:POSTROUTING ACCEPT [25658:1985906]
-A PREROUTING -s 10.0.0.0/8 -d 10.0.0.0/8 -j ACCEPT
-A PREROUTING -s 10.0.0.0/8 -d 91.209.124.67/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.250.1.1:9040
-A POSTROUTING -s 10.0.0.0/8 -d 10.0.0.0/8 -j ACCEPT
-A POSTROUTING -s 10.0.0.0/8 -j MASQUERADE
COMMIT
# Completed on Fri Jul 10 05:13:08 2015
# Generated by iptables-save v1.4.19 on Fri Jul 10 05:13:08 2015
*mangle
:PREROUTING ACCEPT [32:2166]
:INPUT ACCEPT [67:4612]
:FORWARD ACCEPT [14:774]
:OUTPUT ACCEPT [45:4060]
:POSTROUTING ACCEPT [59:4834]
:CANZ - [0:0]
:DIVERT - [0:0]
:DPI - [0:0]
:FIX_MSS - [0:0]
:HEADER - [0:0]
:LAN - [0:0]
:LAN_ONLY - [0:0]
:NO_CENZ - [0:0]
:REDUCTOR - [0:0]
:ZAPRET_GOV - [0:0]
:ZAPRET_GOV_HDR - [0:0]
-A PREROUTING -p tcp -m socket -j DIVERT
-A PREROUTING -p tcp -j NO_CENZ
-A PREROUTING -j LAN
-A PREROUTING -j CANZ
-A PREROUTING -j HEADER
-A FORWARD -j FIX_MSS
-A CANZ -s 10.250.0.0/16 -j ZAPRET_GOV_HDR
-A DIVERT -j MARK --set-xmark 0x1/0xffffffff
-A DIVERT -j ACCEPT
-A DPI -p tcp -m tcp --dport 80 -j TPROXY --on-port 3128 --on-ip 0.0.0.0 --tproxy-mark 0x1/0xffffffff
-A DPI -p tcp -m tcp --dport 443 -j LOG --log-prefix "SSL:"
-A DPI -p tcp -m tcp --dport 443 -j MARK --set-xmark 0x2/0xffffffff
-A FIX_MSS -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A HEADER -m mark --mark 0x2 -j RETURN
-A LAN_ONLY -s 10.0.0.0/8 -d 10.0.0.0/8 -j ACCEPT
-A LAN_ONLY -j MARK --set-xmark 0x3/0xffffffff
-A LAN_ONLY -j DROP
-A NO_CENZ -d 173.194.71.132/32 -p tcp -m tcp --dport 443 -j ACCEPT
-A REDUCTOR -p tcp -m tcp --dport 80 -j ZAPRET_GOV_HDR
-A REDUCTOR -p tcp -m tcp --dport 443 -j ZAPRET_GOV_HDR
-A REDUCTOR -p tcp -m tcp --dport 21 -j ZAPRET_GOV_HDR
-A ZAPRET_GOV_HDR -m mark --mark 0x3 -j RETURN
-A ZAPRET_GOV_HDR -m connbytes --connbytes 100000 --connbytes-mode bytes --connbytes-dir both -j ACCEPT
-A ZAPRET_GOV_HDR -p tcp -j ZAPRET_GOV
COMMIT
# Completed on Fri Jul 10 05:13:08 2015
# Generated by iptables-save v1.4.19 on Fri Jul 10 05:13:08 2015
*filter
:INPUT ACCEPT [58989:10425310]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [60995:20745433]
-A FORWARD -p tcp -m mark --mark 0x2 -j REJECT --reject-with tcp-reset
-A FORWARD -s 10.0.0.0/8 -j ACCEPT
-A FORWARD -d 10.0.0.0/8 -j ACCEPT
COMMIT
# Completed on Fri Jul 10 05:13:08 2015
root@servl:/home/admin# 
root@servl:/home/admin# ip r
default via 10.255.2.2 dev tap0 
X.X.X.X via 192.168.192.203 dev eth1 
10.84.0.0/16 via 10.255.2.2 dev tap0  proto zebra 
10.99.100.0/24 via 10.255.1.2 dev vlan100  proto zebra 
10.99.200.0/24 via 10.255.1.2 dev vlan100  proto zebra 
10.99.215.0/24 via 10.255.1.2 dev vlan100  proto zebra 
10.100.0.0/24 via 10.255.1.2 dev vlan100  proto zebra 
10.100.200.0/24 via 10.255.1.2 dev vlan100  proto zebra 
10.192.0.0/24 via 10.255.1.2 dev vlan100  proto zebra 
10.192.100.0/24 via 10.255.1.2 dev vlan100  proto zebra 
10.192.254.0/24 via 10.255.1.2 dev vlan100  proto zebra 
10.192.255.0/24 via 10.255.1.2 dev vlan100  proto zebra 
10.196.0.0/16 via 10.255.1.2 dev vlan100  proto zebra 
10.250.1.0/24 dev eth0  proto kernel  scope link  src 10.250.1.1 
10.250.2.0/24 dev br0  proto kernel  scope link  src 10.250.2.1 
10.255.0.0/24 dev tap0  proto kernel  scope link  src 10.255.0.2 
10.255.1.0/24 dev vlan100  proto kernel  scope link  src 10.255.1.1 
10.255.2.0/29 dev tap0  proto kernel  scope link  src 10.255.2.1 
169.254.0.0/16 dev wlan0  proto kernel  scope link  src 169.254.225.211 
192.168.192.203 dev eth1  scope link 

root@servl:/home/admin# ip ru
0:	from all lookup local 
1:	from all fwmark 0x1 lookup 100 
2:	from 10.0.0.0/8 lookup 122 
32766:	from all lookup main 
32767:	from all lookup default 

★★★★★

Форвардинг включён?

«Сайты не открываются» - а остальной функционал сетевой связности работает? Пинги ходят? Хосты резолвятся?

/etc/firewall.conf - производная, смотреть надо iptables -L, iptables -t nat -L.

Krieger_Od ★★ ()
Ответ на: комментарий от Krieger_Od

С форвардингом все впорядке, пинги ходят

root@servl:/home/admin# iptables -L -t nat -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  10.0.0.0/8           10.0.0.0/8          
DNAT       tcp  --  10.0.0.0/8           91.209.124.67        tcp dpt:80 to:10.250.1.1:9040

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  10.0.0.0/8           10.0.0.0/8          
MASQUERADE  all  --  10.0.0.0/8           0.0.0.0/0           
root@servl:/home/admin# 
root@servl:/home/admin# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy DROP)
target     prot opt source               destination         
REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0            mark match 0x2 reject-with tcp-reset
ACCEPT     all  --  10.0.0.0/8           0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            10.0.0.0/8          

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
root@servl:/home/admin# 
ne-vlezay ★★★★★ ()

А попробуй

-A POSTROUTING -s 10.0.0.0/8 -j MASQUERADE

Заменить на

-A POSTROUTING -o $iface -j MASQUERADE

Где $iface - интернетовый интерфейс.

pztrn ★★★★ ()
Ответ на: комментарий от pztrn

Я попробую, но боюсь что не поможет. Просматриваются сейчас лояльную vps

ne-vlezay ★★★★★ ()
Ответ на: комментарий от Difrex

Для SNAT нужен статич. IP Хотя, можно написать скрипт

ne-vlezay ★★★★★ ()
Ответ на: комментарий от ne-vlezay

Ну да.

Там скрипт будет на 5 строчек. Потом можно в init.d/upstart/systemd засунуть, ну или что там у тебя

Difrex ★★★★ ()

Откуда уверенность что «Провайдер блочит NAT»? curl -v http://www.linux.org.ru/ что выдаёт?

MrClon ★★★★★ ()

Для провайдера единственное отличие nat-трафика от не nat - это ttl, причём это очень условное отличие. резать по ttl бессмысленная и глупая затея. В случае использования nat не помешает добавить:

iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Ещё судя по ip ru в настройках используются дополнительные таблицы маршрутизации 122 и 100. Нужен вывод
ip ro sh table 122
ip ro sh table 100

omnomnomnus ()
Ответ на: комментарий от MrClon

Откуда уверенность что «Провайдер блочит NAT»?

это типичный клиент лора - вместо внятного описания задачи клиент фонтанирует своими фантазиями на самые разнообразные темы

zolden ★★★★★ ()

Кстати говоря, как выше уже заметили, надо указать исходящий интерфейс для NAT. И для теста не помешало бы проверить с iptables -I FORWARD -j ACCEPT и без дополнительных таблиц маршрутизации, которые так и не были показаны. И tcpdumpом посмотрить, уходит ли вообще что-либо в сторону провайдера, когда клиент за натом пытается в инет ломиться. И если уходит, куда и как возвращается.

omnomnomnus ()

замените тэг kernel на dna пожалуйста

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.