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

Подскажите по форвардингу трафика.. не пойму

 ,


0

2

Всем привет! Может я туплю, но не пойму почему не работает. Клиент имеет адрес 192.168.2.21, default gw для него - шлюз с адресом 192.168.2.1. На шлюзе есть второй интерфейс с адресом 192.168.0.2, а дефолтный роут шлюза ведет на 192.168.0.1. Форвардинг разрешен, но клиентский трафик дальше шлюза не идет. Пинг от клиента до 192.168.0.1 отсуствует, хотя пинг до второго интерфейса шлюза (192.168.0.2) есть.


Забыл написать, шлюз прекрасно ходит в Итернет через свой default gw.

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

Сейчас скатаюсь на обед и напишу все во всех деталях. Уже всю голову сломал.

gard
() автор топика

Попробуй на клиенте выполнить:

route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.2.1 dev eth1
eth1 - подставь интерфейс через который клиент ходит на шлюз

netmask - тоже поправь если другой

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

Это я погорячился, трафик и так должен туда ходить.Скорее всег онет правила для MASQUERADE или SNAT в IPTABLES.

Если CentOS 6.5, по дефолту он дропает ве что идет через FORWARD.

Funny_sailor
()

а 192.168.0.1 знает о сети 192.168.2.0?

generator ★★★
()

ip a
ip r
ip r g 8.8.8.8
ip r g ip_клиента
iptables-save
sysctl net.ipv4.ip_forward

zolden ★★★★★
()

Итак, описываю схему. Клиент через vlan коммутатор получает адрес и dns от dhcp на шлюзе. Шлюз в свою очередь пока что подключен к моему компьютеру. Шлюз только настраивается, потому стоит у меня в кабинете и Интернет для него обеспечивается моим ПК.

Настройки на клиенте:

ip address 192.168.3.2/24
gefault gw 192.168.3.1
dns 192.168.3.1

Список интерфейсов ня шлюзе (на клиента свотрит интерфейс vlan102):

root@gw:~# ip a l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: wan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 9c:b6:54:bb:aa:8c brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.2/24 brd 192.168.0.255 scope global wan
    inet6 fe80::9eb6:54ff:febb:aa8c/64 scope link 
       valid_lft forever preferred_lft forever
3: crp: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 9c:b6:54:bb:aa:8d brd ff:ff:ff:ff:ff:ff
    inet 172.16.10.2/24 brd 172.16.10.255 scope global crp
4: lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:15:17:de:21:00 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::215:17ff:fede:2100/64 scope link 
       valid_lft forever preferred_lft forever
5: if4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:15:17:de:21:01 brd ff:ff:ff:ff:ff:ff
10: vlan101@lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 00:15:17:de:21:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.1/24 brd 192.168.2.255 scope global vlan101
    inet6 fe80::215:17ff:fede:2100/64 scope link 
       valid_lft forever preferred_lft forever
11: vlan102@lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 00:15:17:de:21:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.1/24 brd 192.168.3.255 scope global vlan102
    inet6 fe80::215:17ff:fede:2100/64 scope link 
       valid_lft forever preferred_lft forever
12: vlan103@lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 00:15:17:de:21:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.4.1/24 brd 192.168.4.255 scope global vlan103
    inet6 fe80::215:17ff:fede:2100/64 scope link 
       valid_lft forever preferred_lft forever

Роуты на шлюзе (дефолтный роут указывает на адрес моего ПК):
root@gw:~# ip r l
default via 192.168.0.1 dev wan 
172.16.10.0/24 dev crp  proto kernel  scope link  src 172.16.10.2 
192.168.0.0/24 dev wan  proto kernel  scope link  src 192.168.0.2 
192.168.2.0/24 dev vlan101  proto kernel  scope link  src 192.168.2.1 
192.168.3.0/24 dev vlan102  proto kernel  scope link  src 192.168.3.1 
192.168.4.0/24 dev vlan103  proto kernel  scope link  src 192.168.4.1 
Форвардинг на шлюзе также разрешен:
root@gw:~# cat /proc/sys/net/ipv4/ip_forward 
1
Интерфейсы на моем ПК (en2s0 смотрит на шлюз, eno1 - во внутреннюю сеть с Инетом):
[root@tux ~]# ip a l
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: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0a:5e:44:54:f0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 brd 192.168.0.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet6 fe80::20a:5eff:fe44:54f0/64 scope link 
       valid_lft forever preferred_lft forever
3: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 70:71:bc:0b:ca:11 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.10/24 brd 192.168.2.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::7271:bcff:fe0b:ca11/64 scope link 
       valid_lft forever preferred_lft forever
    inet6 fe80::2dab:5694:31f3:a5a1/64 scope link 
       valid_lft forever preferred_lft forever
