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

Головоломка с адресами в сети, как добраться до камеры

 ,


0

1

Доброго времени. Не могу придумать, как решить эту проблему. Есть ус-во с

WiFi модулем (wlp4s0b1) получил адрес 192.168.1.222 со шлюзом 192.168.1.1 Ethernet (enp2s0) Присвоил адрес 192.168.1.223. На интерфейсе висит IP камера, с адресом 192.168.1.10 (сменить адрес нет возможности) Настроил так:

ip r

default via 192.168.1.1 dev wlp4s0b1 proto static metric 600

192.168.1.0/24 dev wlp4s0b1 proto kernel scope link src

192.168.1.222 metric 600

Как мне добраться до адреса 192.168.1.10 на интерфейсе enp2s0, если шлюз 192.168.1.1, а маршрутизатор, для интерфейса wlp4s0b1 выдаёт адрес 192.168.1.222

ip a

2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc

 pfifo_fast state UP group default qlen 1000
 link/ether 60:45:cb:80:c9:1e brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.223/32 brd 192.168.1.255 scope global enp2s0
 valid_lft forever preferred_lft forever
 inet6 fe80::6245:cbff:fe80:c91e/64 scope link
 valid_lft forever preferred_lft forever

3: wlp4s0b1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq

 state UP group default qlen 1000
 link/ether 00:8e:f2:e7:21:9c brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.222/24 brd 192.168.1.255 scope global dynamic *wlp4s0b1
 valid_lft 83613sec preferred_lft 83613sec
 inet6 fe80::22e6:120d:99e6:4f5a/64 scope link
 valid_lft forever preferred_lft forever


Последнее исправление: wedmal (всего исправлений: 29)

Ответ на: комментарий от rumgot

Всему виной перенос строки. Да. Камера 192.168.1.10, подключена к enp2s0 через ethernet. И там и там одинаковая подсеть.

Подключаюсь к роутеру через wlp4s0b1. шлюз 192.168.1.1. для enp2s0 пришлось указать маску 255.255.255.255. и камера, соответственно не работает.

Решил так:

*ifconfig enp2s0 192.168.1.15 netmask 255.255.255.240

После перезагрузки, устройство больше не вышло на связь)

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

А что непонятно-то?

enp2s0 - интерфейс сам в себе, с /32 там ничего работать не должно. Камера беспроводная? Через wlp4s0b1 должна быть доступна, или через провод? Куда подключена?

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

*ifconfig enp2s0 192.168.1.15 netmask 255.255.255.240

А так вообще ничего работать не должно. Меняй сеть тогда на WiFi. Либо WiFi и LAN на роутере собирай в бридж и вообще убирай enp2s0.

AS ★★★★★
()
Последнее исправление: AS (всего исправлений: 1)
Ответ на: комментарий от wedmal

А нельзя ли подключить камеру к локальной сети роутера? Ну т.е. кабелем к роутеру или коммутатору, который имеет связь с роутером.

rumgot ★★★★★
()
Последнее исправление: rumgot (всего исправлений: 1)
Ответ на: комментарий от AS

Внести какие либо изменения в железо нет возможности. Интернет через WIFI Камера IP по проводу, и Wifi в ней нет М.б это как-то можно через iptables сделать, до маршрутизации

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

Прочитай про proxy-arp.

IMHO что-то типа «arp -i enp2s0 -Ds 192.168.1.222 enp2s0 pub»

сделать «net.ipv4.conf.all.proxy_arp=1» и «net.ipv4.conf.enp2s0.proxy_arp=1»

Далее не забыть включить форвардинг и если iptables не пустой, то добавить разрешения.

Возможно не забыть отключить rp_filter.

vel ★★★★★
()

Доброго времени. Не могу придумать, как решить эту проблему. Есть ус-во с WiFi модулем (wlp4s0b1) получил адрес 192.168.1.222 со шлюзом 192.168.1.1 Ethernet (enp2s0)

Последнее исправление: wedmal 16.03.23 09:52:43 MSK (всего исправлений: 29)

Гуманитарий? Запилить пост на 2 экрана вместо условной схемы из 2х букв и 2х стрелочек

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

Роутер не твой что ли? Оборудование досталось от предыдущих разработчиков и находится в другом городе. Не моё, но по запросу пользователя.

