Jump to content
Калькуляторы

зеркалировать radius трафик

для сорм нужно зеркалировать радиус трафик, радиус с nas на одной машине

пробую сделать

ipfw tee 1234 udp from any to any 1812,1813 via lo0

потом смотрю

tcpdump -i lo0 port 1234

там пусто

 

что не так ?

Share this post


Link to post
Share on other sites

то что они на одной машине не говорит ничего о том что они через lo0 бегают

tcpdump сначала на lo0 радиус смотрите

Share this post


Link to post
Share on other sites

В PF dup вроде правила называются, у меня работало.

Share this post


Link to post
Share on other sites
10 часов назад, paradox_ сказал:

то что они на одной машине не говорит ничего о том что они через lo0 бегают

tcpdump сначала на lo0 радиус смотрите

есть, на lo0 tcpdump вижу трафик, а tee не срабатывает ?!

 tcpdump -i lo0 -n dst port 1812
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo0, link-type NULL (BSD loopback), capture size 65535 bytes
capability mode sandbox enabled
10:39:53.199792 IP 127.0.0.1.27763 > 127.0.0.1.1812: RADIUS, Access Request (1), id: 0xca length: 298
10:40:00.986692 IP 127.0.0.1.27768 > 127.0.0.1.1812: RADIUS, Access Request (1), id: 0x99 length: 301
10:40:08.538783 IP 127.0.0.1.27772 > 127.0.0.1.1812: RADIUS, Access Request (1), id: 0x97 length: 302
10:40:08.858557 IP 127.0.0.1.27773 > 127.0.0.1.1812: RADIUS, Access Request (1), id: 0x0f length: 300

 

9 часов назад, Ivan_83 сказал:

В PF dup вроде правила называются, у меня работало.

ipfw стоит, всего одно правило добавляю, в инете такие решения видел, только не понятно почему у меня не отрабатывает

ipfw sh 5
ipfw: DEPRECATED: 'sh' matched 'show' as a sub-string
00005            4           1310 tee 1234 udp from any to any dst-port 1812 via lo0
tcpdump -i lo0 -n port 1234
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo0, link-type NULL (BSD loopback), capture size 65535 bytes
capability mode sandbox enabled
^C
0 packets captured
24 packets received by filter
0 packets dropped by kernel

 

Share this post


Link to post
Share on other sites

pass in quick on ng0 dup-to (vlan777 172.16.0.3) to 255.255.255.255
pass in quick on vlan777 dup-to (ng0 172.16.0.119) to 255.255.255.255

Я вот так вот когда то "проксировал" броадкасты от впн юзера чтобы игрушка работала.

Ещё можно матчить ng_bpf прицепленом к ng_ether, потом ng_one2many и ng_patch менять адрес, но это не так тривиально как PF.

Share this post


Link to post
Share on other sites
1 час назад, paradox_ сказал:

вспомнил оно в диверт сокет пишет

так что просто tee не отправить

 

https://ru-root.livejournal.com/2875833.html

как вариант

 

это я читал, не хочется с ng нодами заморачиваться, но похоже придется

Цитата

tee port Send a copy of packets matching this rule to the divert(4) socket bound to port port. The search continues with the next rule.

те divert(4) socket на определенном порту, так ?!

 

а вообще у radius есть модуль rlm_replicate который копирует пакеты ААА на удаленный хост, но примеров реализации не нашел

 

 

Share this post


Link to post
Share on other sites

ipfw tee 1234 udp from any to any 1812 via lo0

ipfw tee 1235 udp from any to any 1813 via lo0

/sbin/natd -p 1234 -s -redirect_port udp 1.2.3.4:1812 1812

/sbin/natd -p 1235 -s -redirect_port udp 1.2.3.4:1813 1813

 

или с одним правилом но с redirect_address поиграться

была помоему такая опция в natd

Edited by paradox_

Share this post


Link to post
Share on other sites
1 час назад, paradox_ сказал:

ipfw tee 1234 udp from any to any 1812 via lo0

ipfw tee 1235 udp from any to any 1813 via lo0

/sbin/natd -p 1234 -s -redirect_port udp 1.2.3.4:1812 1812

/sbin/natd -p 1235 -s -redirect_port udp 1.2.3.4:1813 1813

 

или с одним правилом но с redirect_address поиграться

