Что это за чушь?
Наверняка задались Вы вопросом при прочтении заголовка. Признаюсь, меня посетили точно такие же мысли при прочтении документации от Штриха к весам Штрих-Принт С.
А случай состоит в следующем, магазин пожаловался, что не идет выгрузка на некоторые весы. Не буду говорить сколько я потратил времени на решение этой проблемы, просто опишу под катом вводные данные и то, что привело к решению проблемы.
Вводные данные
Что мы имеем из исходного? Схема с сетевой точки зрения абсолютно банальная.
- Подсеть магазина 192.168.1.0/24 с устройствами и маршрутизатором 192.168.1.254 и весами 192.168.1.200
- Подсеть терминального сервера 192.168.2.0/24 с терминальным сервером 192.168.2.10 и шлюзом для него 192.168.2.254
- Между роутерами, у которых локальные адреса 192.168.1.254 и 192.168.2.254, поднят туннель на публичных интерфейсах и взаимные статические маршруты на интересующие нас подсети в эти туннели.
- С терминального сервера 192.168.2.10 не выгружаются данные на 192.168.1.200
Ну что ж. Первым делом проверяю пинг до весов с терминального. Не пингуется. Проверяю доступность весов из сегмента 192.168.1.0/24. Пингуются. Бааа, да тут все банально — шлюз на весах не прописан, вот и не работает ничего.
Необъяснимо, но факт
Захожу в меню весов, и тут меня постигает первый пункт удивления — а там нет настроек шлюза. Совсем нет. Да не может такого быть, открываем документацию:
ARP есть, но устройство пассивное (что такое пассивное устройство с поддержкой IP/UDP вообще?). Но ведь работало. И работает в других магазинах с маршрутизацией. Оказывается, эти весы еще и пингуются и с маршрутизатора 192.168.2.254. И из сегмента 192.168.0.0/24, подключенного тоже к маршрутизатору 192.168.2.254. Таким образом, весы знают MAC маршрутизатора, кадры формируют правильные, но они почему-то теряются именно на пути к терминальному серверу 192.168.2.10.
Что было опробовано? Перезагружались задействованные промежуточные свитчи (неуправляемые, без L3 естественно) сегмента 192.168.2.0/254. Перезагружался роутер 192.168.2.254. Менялся IP адрес на весах на заведомо маршрутизируемый до терминального сервера.
А решается проблема очень просто — перезагрузкой собственно весов.
P.S. Интересно, как ребята из Штриха сделали поддержку в прошивке отправки в другие подсети пакетов, они просто берут тот src MAC, который им пришел и выставляют его как dst? А вся поддержка ARP — это в том смысле, то весы умеют на ARP-запросы отвечать, но не генерировать их?
TeiSinTai
Я всего раз сталкивался с похожим устройством, у которого то ли не было шлюза по умолчанию, то ли его админ не мог его прописать — но именно тогда я узнал про технологию Proxy arp. Включение её на интерфейсе маршрутизатора, связанного с тупым устройством, решает подобную проблему.