LINUX.ORG.RU
решено ФорумAdmin

NAT, iptables, шлюз и клиенты

 , , , ,


0

1

Есть пека с 2 интерфейсами на одном интернеты, на другом локалка (192.168.0.0/24) c единственным клиентом (192.168.0.217), интернеты проброшены через маскарадинг (т.е. пека - шлюз для локалки). Собственно вопрос: как с этой пеки стучаться в локалку?

P.S. Втупую ping 192.168.0.217 ничего не даёт, равно как и попытка проброса порта (или я просто что-то не так сделал)

P.P.S. Дампы конфигов

smt-server ~ # iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  192.168.0.0/24       0.0.0.0/0            ctstate NEW
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:60022

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain DOCKER (0 references)
target     prot opt source               destination

smt-server ~ # iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  anywhere             anywhere             tcp dpt:60022 to:192.168.0.217:22
DNAT       tcp  --  anywhere             anywhere             tcp dpt:http to:192.168.0.217:80

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  anywhere            !loopback/8           ADDRTYPE match dst-type LOCAL
DNAT       tcp  --  anywhere             PRIVATE  tcp dpt:http to:192.168.0.1

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  anywhere             anywhere            

Chain DOCKER (1 references)
target     prot opt source               destination

smt-server ~ # ip route show 
default via PRIVATE dev enp4s0  metric 204 
169.254.0.0/16 dev enp4s1  proto kernel  scope link  src 169.254.151.102  metric 205 
172.17.0.0/16 dev docker0  proto kernel  scope link  src 172.17.0.1 linkdown 
PRIVATE/24 dev enp4s0  proto kernel  scope link  src PRIVATE  metric 204 
192.168.0.0/24 dev enp4s1  proto kernel  scope link  src 192.168.0.1

smt-server ~ # ip link show 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp4s2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:80:48:28:1e:57 brd ff:ff:ff:ff:ff:ff
3: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 50:e5:49:e4:43:4d brd ff:ff:ff:ff:ff:ff
4: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:13:d3:9a:af:33 brd ff:ff:ff:ff:ff:ff
5: enp4s1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether e8:cc:18:e8:c6:90 brd ff:ff:ff:ff:ff:ff
6: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default 
    link/sit 0.0.0.0 brd 0.0.0.0
7: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
    link/ether 02:42:16:6c:f2:cf brd ff:ff:ff:ff:ff:ff

smt-server ~ # ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp4s2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 00:80:48:28:1e:57 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::91f4:69a4:2375:9e71/64 scope link tentative 
       valid_lft forever preferred_lft forever
3: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 50:e5:49:e4:43:4d brd ff:ff:ff:ff:ff:ff
    inet6 fe80::59e:56ea:7de3:cd5e/64 scope link tentative 
       valid_lft forever preferred_lft forever
4: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:13:d3:9a:af:33 brd ff:ff:ff:ff:ff:ff
    inet PRIVATE/24 brd PRIVATE scope global enp4s0
       valid_lft forever preferred_lft forever
    inet6 fe80::5c50:880a:b7ba:7b38/64 scope link 
       valid_lft forever preferred_lft forever
5: enp4s1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether e8:cc:18:e8:c6:90 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 scope global enp4s1
       valid_lft forever preferred_lft forever
    inet 169.254.151.102/16 brd 169.254.255.255 scope global enp4s1
       valid_lft forever preferred_lft forever
    inet6 fe80::f987:2ed0:61ed:ddaf/64 scope link 
       valid_lft forever preferred_lft forever
6: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default 
    link/sit 0.0.0.0 brd 0.0.0.0
7: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:16:6c:f2:cf brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::ee83:8058:deee:dd8c/64 scope link 
       valid_lft forever preferred_lft forever

smt-server ~ # sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1

smt-server mpd # iptables-save
*nat
:PREROUTING ACCEPT [15520:1342671]
:INPUT ACCEPT [2241:304679]
:OUTPUT ACCEPT [257:17491]
:POSTROUTING ACCEPT [53:2820]
:DOCKER - [0:0]
-A PREROUTING -i enp4s0 -p tcp -m tcp --dport 60022 -j DNAT --to-destination 192.168.0.217:22
-A PREROUTING -i enp4s0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.217:80
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT -d PRIVATE/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1
-A POSTROUTING -o enp4s0 -j MASQUERADE
COMMIT
*mangle
:PREROUTING ACCEPT [1504633:1223213241]
:INPUT ACCEPT [493957:587955380]
:FORWARD ACCEPT [1010151:635131839]
:OUTPUT ACCEPT [327979:28063688]
:POSTROUTING ACCEPT [1338126:663195495]
COMMIT
*filter
:INPUT ACCEPT [382969:510299822]
:FORWARD ACCEPT [302:17583]
:OUTPUT ACCEPT [255263:22881845]
:DOCKER - [0:0]
-A FORWARD -s 192.168.0.0/24 -i enp4s1 -o enp4s0 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i enp4s0 -p tcp -m tcp --dport 60022 -j ACCEPT
COMMIT



Последнее исправление: smt (всего исправлений: 3)

