ipfw fwd после обновления

8 views
Skip to first unread message

Evgeny Chevtaev

unread,
Apr 15, 2021, 12:03:01 AM4/15/21
to
Hi All!

Имеется боевая конструкция, которая сломалась после обновления с 12.2 до 13.0,
но для простоты воспроизвёл на свеже установленной 13.0-RELEASE. В сети два
роутера - дефолтный 192.168.1.254 и второй 192.168.1.253, на котором NAT
пробрасывает 80 порт на сервачок. Как водится, надо, чтобы ответы с 80 порта
улетали обратно на 1.253. Сделано было через ipfw fwd и до недавнего времени
работало.

Hастройки прилагаются:

root@localhost:~ # ifconfig em0
em0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500

options=481009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,NOMAP>
ether 00:0c:29:3f:8e:40
inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

root@localhost:~ # netstat -rn
Routing tables

Internet:
Destination Gateway Flags Netif Expire
default 192.168.1.254 UGS em0
127.0.0.1 link#2 UH lo0
192.168.1.0/24 link#1 U em0
192.168.1.3 link#1 UHS lo0

root@localhost:~ # ipfw list
00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00300 deny ip from 127.0.0.0/8 to any
00400 deny ip from any to ::1
00500 deny ip from ::1 to any
00600 allow ipv6-icmp from :: to ff02::/16
00700 allow ipv6-icmp from fe80::/10 to fe80::/10
00800 allow ipv6-icmp from fe80::/10 to ff02::/16
00900 allow ipv6-icmp from any to any icmp6types 1
01000 allow ipv6-icmp from any to any icmp6types 2,135,136
01100 fwd 192.168.1.253 ip4 from me 80 to any
01200 allow ip from any to any via em0
01300 deny log ip from any to any
65535 deny ip from any to any

Если глядеть ipfw show, то счётчики на правиле с fwd увеличиваются, однако
ответы идут всё равно по дефолтному маршруту (tcpdump на 1.254 подтверждает).
Подскажите, куда копать?

With best regards,
Evgeny

Eugene Grosbein

unread,
Apr 15, 2021, 4:53:01 AM4/15/21
to
15 апр. 2021, четверг, в 08:39 NOVT, Evgeny Chevtaev написал(а):

EC> Имеется боевая конструкция, которая сломалась после обновления с 12.2 до
EC> 13.0,
EC> но для простоты воспроизвёл на свеже установленной 13.0-RELEASE. В сети
EC> два
EC> роутера - дефолтный 192.168.1.254 и второй 192.168.1.253, на котором NAT
EC> пробрасывает 80 порт на сервачок. Как водится, надо, чтобы ответы с 80
EC> порта
EC> улетали обратно на 1.253. Сделано было через ipfw fwd и до недавнего
EC> времени
EC> работало.
EC> Hастройки прилагаются:
EC> root@localhost:~ # ifconfig em0
EC> em0: flags=8863<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
EC> options=481009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWFILTER,NOMAP>
EC> ether 00:0c:29:3f:8e:40
EC> inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
EC> media: Ethernet autoselect (1000baseT <full-duplex>)
EC> status: active
EC> nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
EC> root@localhost:~ # netstat -rn
EC> Routing tables
EC> Internet:
EC> Destination Gateway Flags Netif Expire
EC> default 192.168.1.254 UGS em0
EC> 127.0.0.1 link#2 UH lo0
EC> 192.168.1.0/24 link#1 U em0
EC> 192.168.1.3 link#1 UHS lo0

EC> 01100 fwd 192.168.1.253 ip4 from me 80 to any

EC> Если глядеть ipfw show, то счётчики на правиле с fwd увеличиваются, однако
EC> ответы идут всё равно по дефолтному маршруту (tcpdump на 1.254
EC> подтверждает).
EC> Подскажите, куда копать?

Погляди MAC-адреса обоих роутеров в таблице arp -an на сервере
и сравни MAC-адресом назначения, который показывает на самом сервере
команда tcpdump -leni em0 src port 80

Eugene
--
Тестоголовые кислое свое брожение приняли за душу, распарывание чрев
своих - за историю, средства, оттягивающие разложение - за цивилизацию...

Evgeny Chevtaev

unread,
Apr 17, 2021, 7:13:02 AM4/17/21
to
Hi Eugene!

Thursday April 15 2021 15:35, Eugene Grosbein wrote to Evgeny Chevtaev:

EC>> Если глядеть ipfw show, то счётчики на правиле с fwd
EC>> увеличиваются, однако ответы идут всё равно по дефолтному
EC>> маршруту (tcpdump на 1.254 подтверждает). Подскажите, куда
EC>> копать?
EG> Погляди MAC-адреса обоих роутеров в таблице arp -an на сервере
EG> и сравни MAC-адресом назначения, который показывает на самом сервере
EG> команда tcpdump -leni em0 src port 80