была помоему такая опция в natd

 

 natd -p 1234 -a 1.1.1.1 -s -redirect_port udp 1.1.1.2:1812 1812

приводит к заворачиванию этих пакетов на локалхост и дублированию

 tcpdump -i lo0 -n dst port 1812
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo0, link-type NULL (BSD loopback), capture size 65535 bytes
capability mode sandbox enabled
14:41:54.537007 IP 127.0.0.1.39906 > 127.0.0.1.1812: RADIUS, Access Request (1), id: 0x2d length: 304
14:41:54.537037 IP 1.1.1.1.39906 > 127.0.0.1.1812: RADIUS, Access Request (1), id: 0x2d length: 304

14:42:01.445812 IP 127.0.0.1.39913 > 127.0.0.1.1812: RADIUS, Access Request (1), id: 0x43 length: 303
14:42:01.445841 IP 1.1.1.1.39913 > 127.0.0.1.1812: RADIUS, Access Request (1), id: 0x43 length: 303

14:42:01.695776 IP 127.0.0.1.39914 > 127.0.0.1.1812: RADIUS, Access Request (1), id: 0xb5 length: 300
14:42:01.695805 IP 1.1.1.1.39914 > 127.0.0.1.1812: RADIUS, Access Request (1), id: 0xb5 length: 300

 

Share this post


Link to post
Share on other sites

цитировать то меня зачем я ж не трамп

опцию для natd -n имя интерфейса добавите

что бы он туда трафик заворачивал

вы как будто вчера админом стали, я ж надеюсь давая подсказки что вы остальное додумаете

Share this post


Link to post
Share on other sites

natd - лет ... дцать не использовал, реальные ипы были, да и до этого натили другими средствами :)

 

тоже самое, заворачивает не подменяет адрес назначения на 1.6.8.254

 natd -p 1234 -v -s -redirect_port udp 1.6.8.254:1812 1812 -n vlan77 
natd[92787]: Aliasing to 1.6.8.251, mtu 1500 bytes

Out {default}[UDP]  [UDP] 127.0.0.1:40827 -> 127.0.0.1:1812 aliased to
           [UDP] 1.6.8.251:40827 -> 127.0.0.1:1812
In  {default}[UDP]  [UDP] 127.0.0.1:40827 -> 127.0.0.1:1812 aliased to
           [UDP] 127.0.0.1:40827 -> 127.0.0.1:1812
In  {default}[UDP]  [UDP] 1.6.8.251:40827 -> 127.0.0.1:1812 aliased to
           [UDP] 1.6.8.251:40827 -> 127.0.0.1:1812

Out {default}[UDP]  [UDP] 127.0.0.1:40834 -> 127.0.0.1:1812 aliased to
           [UDP] 1.6.8.251:40834 -> 127.0.0.1:1812
In  {default}[UDP]  [UDP] 127.0.0.1:40834 -> 127.0.0.1:1812 aliased to
           [UDP] 127.0.0.1:40834 -> 127.0.0.1:1812
In  {default}[UDP]  [UDP] 1.6.8.251:40834 -> 127.0.0.1:1812 aliased to
           [UDP] 1.6.8.251:40834 -> 127.0.0.1:1812

 

Share this post


Link to post
Share on other sites

попробуйте redirect_address

или

-t    | -target_address address

man natd

Edited by paradox_

Share this post


Link to post
Share on other sites
1 час назад, paradox_ сказал:

попробуйте redirect_address

или

-t    | -target_address address

man natd

 

redirect_address не подходит по принципу работы, это же весь трафик пересылается

Цитата

-redirect_address localIP publicIP

Перенаправить трафик с публичного (реального) IP-адреса на хост с частным IP-адресом в локальной сети. Эта функция известна как статический NAT.

с -t получилось по пакетам, вижу правильные пакеты, но до удаленного хоста они не доодят, там их нет 

Share this post


Link to post
Share on other sites

ну правильно, по идеи redirect_address можно будет забрать сразу все с tee сокета в одном правиле и перебить айпи

 

тсп дамп на исходящем интерфейсе надо смотреть что там не так с уходящими пакетами

а то может они уже фаером мочатся

Share this post


Link to post
Share on other sites
 natd -p 1234 -s -redirect_address 1.6.8.251 1.6.8.254 -n vlan77 -v -t 1.6.8.254
natd[93375]: Aliasing to 1.6.8.251, mtu 1500 bytes