Роуты на моем ПК:
[root@tux ~]# ip r l
default via 192.168.2.1 dev eno1  metric 203 
192.168.0.0/24 dev enp2s0  proto kernel  scope link  src 192.168.0.1 
192.168.2.0/24 dev eno1  proto kernel  scope link  src 192.168.2.10  metric 203 

Мой ПК дает шлюзу инет через маскарадинг:

[root@tux ~]# cat enp2so 
#!/bin/bash
ifconfig enp2s0 192.168.0.1 up
iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

И на шлюзе и на моем компьютере в iptables пока что везде ACCEPT.

Если к примеру попробовать открыть в браузере клиента яндекс, то я на своем ПК вижу на интерфейсе такое:

[root@tux ~]# tcpdump -i enp2s0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp2s0, link-type EN10MB (Ethernet), capture size 65535 bytes
13:24:03.066938 IP 192.168.0.2.53526 > google-public-dns-a.google.com.domain: 48405+% [1au] A? www.yandex.ru. (42)
13:24:03.120586 IP google-public-dns-a.google.com.domain > 192.168.0.2.53526: 48405 3/0/1 A 213.180.204.3, A 93.158.134.3, A 213.180.193.3 (90)
13:24:03.121245 IP 192.168.0.2.18913 > google-public-dns-b.google.com.domain: 38662+% [1au] DS? yandex.ru. (38)
13:24:03.168012 IP google-public-dns-b.google.com.domain > 192.168.0.2.18913: 38662 0/6/1 (748)
13:24:03.170632 IP 192.168.3.2.50242 > www.yandex.ru.http: Flags [S], seq 2984461203, win 8192, options [mss 1460,nop,nop,sackOK], length 0
13:24:03.425314 IP 192.168.3.2.50243 > www.yandex.ru.http: Flags [S], seq 3396239338, win 8192, options [mss 1460,nop,nop,sackOK], length 0
13:24:06.184578 IP 192.168.3.2.50242 > www.yandex.ru.http: Flags [S], seq 2984461203, win 8192, options [mss 1460,nop,nop,sackOK], length 0
13:24:06.434138 IP 192.168.3.2.50243 > www.yandex.ru.http: Flags [S], seq 3396239338, win 8192, options [mss 1460,nop,nop,sackOK], length 0
^C
8 packets captured
8 packets received by filter
0 packets dropped by kernel
[root@tux ~]# 

То есть попытки есть, но почему трафик не уходит через маскарадинг не пойму. Шлюз через мой комп в Инет ходит преспокойно.

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

Я настраиваю просто роутингом до своего ПК, на нем уже делается маскарадинг, а дальше для моего ПК делает маскарадинг рабочий шлюз сети (который будет меняться на тот, что я настраиваю). Так что пока выходит двойной нат.

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

Пакеты почему то имеют длину 0, я не силен в tcpdump, но может быть дело в этом.. ничего не понимаю..

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

Добавил роут, пинга нет (

[root@tux ~]# ip route add 192.168.3.2 via 192.168.0.2 dev enp2s0
[root@tux ~]# ping 192.168.3.2
PING 192.168.3.2 (192.168.3.2) 56(84) bytes of data.
^C
--- 192.168.3.2 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2008ms

Пинг до 192.168.0.2 есть.

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

Там уже оказывается сеть 192.168.3.0/24

Ага, теперь дочитал. :-)

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

Блин, ошибся, заработало с роутом! Тту еще dhcp отвалился и потому была тишина, а я и не заметил. Сейчас вроде все работает. Хмм.. Получается в каждую клиентскую подсеть нужно будет прописать обратный роут от ПК, чтобы оно все работало?

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

Получается в каждую клиентскую подсеть нужно будет прописать обратный роут от ПК, чтобы оно все работало?

Конечно, иначе откуда же он будет знать, куда слать ответы? Ну или как вариант, настрой SNAT на шлюзе (192.168.0.2).

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

До этого всегда использовал только SNAT или MASQUERADE и заваился на простом )) Я то думал оно само «автоматически» путь назад найдет :D

Спасибо большое!

SNAT настраивать или нет - пока еще думаю. С ним получится двойной NAT, потому что в будущем мой ПК будет заменет микротиком, который будет подымать 2 PPPoE-коннекта и делать маскарадинг.

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

Я то думал оно само «автоматически» путь назад найдет :D

Найдёт, если задействовать протоколы динамической маршрутизации между роутерами. OSPF/RIP/разное: http://www.nongnu.org/quagga/

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

Кстати, на самом деле, как выше написал AS, посмотри на quagga (ospf, например). Её настроить дело получаса, но потом проблем с маршрутизацией не будет.

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

Да, нужно будет посмотреть. Спасибо всем!

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