Павел имеет в виду, что ping показывает не столько успешность отправки запроса, а сколько факт получения ответа.
То есть связность то с локалкой есть, там же directly connected network, а вот обратные пакеты застревает.
Задача тривиальная, чтобы её скрасить посмотри tcpdump на клиенте

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

Не похоже, если вбивать внешний ip с внешней сети, то всё работает, равно как и ссх на нестандртном порту, но вот если пытаться коннектиться изнутри сети к чему угодно из этой сети - не пашет, более того даже с клиента попытка подключения через внешний ip к нему же приводит к печальному результату, т.е.:

smt@smt-pc ~ $ wget PRIVATE
--2015-11-16 18:55:53--  http://PRIVATE/
Подключение к PRIVATE... ошибка: В соединении отказано.

smt@smt-pc ~ $ ssh root@remote-host
# wget PRIVATE
--2015-11-16 18:58:43--  http://PRIVATE/
Connecting to PRIVATE... connected.
HTTP request sent, awaiting response... 404 Not Found
2015-11-16 18:58:43 ERROR 404: Not Found.

P.S. Да, 404 в данном случае - правильный ответ

smt
() автор топика
Ответ на: комментарий от zolden

tcpdump не помог, пакеты теряются где-то раньше

smt
() автор топика
Ответ на: комментарий от voltmod
smt-server ~ # ip route show 
default via PRIVATE dev enp4s0  metric 204 
169.254.0.0/16 dev enp4s1  proto kernel  scope link  src 169.254.151.102  metric 205 
172.17.0.0/16 dev docker0  proto kernel  scope link  src 172.17.0.1 linkdown 
PRIVATE/24 dev enp4s0  proto kernel  scope link  src PRIVATE  metric 204 
192.168.0.0/24 dev enp4s1  proto kernel  scope link  src 192.168.0.1

smt-server ~ # ip link show 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp4s2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:80:48:28:1e:57 brd ff:ff:ff:ff:ff:ff
3: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
    link/ether 50:e5:49:e4:43:4d brd ff:ff:ff:ff:ff:ff
4: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:13:d3:9a:af:33 brd ff:ff:ff:ff:ff:ff
5: enp4s1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether e8:cc:18:e8:c6:90 brd ff:ff:ff:ff:ff:ff
6: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default 
    link/sit 0.0.0.0 brd 0.0.0.0
7: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
    link/ether 02:42:16:6c:f2:cf brd ff:ff:ff:ff:ff:ff

smt-server ~ # ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp4s2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 00:80:48:28:1e:57 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::91f4:69a4:2375:9e71/64 scope link tentative 
       valid_lft forever preferred_lft forever
3: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 50:e5:49:e4:43:4d brd ff:ff:ff:ff:ff:ff
    inet6 fe80::59e:56ea:7de3:cd5e/64 scope link tentative 
       valid_lft forever preferred_lft forever
4: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:13:d3:9a:af:33 brd ff:ff:ff:ff:ff:ff
    inet PRIVATE/24 brd PRIVATE scope global enp4s0
       valid_lft forever preferred_lft forever
    inet6 fe80::5c50:880a:b7ba:7b38/64 scope link 
       valid_lft forever preferred_lft forever
5: enp4s1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether e8:cc:18:e8:c6:90 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 scope global enp4s1
       valid_lft forever preferred_lft forever
    inet 169.254.151.102/16 brd 169.254.255.255 scope global enp4s1
       valid_lft forever preferred_lft forever
    inet6 fe80::f987:2ed0:61ed:ddaf/64 scope link 
       valid_lft forever preferred_lft forever
6: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default 
    link/sit 0.0.0.0 brd 0.0.0.0
7: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:16:6c:f2:cf brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::ee83:8058:deee:dd8c/64 scope link 
       valid_lft forever preferred_lft forever

smt
() автор топика
Ответ на: комментарий от voltmod
smt-server mpd # iptables-save 2015
*nat
:PREROUTING ACCEPT [15520:1342671]
:INPUT ACCEPT [2241:304679]
:OUTPUT ACCEPT [257:17491]
:POSTROUTING ACCEPT [53:2820]
:DOCKER - [0:0]
-A PREROUTING -i enp4s0 -p tcp -m tcp --dport 60022 -j DNAT --to-destination 192.168.0.217:22
-A PREROUTING -i enp4s0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.217:80
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT -d PRIVATE/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1
-A POSTROUTING -o enp4s0 -j MASQUERADE
COMMIT
*mangle
:PREROUTING ACCEPT [1504633:1223213241]
:INPUT ACCEPT [493957:587955380]
:FORWARD ACCEPT [1010151:635131839]
:OUTPUT ACCEPT [327979:28063688]
:POSTROUTING ACCEPT [1338126:663195495]
COMMIT
*filter
:INPUT ACCEPT [382969:510299822]
:FORWARD ACCEPT [302:17583]
:OUTPUT ACCEPT [255263:22881845]
:DOCKER - [0:0]
-A FORWARD -s 192.168.0.0/24 -i enp4s1 -o enp4s0 -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i enp4s0 -p tcp -m tcp --dport 60022 -j ACCEPT
COMMIT
smt
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.