src addr в DHCP-ответе

IPoE related questions
mr.Scamp
Posts: 10
Joined: 29 Nov 2014, 20:50

Re: src addr в DHCP-ответе

Post by mr.Scamp »

Потестил на одном конкретно взятом клиенте.
Адрес клиента 193.106.147.1, адрес шлюза его - 193.106.147.62.
dump.pcap.zip
(584 Bytes) Downloaded 116 times
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: src addr в DHCP-ответе

Post by Dmitry »

вижу что что-то не так
но я не понимаю почему пакеты идут с другого ип, когда существует конкретный маршрут с конкретным src
User avatar
Абрамчук Вадим
Posts: 75
Joined: 21 Oct 2014, 20:15

Re: src addr в DHCP-ответе

Post by Абрамчук Вадим »

mr.Scamp,
accel-ppp в этом случае никак не управляет адресом отправителя. Пакет отправляется системной функцией, адрес подставляет ОС.
Какой дистрибутив? Можно дамп iptables-save?

Dmitry,
в dhcpv4.c в ф-ции dhcpv4_send_udp есть такое:

Code: Select all

	n = sendto(serv->hnd.fd, pack->data, len, 0, (struct sockaddr *)&addr, sizeof(addr));
Как я понимаю, ответ отправляется в тот же сокет, из которого пришел запрос? Тогда да - если почему-то пришло на внешний интерфейс, то и ответ будет отправляет с src внешнего интерфейса. Хотя пакет и улетит через внутренний.
Может, у человека запросы не туда приходят?
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: src addr в DHCP-ответе

Post by Dmitry »

да, возможно тут собака порылась...
mr.Scamp
Posts: 10
Joined: 29 Nov 2014, 20:50

Re: src addr в DHCP-ответе

Post by mr.Scamp »

ОС - Debian 7.7 x64_32, ядро 3.2.63-2+deb7u1
Раньше работало правильно при том же конфиге иптейблс.

Code: Select all

# Generated by iptables-save v1.4.14 on Thu Dec  4 13:02:13 2014
*nat
:PREROUTING ACCEPT [6858:580433]
:INPUT ACCEPT [45:11887]
:OUTPUT ACCEPT [38:10493]
:POSTROUTING ACCEPT [8124:772497]
:L4RDR - [0:0]
:NAT_10 - [0:0]
:NAT_L4RDR - [0:0]
-A PREROUTING -m set --match-set guest-ipoe src -j L4RDR
-A PREROUTING -j DNETMAP --reuse 0  --ttl -1
-A POSTROUTING -s 10.0.0.0/9 -j NAT_10
-A POSTROUTING -s 10.255.0.0/16 -j NAT_L4RDR
-A L4RDR -m set --match-set no-redirect dst -j RETURN
-A L4RDR -p tcp -j REDIRECT --to-ports 8001
-A NAT_10 -m set --match-set no-nat dst -j RETURN
-A NAT_10 -j DNETMAP --prefix 193.106.145.0/24 --reuse 0
-A NAT_10 -j DNETMAP --prefix 193.106.146.0/24 --reuse 0
-A NAT_10 -j SNAT --to-source 193.106.147.240-193.106.147.247 --persistent
-A NAT_L4RDR -m set --match-set no-nat dst -j RETURN
-A NAT_L4RDR -m set --match-set no-redirect dst -j SNAT --to-source 193.106.147.240-193.106.147.247 --persistent
COMMIT
# Completed on Thu Dec  4 13:02:13 2014
# Generated by iptables-save v1.4.14 on Thu Dec  4 13:02:13 2014
*filter
:INPUT ACCEPT [22720279:2060325735]
:FORWARD ACCEPT [14572948188:13360872116093]
:OUTPUT ACCEPT [20581235:1867072593]
:L4RDR - [0:0]
-A FORWARD -s 10.0.0.0/8 -p tcp -m tcp --dport 25 -j DROP
-A FORWARD -m set --match-set guest-ipoe src -j L4RDR
-A L4RDR -m set --match-set no-redirect dst -j RETURN
-A L4RDR -j DROP
COMMIT
# Completed on Thu Dec  4 13:02:13 2014
User avatar
Абрамчук Вадим
Posts: 75
Joined: 21 Oct 2014, 20:15

Re: src addr в DHCP-ответе

Post by Абрамчук Вадим »

mr.Scamp,
Ну уже скорее для чистоты эксперимента предлагаю сделать

Code: Select all

iptables -t nat -I PREROUTING -s 193.106.147.1 -j ACCEPT
iptables -t nat -I PREROUTING -d 193.106.147.1 -j ACCEPT
iptables -t nat -I POSTROUTING -s 193.106.147.1 -j ACCEPT
iptables -t nat -I POSTROUTING -d 193.106.147.1 -j ACCEPT
conntrack -F
И проверить этого клиента.
Dmitry
Администратор
Posts: 954
Joined: 09 Oct 2014, 10:06

Re: src addr в DHCP-ответе

Post by Dmitry »

пробуй комит faf40d498c6f519ea24e4063c2e64b8e9581cbbb
mr.Scamp
Posts: 10
Joined: 29 Nov 2014, 20:50

Re: src addr в DHCP-ответе

Post by mr.Scamp »

Спасибо, теперь все работает правильно!
Post Reply