Перейти к содержимому
Калькуляторы

Привязка IP-адреса к MAC-адресу

Имеется роутер на Centos7
Прописываю:
arp -s 1.2.3.4 04:D1:69:8D:35:FF -i vlan100

В sysctl.conf:
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

На тестовом устройстве с другим MAC-адресом указываю ip-адрес 1.2.3.4. Получаю доступ к сети. Почему так происходит, я ведь указал статический mac? Почему я с другого мака получаю доступ?

Изменено пользователем tranger

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1.2.3.1 - наш роутер
1.2.3.4 - наш IP
05:C9:55:1E:86:FE - мак роутера

 

14:19:16.660585 ARP, Request who-has 1.2.3.4 tell 0.0.0.0, length 46
14:19:16.905173 ARP, Request who-has 1.2.3.1 tell 1.2.3.4, length 46
14:19:16.905198 ARP, Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE (oui Unknown), length 28
14:19:17.658867 ARP, Request who-has 1.2.3.4 tell 0.0.0.0, length 46
14:19:18.657202 ARP, Request who-has 1.2.3.4 tell 0.0.0.0, length 46
14:19:19.655526 ARP, Request who-has 1.2.3.4 tell 1.2.3.4, length 46
14:19:19.808556 ARP, Request who-has 1.2.3.1 tell 1.2.3.4, length 46
14:19:19.808574 ARP, Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE (oui Unknown), length 28
14:19:20.373830 ARP, Request who-has 1.2.3.1 tell 1.2.3.4, length 46
14:19:20.373860 ARP, Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE (oui Unknown), length 28
14:19:22.515048 ARP, Request who-has 1.2.3.1 tell 1.2.3.4, length 46
14:19:22.515063 ARP, Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE (oui Unknown), length 28
14:19:22.560357 ARP, Request who-has 1.2.3.1 tell 1.2.3.4, length 46
14:19:22.560372 ARP, Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE (oui Unknown), length 28
14:19:23.129135 ARP, Request who-has 1.2.3.1 tell 1.2.3.4, length 46
14:19:23.129156 ARP, Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE (oui Unknown), length 28
14:19:23.424724 ARP, Request who-has 1.2.3.1 tell 1.2.3.4, length 46
14:19:23.424744 ARP, Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE (oui Unknown), length 28
14:19:27.209361 ARP, Request who-has 1.2.3.1 tell 1.2.3.4, length 46
14:19:27.209379 ARP, Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE (oui Unknown), length 28


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну у вас что происходит? В таблицу эта запись становится или что? Вы смотрели трафик, который с тестового устройства идет? Он точно с этого ИПа летит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В таблицу запись становится:
1.2.3.4             ether   04:d1:69:8d:35:ff   CM                    vlan100
Трафик летит точно с указанного IP-адреса.
Как втыкаю кабель в тестовое устройство, tcpdump показывает то что я выше опубликовал, дальше летит трафик во внешку
И ещё когда тестовое устройство втыкаю с прописанным IP-адресом, в arp таблице я не вижу МАКа этого устройства. Арп таблица показывает прописанный руками мак.
Я уже со всеми параметрами игрался arp_ignore, arp_announce, rp_filter - нифига не помогает
Поэтому и написал на форум, может кто-то с подобным встречался.
Точно могу сказать, что год назад всё работало. Но за этот год никаких изменений не делали (кроме обновления пакетов yum update). У сервера аптайм 558 дней. Хрен знает, может ребутнуть его :-) (Ребутнуть смогу только ночью, много абонентов работает...)

Изменено пользователем tranger

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

4 часа назад, tranger сказал:

На тестовом устройстве с другим MAC-адресом указываю ip-адрес 1.2.3.4. Получаю доступ к сети. Почему так происходит, я ведь указал статический mac? Почему я с другого мака получаю доступ?

Что вы хотите сделать?

 

4 часа назад, tranger сказал:

1.2.3.1 - наш роутер
1.2.3.4 - наш IP
05:C9:55:1E:86:FE - мак роутера

tcpdump -e -n ...

то что у вас - без мак адресов, на половину бесполезно для понимания.

 

2 часа назад, tranger сказал:

rp_filter

Вообще из другой оперы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3 часа назад, Ivan_83 сказал:

Что вы хотите сделать?

Хочу чтобы при подмене IP-адреса у абонента не было доступа к сети, так как на роутере был указан статический MAC-адрес

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

13 hours ago, tranger said:

В таблицу запись становится:
1.2.3.4             ether   04:d1:69:8d:35:ff   CM                    vlan100
Трафик летит точно с указанного IP-адреса.
Как втыкаю кабель в тестовое устройство, tcpdump показывает то что я выше опубликовал, дальше летит трафик во внешку
И ещё когда тестовое устройство втыкаю с прописанным IP-адресом, в arp таблице я не вижу МАКа этого устройства. Арп таблица показывает прописанный руками мак.
Я уже со всеми параметрами игрался arp_ignore, arp_announce, rp_filter - нифига не помогает
Поэтому и написал на форум, может кто-то с подобным встречался.
Точно могу сказать, что год назад всё работало. Но за этот год никаких изменений не делали (кроме обновления пакетов yum update). У сервера аптайм 558 дней. Хрен знает, может ребутнуть его :-) (Ребутнуть смогу только ночью, много абонентов работает...)

 

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

 

08:52:40.005566 52:54:00:86:48:62 > 8e:12:8e:d5:9c:21, ethertype IPv4 (0x0800), length 98: 172.20.0.3 > 8.8.8.8: ICMP echo request, id 15999, seq 1, length 64
08:52:40.080633 8e:12:8e:d5:9c:21 > 52:54:00:86:48:61, ethertype IPv4 (0x0800), length 98: 8.8.8.8 > 172.20.0.3: ICMP echo reply, id 15999, seq 1, length 64


На клиенте при этом естественно 100% потерь

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3 часа назад, orlik сказал:

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

 


08:52:40.005566 52:54:00:86:48:62 > 8e:12:8e:d5:9c:21, ethertype IPv4 (0x0800), length 98: 172.20.0.3 > 8.8.8.8: ICMP echo request, id 15999, seq 1, length 64
08:52:40.080633 8e:12:8e:d5:9c:21 > 52:54:00:86:48:61, ethertype IPv4 (0x0800), length 98: 8.8.8.8 > 172.20.0.3: ICMP echo reply, id 15999, seq 1, length 64


На клиенте при этом естественно 100% потерь

На тестовом сервере всё отлично работает, на тестовом устройстве 100% потерь. Не могу понять в чём же дело... Ребут не помог :-)
Вот ещё раз tcpdump:
1.2.3.1 - наш роутер
1.2.3.4 - наш IP
04:D1:69:8D:35:FF - прописанный мак в арп (arp -s 1.2.3.4 04:D1:69:8D:35:FF -i vlan100)
05:C9:55:1E:86:FE - мак роутера
00:24:54:ca:b0:ba - мак тестового устройства

08:27:36.184409 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.1 tell 1.2.3.4, length 46
08:27:36.184422 05:C9:55:1E:86:FE > 00:24:54:ca:b0:ba, ethertype ARP (0x0806), length 42: Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE, length 28
08:27:36.258096 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.4 tell 0.0.0.0, length 46
08:27:37.256555 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.4 tell 0.0.0.0, length 46
08:27:38.255076 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.4 tell 0.0.0.0, length 46
08:27:39.253271 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.4 tell 1.2.3.4, length 46
08:27:39.762783 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.1 tell 1.2.3.4, length 46
08:27:39.762795 05:C9:55:1E:86:FE > 00:24:54:ca:b0:ba, ethertype ARP (0x0806), length 42: Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE, length 28
08:27:40.372230 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.1 tell 1.2.3.4, length 46
08:27:40.372242 05:C9:55:1E:86:FE > 00:24:54:ca:b0:ba, ethertype ARP (0x0806), length 42: Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE, length 28
08:27:42.372671 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.1 tell 1.2.3.4, length 46
08:27:42.372683 05:C9:55:1E:86:FE > 00:24:54:ca:b0:ba, ethertype ARP (0x0806), length 42: Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE, length 28
08:27:42.936064 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.1 tell 1.2.3.4, length 46
08:27:42.936076 05:C9:55:1E:86:FE > 00:24:54:ca:b0:ba, ethertype ARP (0x0806), length 42: Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE, length 28
08:27:43.047876 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.1 tell 1.2.3.4, length 46
08:27:43.047889 05:C9:55:1E:86:FE > 00:24:54:ca:b0:ba, ethertype ARP (0x0806), length 42: Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE, length 28
08:27:36.184409 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.1 tell 1.2.3.4, length 46
08:27:36.184422 05:C9:55:1E:86:FE > 00:24:54:ca:b0:ba, ethertype ARP (0x0806), length 42: Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE, length 28
08:27:36.258096 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.4 tell 0.0.0.0, length 46
08:27:37.256555 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.4 tell 0.0.0.0, length 46
08:27:38.255076 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.4 tell 0.0.0.0, length 46
08:27:39.253271 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.4 tell 1.2.3.4, length 46
08:27:39.762783 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.1 tell 1.2.3.4, length 46
08:27:39.762795 05:C9:55:1E:86:FE > 00:24:54:ca:b0:ba, ethertype ARP (0x0806), length 42: Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE, length 28
08:27:40.372230 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.1 tell 1.2.3.4, length 46
08:27:40.372242 05:C9:55:1E:86:FE > 00:24:54:ca:b0:ba, ethertype ARP (0x0806), length 42: Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE, length 28
08:27:42.372671 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.1 tell 1.2.3.4, length 46
08:27:42.372683 05:C9:55:1E:86:FE > 00:24:54:ca:b0:ba, ethertype ARP (0x0806), length 42: Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE, length 28
08:27:42.936064 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.1 tell 1.2.3.4, length 46
08:27:42.936076 05:C9:55:1E:86:FE > 00:24:54:ca:b0:ba, ethertype ARP (0x0806), length 42: Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE, length 28
08:27:43.047876 00:24:54:ca:b0:ba > Broadcast, ethertype ARP (0x0806), length 60: Request who-has 1.2.3.1 tell 1.2.3.4, length 46
08:27:43.047889 05:C9:55:1E:86:FE > 00:24:54:ca:b0:ba, ethertype ARP (0x0806), length 42: Reply 1.2.3.1 is-at 05:C9:55:1E:86:FE, length 28

 