Out {default}[UDP]  [UDP] 127.0.0.1:46466 -> 127.0.0.1:1812 aliased to
           [UDP] 1.6.8.251:46466 -> 127.0.0.1:1812
In  {default}[UDP]  [UDP] 127.0.0.1:46466 -> 127.0.0.1:1812 aliased to
           [UDP] 127.0.0.1:46466 -> 1.6.8.254:1812
In  {default}[UDP]  [UDP] 1.6.8.251:46466 -> 127.0.0.1:1812 aliased to
           [UDP] 1.6.8.251:46466 -> 1.6.8.254:1812

Out {default}[UDP]  [UDP] 127.0.0.1:46467 -> 127.0.0.1:1812 aliased to
           [UDP] 1.6.8.251:46467 -> 127.0.0.1:1812
In  {default}[UDP]  [UDP] 127.0.0.1:46467 -> 127.0.0.1:1812 aliased to
           [UDP] 127.0.0.1:46467 -> 1.6.8.254:1812
In  {default}[UDP]  [UDP] 178.16.88.251:46467 -> 127.0.0.1:1812 aliased to
           [UDP] 1.6.8.251:46467 -> 1.6.8.254:1812

пакеты формируются аналогично, только после natd они не попадают в ipfw 

 

 ipfw show 6
00006            0              0 allow udp from 1.6.8.251 to 1.6.8.254 dst-port 1812 via vlan77

 

Share this post


Link to post
Share on other sites

ну судя по логу уже айпи переписывается, что не так ?

вы ipfw целиком показывайте а не кусками

насколько я помню после диверта или тии правила начинают свою цепочку сначала

ну так в tcpdump видно что с интерфейса уходят ?

Share this post


Link to post
Share on other sites
4 часа назад, paradox_ сказал:

ну судя по логу уже айпи переписывается, что не так ?

лог natd правильный, только на выходе интерфейса vlan77 пусто

начало правил выложил полностью

вначале tee, затем разрешаю выход из интерфейса vlan77

 

ipfw sh 5
00005          102           33616 tee 1234 udp from any to any dst-port 1812 via lo0
00006            0               0 allow ip from 1.6.8.251 to 1.6.8.254 dst-port 1812 via vlan77

 

Share this post


Link to post
Share on other sites

Может проще это на коммутаторе сделать, в который нас включен?

Share this post


Link to post
Share on other sites
4 часа назад, Sacrament сказал:

Может проще это на коммутаторе сделать, в который нас включен?

nas и radius на одной машине, запросы не выходят за интерфейс :(

Share this post


Link to post
Share on other sites

Был какой-то репитер для UDP-трафика, его еще NetUP рекомендовал для дублирования трафика с сенсоров.

И не надо мучать фаервол.

Share this post


Link to post
Share on other sites
В 11.12.2018 в 17:54, Mechanic сказал:

 natd -p 1234 -a 1.1.1.1 -s -redirect_port udp 1.1.1.2:1812 1812

приводит к заворачиванию этих пакетов на локалхост и дублированию

Попробуйте добавить после tee

ipfw add fwd 1.6.8.254 ip from any to any diverted

Share this post


Link to post
Share on other sites

так 1.6.8.254 -это удаленная машина, а fwd работает в пределах локальной ?!

Share this post


Link to post
Share on other sites
17 часов назад, Mechanic сказал:

так 1.6.8.254 -это удаленная машина, а fwd работает в пределах локальной ?!

 If ipaddr is not a local address, then the port number (if speci-
 fied) is ignored, and the packet will be forwarded to the remote
 address, using the route as found in the local routing table for
 that IP.

 

Share this post


Link to post
Share on other sites
8 часов назад, DDR сказал:

 If ipaddr is not a local address, then the port number (if speci-
 fied) is ignored, and the packet will be forwarded to the remote
 address, using the route as found in the local routing table for
 that IP.

 

При этом IP пакет не меняется.. т.е DST IP остается старый.. это для разруливания маршрутизации, аля соурс базед рутинг подходит.. т.е. там, куда оно сфорвардимлось должны знать, что делать с пакетом, а не запулить его обратно по таблице маршгрутизации.

Share this post


Link to post
Share on other sites

там все должно работать на tee + natd

просто автор разробраться в тонкостях не хочет

не работать оно не может а иначе бы нат на divert+natd не работал в бсд

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this