Ну собери в бридж тогда enp2s0 и wlp4s0b1. В юниксах не силён, не так много опыта. Проблема в том, что права на ошибку нет, не будет сети, потеряется впн, и следующая попытка только после визита клиента

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

Давай уточним - тебе на эту камеру нужно подключаться только с самого хоста (машина с enp2s0 и wlp4s0b1) или нужно сделать доступ из сети enp2s0 к камере ?

Если только с хоста, то тогда и proxy-arp не нужен. Просто роутинг прописываешь через нужный интерфейс и оно будет работать.

Вариант с proxy-arp хорош только для подключения малого числа хостов или подсети.

Если нужно подключаться к камерам и могут быть одинаковые адреса, то netns + DNAT в помощь.

PS IMHO ты что-то не договариваешь...

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

ffmpeg захватывает с 192.168.0.10 и транслирует на ffserver 192.168.1.223 (раньше был 192.168.1.1, но так не работал интернет)

Веб-сервер на этой машине. Html берет поток с 192.168.1.223:8080. Эта часть работает, если ffmpeg видит камеру.

Проблема в том, что указав маску 255.255.255.255 для enp2s0 я не вижу камеру, а, указав другую, не вижу интернет.

Просто роутинг прописываешь через нужный интерфейс и оно будет работать.

Вот с этого момента по подробнее)

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

Просто роутинг прописываешь через нужный интерфейс и оно будет работать.

Вот с этого момента по подробнее)

Если гарантируется, что адреса камер никогда не будут использоваться в wifi-сети, то есть смысл попробовать обойтись роутингом.

Я бы в твоем случае сконфигурировал на enp2s0 192.168.1.223/24 и чтобы он не мешал нормальной сети (wifi) нужно убрать прямой маршрут через «ip ro del 192.168.1.0/24 dev enp2s0 proto kernel»

для доступа к камере прописал маршрут

«ip ro add 192.168.1.10 dev enp2s0 scope link src 192.168.1.223»

Если нужно получать доступ к куче камер и адреса их могут пересекаться с адресам в вифи-сети, то нужно идти другим путём.

Общая идея простая - сделать маршрутизатор и через nat отобразить адреса 192.168.1.0/24 подключенные через интерфейс enp2s0 через «виртуальные» адреса сети 192.168.X.0/24

т.е. с этого хоста к камере с адресом 192.168.1.1 нужно будет обращаться через адрес 192.168.X.10

Делается это очень просто.

создаем netns с каким-нибудь именем.

переносим в него интерфейс enp2s0 с адресом 192.168.1.223/24.

Создаем интерфейс veth. Назначаем обоим концам адреса из какой-нибудь неиспользуемой ip-сети Y.0/30.

На один ставим адрес Y.1/30, на другой Y.2/30

Один конец veth отдаем в новый netns.

берем свободную сеть 192.168.X.0/24 и прописываем маршрут через адрес veth-интерфейса в netns.

В netns включаем форвардинг

Cоздаем там 1 общее правило в iptables

iptables -t nat -A POSTROUTING -d 192.168.1.0/24 -j SNAT --to-source 192.168.1.223

И по одному правилу на каждый адрес к которому с хоста нужен доступ.

iptables -t nat -A PREROUTING -d X.10 -о DNAT --to-destinantion 192.168.1.10

Если есть расширение NETMAP, то одним правилом можно отмапити сеть X.0/24 в 192.168.1.0/24

vel ★★★★★
()

попахивает сетевой петлей. Рассжика снова по порядку, как так получилось что у тебя на двух интерфейсах оказалась одна и таже сеть или это разные сети но с одинаковой адресацией тебе что серых айпишников не хватило? может задействовать ипв6 там говорят хватает вообще всем. Вообщем, смысла в многобуквах невижу, решение которое ты хочешь сложное и кривое, в нем нет никакой необходимости в твоем случае все наладится если ты немного поработаешь с адресацией и пропишешь наример 192.168.2.0/24 192.168.3.128/25 192.168.3.192/26 10,1,2,3,8/29 видишь как их много, а ты уперся как баран в свой 192,168,1,0/24….. еще и нат лепит

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

Да. Это сработало. Я зарезервировал адрес 192.168.1.10 в общей сети

ifconfig enp2s0 192.168.1.223 netmask 255.255.255.0

ip ro del 192.168.1.0/24 dev enp2s0 proto kernel

ip ro add 192.168.1.10 dev enp2s0 scope link src 192.168.1.223

И камера снова в сети.

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