Изменено пользователем tranger

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обмен трафика со внешкой происходит так:
 

05:C9:55:1E:86:FE > 04:D1:69:8D:35:FF
 00:24:54:ca:b0:ba > 05:C9:55:1E:86:FE

Роутер шлёт пакет на статический MAC, который я прописал в arp. Каким-то образом пакет долетает до тестового устройства и ответ следует уже от МАКа самого тестового устройства
Почему пакет уходит на 04:D1:69:8D:35:FF, а реально приходит на 00:24:54:ca:b0:ba?

Изменено пользователем tranger

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Опишу всё ещё раз:
 

В sysctl.conf пишу:

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2


sysctl -p
arp -s 1.2.3.4 04:D1:69:8D:35:FF -i vlan100

 

Если я воткну в сеть ноут с маком 00:24:54:ca:b0:ba и пропишу ip 1.2.3.4, я не должен иметь доступ к сети, пока мой мак не будет таким как я прописывал в arp.

Но нифига подобного, на ноуте есть внешка.
Причём в арп таблице мак ноута 00:24:54:ca:b0:ba не появляется.


tcpdump выдаёт такую картину:
05:C9:55:1E:86:FE > 04:D1:69:8D:35:FF
00:24:54:ca:b0:ba > 05:C9:55:1E:86:FE
05:C9:55:1E:86:FE - это роутер
04:D1:69:8D:35:FF - это мак, который я прописал в arp
00:24:54:ca:b0:ba - это ноут
Получается пакет с роутера летит на прописанный МАК, доходит до ноута с другим МАКом, а потом следует ответ с МАКа ноута на МАК роутера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

11 часов назад, tranger сказал:

Хочу чтобы при подмене IP-адреса у абонента не было доступа к сети, так как на роутере был указан статический MAC-адрес 

Это делается на доступе. Например на длинках это называется

  IP-MAC-Port Binding (IMPB)

 

И вообще не стоит роутер в одной подсети с клиентами ставить. Если это не общажная локалка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, BETEPAH сказал:

Это делается на доступе. Например на длинках это называется

  IP-MAC-Port Binding (IMPB)

 

И вообще не стоит роутер в одной подсети с клиентами ставить. Если это не общажная локалка.

Зачем тогда придумали арп таблицу со статическими адресами?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Каким-то непонятным образом начало работать. Отвлёкся по другим делам, через несколько часов решил продолжить, а всё работает...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 27.02.2020 в 14:48, tranger сказал:

Каким-то непонятным образом начало работать. Отвлёкся по другим делам, через несколько часов решил продолжить, а всё работает...

Может кеш? После прописания нового МАС-а, кеш обнуляли?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 26.02.2020 в 23:47, tranger сказал:

Хочу чтобы при подмене IP-адреса у абонента не было доступа к сети, так как на роутере был указан статический MAC-адрес

802.1x + радиус сервер вам в помощь.

Ваша привязка мака к ip просто смешной и неудобный костыль.

 

В 27.02.2020 в 14:34, tranger сказал:

Зачем тогда придумали арп таблицу со статическими адресами?

Затем что бывает нужно иногда работать без ARP, или бывает что по какой то причине появляется ещё один компутер который анонсит тот же IP а подключится нужно очень сильно к одному конкретному.

А ещё есть юзкейсы когда арп кеш заполняется просто адресами из пролетающих мимо IP пакетов, без статических записей и без арп запросов.

 

Что касается ваших развлечений, то если какой то хост получает пакет с не его MAC адресом то не обязательно он его будет отбрасывать. И коммутатор тоже может слать пакеты или во все порты или в тот единственный где ещё есть линк, что в итоге и ломает вашу схему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

802.1x + радиус сервер вам в помощь.

Тоже костыльно и геморройно.

"Вилан на юзера" лучше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Лучше, но тут похоже синдром вахтёра, с вланом будет не так интересно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.