? (192.168.1.253) at 12:57:15:2b:f4:26 on em0 expires in 1179 seconds
[ethernet]
? (192.168.1.254) at d4:bf:7f:4b:dc:de on em0 expires in 1163 seconds
[ethernet]

16:02:41.150712 00:0c:29:3f:8e:40 > d4:bf:7f:4b:dc:de, ethertype IPv4 (0x0800),
length 66: 192.168.1.3.80 > 176.226.161.198.51106: Flags [S.], seq 484840515,
ack 2447365265, win 65535, options [mss 1460,nop,wscale 6,sackOK,eol], length 0
16:02:41.407360 00:0c:29:3f:8e:40 > d4:bf:7f:4b:dc:de, ethertype IPv4 (0x0800),
length 66: 192.168.1.3.80 > 176.226.161.198.51107: Flags [S.], seq 1838388530,
ack 2130116312, win 65535, options [mss 1460,nop,wscale 6,sackOK,eol], length 0
16:02:42.160909 00:0c:29:3f:8e:40 > d4:bf:7f:4b:dc:de, ethertype IPv4 (0x0800),
length 66: 192.168.1.3.80 > 176.226.161.198.51106: Flags [S.], seq 484840515,
ack 2447365265, win 65535, options [mss 1460,nop,wscale 6,sackOK,eol], length 0

With best regards,
Evgeny

Eugene Grosbein

unread,
Apr 17, 2021, 10:53:03 PM4/17/21
to
17 апр. 2021, суббота, в 16:06 NOVT, Evgeny Chevtaev написал(а):

EC>>> Если глядеть ipfw show, то счётчики на правиле с fwd
EC>>> увеличиваются, однако ответы идут всё равно по дефолтному
EC>>> маршруту (tcpdump на 1.254 подтверждает). Подскажите, куда
EC>>> копать?
EG>> Погляди MAC-адреса обоих роутеров в таблице arp -an на сервере
EG>> и сравни MAC-адресом назначения, который показывает на самом сервере
EG>> команда tcpdump -leni em0 src port 80
EC> ? (192.168.1.253) at 12:57:15:2b:f4:26 on em0 expires in 1179 seconds
EC> [ethernet]
EC> ? (192.168.1.254) at d4:bf:7f:4b:dc:de on em0 expires in 1163 seconds
EC> [ethernet]
EC> 16:02:41.150712 00:0c:29:3f:8e:40 > d4:bf:7f:4b:dc:de, ethertype IPv4
EC> (0x0800),
EC> length 66: 192.168.1.3.80 > 176.226.161.198.51106: Flags [S.], seq
EC> 484840515,
EC> ack 2447365265, win 65535, options [mss 1460,nop,wscale 6,sackOK,eol],
EC> length 0
EC> 16:02:41.407360 00:0c:29:3f:8e:40 > d4:bf:7f:4b:dc:de, ethertype IPv4
EC> (0x0800),
EC> length 66: 192.168.1.3.80 > 176.226.161.198.51107: Flags [S.], seq
EC> 1838388530,
EC> ack 2130116312, win 65535, options [mss 1460,nop,wscale 6,sackOK,eol],
EC> length 0
EC> 16:02:42.160909 00:0c:29:3f:8e:40 > d4:bf:7f:4b:dc:de, ethertype IPv4
EC> (0x0800),
EC> length 66: 192.168.1.3.80 > 176.226.161.198.51106: Flags [S.], seq
EC> 484840515,
EC> ack 2447365265, win 65535, options [mss 1460,nop,wscale 6,sackOK,eol],
EC> length 0

Сломали опять, значит. Пиши PR и ссылку сюда кинь.

Eugene
--
Устав от радостных пиров,
Hе зная страхов и желаний

Eugene Grosbein

unread,
Apr 4, 2022, 6:01:03 AMApr 4
to
15 апр. 2021, четверг, в 08:39 NOVT, Evgeny Chevtaev написал(а):

EC> Имеется боевая конструкция, которая сломалась после обновления с 12.2 до
EC> 13.0,
EC> но для простоты воспроизвёл на свеже установленной 13.0-RELEASE.

https://reviews.freebsd.org/D34732

Eugene
--
Поэты - страшные люди. У них все святое.

Eugene Grosbein

unread,
Apr 5, 2022, 6:01:03 AMApr 5
to
04 апр. 2022, понедельник, в 15:16 NOVT, Evgeny Chevtaev написал(а):

EC>>> Имеется боевая конструкция, которая сломалась после обновления с
EC>>> 12.2 до 13.0, но для простоты воспроизвёл на свеже установленной
EC>>> 13.0-RELEASE.
EG>> https://reviews.freebsd.org/D34732
EC> То есть, это официально починили? Я на bugs.freebsd.org почитывал, как
EC> пытались
EC> какие-то костыли приспособить, но мне они показались какими-то уж слишком
EC> костыльными.

Ещё не починили, но уже есть официальный патч, который автор ещё должен
прокоммитить, но ты уже можешь приложить его, пересобрать ядро и пользоваться.
Reply all
Reply to author
Forward
0 new messages