Доброго всем дня. У меня задача создать роутер на базе фри. Имеется 5 подсетей, две из которых имеют одинаковое адресное пространство, пусть 192.168.2.0 (так надо и никуда от этого не денешься) и имеют разные адреса нитерфейсов роутера.Определенные хосты из каждой подсети обращаются к серверу с адресом 192.168.0.2, а между собой они развязаны правилами ipfw. Все достаточно корректно работает, кроме этих двух одиннаковых подсетей. Пусть в первой из них только хост 192.168.1.66 обращается к серверу, а из другой несколько хостов. Устанавливаю на интерфес роутера xl0 адрес 192.168.1.230 (), а на втрой em1 192.168.1.235 () и получаю сообщение о дубликате адресов. Из сети № 2 на сервер с разрешенных адресов пинг идет (подключена к интерфейсу em0), а при попытке пинговать сервер из первой сети через xl0 выдается сообщение такого типа:
kernel : arp : 192.168.1.66 is on em1 but got reply from (MAC адрес хоста с адресом 192.168.1.66) on xl0. Надеюсь не очень запутанно изложил. Спасибо.
Для сетевых инженеров очевидно что сети с пересекающимися адресами не смогут напрямую взаимодействовать через стандартный L3-роутер.Для этого обычно применяется что-то вроде VRF(cisco-aware) - во freebsd есть что-то подобное - смотреть в сторону multiple routing tables. Так мы развяжем 2 сети с пересекающимися адресами на одном роутере.
Далее:
можно попробовать посмотреть в сторону NAT-чтобы сети маппились каждая в свой уникальный блок адресов и после этого уже они смогут взаимодействовать.
>[оверквотинг удален]
> достаточно корректно работает, кроме этих двух одиннаковых подсетей. Пусть в первой
> из них только хост 192.168.1.66 обращается к серверу, а из другой
> несколько хостов. Устанавливаю на интерфес роутера xl0 адрес 192.168.1.230 (), а
> на втрой em1 192.168.1.235 () и получаю сообщение о дубликате адресов.
> Из сети № 2 на сервер с разрешенных адресов пинг идет
> (подключена к интерфейсу em0), а при попытке пинговать сервер из первой
> сети через xl0 выдается сообщение такого типа:
> kernel : arp : 192.168.1.66 is on em1 but got reply from
> (MAC адрес хоста с адресом 192.168.1.66) on xl0. Надеюсь не очень
> запутанно изложил. Спасибо.И что вы хотите услышать?
>[оверквотинг удален]
> достаточно корректно работает, кроме этих двух одиннаковых подсетей. Пусть в первой
> из них только хост 192.168.1.66 обращается к серверу, а из другой
> несколько хостов. Устанавливаю на интерфес роутера xl0 адрес 192.168.1.230 (), а
> на втрой em1 192.168.1.235 () и получаю сообщение о дубликате адресов.
> Из сети № 2 на сервер с разрешенных адресов пинг идет
> (подключена к интерфейсу em0), а при попытке пинговать сервер из первой
> сети через xl0 выдается сообщение такого типа:
> kernel : arp : 192.168.1.66 is on em1 but got reply from
> (MAC адрес хоста с адресом 192.168.1.66) on xl0. Надеюсь не очень
> запутанно изложил. Спасибо.если таких машин не много и именно их адреса не пересекаются, то можно попробовать прописать маршруты до каждого хоста
>>на самом серваке прописывал статический маршрут route add 192.168.1.66 192.168.1.235 - не помогло...
>>>на самом серваке прописывал статический маршрут route add 192.168.1.66 192.168.1.235 - не помогло...при этом в таблтце маршрутизации всеравно маршрут прописан через другой интерфейс
>>>>на самом серваке прописывал статический маршрут route add 192.168.1.66 192.168.1.235 - не помогло...
> при этом в таблтце маршрутизации всеравно маршрут прописан через другой интерфейса если интерфейс указать при прописывании маршрута
>>>>>на самом серваке прописывал статический маршрут route add 192.168.1.66 192.168.1.235 - не помогло...
>> при этом в таблтце маршрутизации всеравно маршрут прописан через другой интерфейс
> а если интерфейс указать при прописывании маршрутас радостью бы попробовал, но не нашел как. Подкажете?
>>>>>>на самом серваке прописывал статический маршрут route add 192.168.1.66 192.168.1.235 - не помогло...
>>> при этом в таблтце маршрутизации всеравно маршрут прописан через другой интерфейс
>> а если интерфейс указать при прописывании маршрута
> с радостью бы попробовал, но не нашел как. Подкажете?route add 192.168.1.66 -interface ...
https://www.opennet.ru/man.shtml?topic=route&category=8&russi...
>>>>>>>на самом серваке прописывал статический маршрут route add 192.168.1.66 192.168.1.235 - не помогло...
>>>> при этом в таблтце маршрутизации всеравно маршрут прописан через другой интерфейс
>>> а если интерфейс указать при прописывании маршрута
>> с радостью бы попробовал, но не нашел как. Подкажете?
> route add 192.168.1.66 -interface ...
> https://www.opennet.ru/man.shtml?topic=route&category=8&russi...Прописал, в таблице появилось именно то, что надо, судя по команде show для ipfw, через интерфейс пакеты ходить началь, но только если я пингую 192.168.1.66 с сервера 192.168.0.2, по с его шлюза получаю сообщение, что заданный узел недостепен, а если пингую со станции сервер, то превышен интервал. Шлюзы вроде везде прописаны. Правила ipfw тоже. Такое впечатление, что пакеты от станции к скрваку почему-то теряются на его шлюзе...
>[оверквотинг удален]
>>>> а если интерфейс указать при прописывании маршрута
>>> с радостью бы попробовал, но не нашел как. Подкажете?
>> route add 192.168.1.66 -interface ...
>> https://www.opennet.ru/man.shtml?topic=route&category=8&russi...
> Прописал, в таблице появилось именно то, что надо, судя по команде show
> для ipfw, через интерфейс пакеты ходить началь, но только если я
> пингую 192.168.1.66 с сервера 192.168.0.2, по с его шлюза получаю сообщение,
> что заданный узел недостепен, а если пингую со станции сервер, то
> превышен интервал. Шлюзы вроде везде прописаны. Правила ipfw тоже. Такое впечатление,
> что пакеты от станции к скрваку почему-то теряются на его шлюзе...Хотя я ошибаюсь, и в ту и в другую сторону запросы проходяю через интерфейс роутера xl0 (шлюз для рабочей станции)
>[оверквотинг удален]
>>>> а если интерфейс указать при прописывании маршрута
>>> с радостью бы попробовал, но не нашел как. Подкажете?
>> route add 192.168.1.66 -interface ...
>> https://www.opennet.ru/man.shtml?topic=route&category=8&russi...
> Прописал, в таблице появилось именно то, что надо, судя по команде show
> для ipfw, через интерфейс пакеты ходить началь, но только если я
> пингую 192.168.1.66 с сервера 192.168.0.2, по с его шлюза получаю сообщение,
> что заданный узел недостепен, а если пингую со станции сервер, то
> превышен интервал. Шлюзы вроде везде прописаны. Правила ipfw тоже. Такое впечатление,
> что пакеты от станции к скрваку почему-то теряются на его шлюзе...tcpdump и смотреть что где и через что.
>[оверквотинг удален]
>>>> с радостью бы попробовал, но не нашел как. Подкажете?
>>> route add 192.168.1.66 -interface ...
>>> https://www.opennet.ru/man.shtml?topic=route&category=8&russi...
>> Прописал, в таблице появилось именно то, что надо, судя по команде show
>> для ipfw, через интерфейс пакеты ходить началь, но только если я
>> пингую 192.168.1.66 с сервера 192.168.0.2, по с его шлюза получаю сообщение,
>> что заданный узел недостепен, а если пингую со станции сервер, то
>> превышен интервал. Шлюзы вроде везде прописаны. Правила ipfw тоже. Такое впечатление,
>> что пакеты от станции к скрваку почему-то теряются на его шлюзе...
> tcpdump и смотреть что где и через что.ситуация такая, с 192.168.1.66 на сервер приходят запросы, а ответы не доходят, т.к. шлюз сервера не видит станции и отправляет сообщение, что заданный узел недоступен, а на станции превышение интервала времени, если же я пингую с сервера станцию, то шлюз сразу отвечает, что заданный узел недоступен, т.е. маршрут не работает от сервера к станции. Не может это быть из-за конфликта адресов на интерфейсах xl0 и em1, хотя с 192.168.1.117 через em1 все идет нормально.
>[оверквотинг удален]
>>> превышен интервал. Шлюзы вроде везде прописаны. Правила ipfw тоже. Такое впечатление,
>>> что пакеты от станции к скрваку почему-то теряются на его шлюзе...
>> tcpdump и смотреть что где и через что.
> ситуация такая, с 192.168.1.66 на сервер приходят запросы, а ответы не доходят,
> т.к. шлюз сервера не видит станции и отправляет сообщение, что заданный
> узел недоступен, а на станции превышение интервала времени, если же я
> пингую с сервера станцию, то шлюз сразу отвечает, что заданный узел
> недоступен, т.е. маршрут не работает от сервера к станции. Не может
> это быть из-за конфликта адресов на интерфейсах xl0 и em1, хотя
> с 192.168.1.117 через em1 все идет нормально.а в arp таблице есть 192.168.1.66?
> а в arp таблице есть 192.168.1.66?Нет, не динамически добавляется. Может статически можно добавить?
>> а в arp таблице есть 192.168.1.66?
> Нет, динамически не добавляется. Может статически можно добавить?
>>> а в arp таблице есть 192.168.1.66?
>> Нет, динамически не добавляется. Может статически можно добавить?а arp запросы были? и через какой интерфейс отправлялись, через нужный?
>>>> а в arp таблице есть 192.168.1.66?
>>> Нет, динамически не добавляется. Может статически можно добавить?
> а arp запросы были? и через какой интерфейс отправлялись, через нужный?через xl0 идут только ARP запросы с 192.168.1.66
>>>>> а в arp таблице есть 192.168.1.66?
>>>> Нет, динамически не добавляется. Может статически можно добавить?
>> а arp запросы были? и через какой интерфейс отправлялись, через нужный?
> через xl0 идут только ARP запросы с 192.168.1.66а к 192.168.1.66 через какой? или их вообще нет?
>>>>> а в arp таблице есть 192.168.1.66?
>>>> Нет, динамически не добавляется. Может статически можно добавить?
>> а arp запросы были? и через какой интерфейс отправлялись, через нужный?
> через xl0 идут только ARP запросы с 192.168.1.66 но только кто 192.168.1.103 (клиент ищет сервер сервак дрвеб) и все. Может они просто херятся ipfw? Хотя вряд ли...
Их нет вообще
прописал в ipfw allow all from any to any - не помогло
У кого какие мысли? Чувствую, что решение этой проблемы есть и оно где-то не глубоко )))
> Че, все уже на дачах? ))) Раньше хоть reader проявлял сочувствие...
а еще один роутер можете поставить?
он есть и через него существует маршрут в сеть 2, сейчас попробую сделать так, прописав статик
> он есть и через него существует маршрут в сеть 2, сейчас попробую
> сделать так, прописав статикмежду этими двумя подсетями с одинаковой адресацией два роутера?
если да, то я не понимаю вашей топологии сети.
нет, все просто. из сети 1 с адресами 192.168.1.0 нам нужен доступ к серваку 192.168.0.2 солько с 66 адреса, а из сети 2 - несколько адресов, но в нее можно попасть через сеть 3 с адресами 192.168.3.0, тоже имеющюю дотуп к нашему серверу через собираемый мной роутер. Т.е. если к 192.168.2.66 прописать дотуп через интерфейс em1 с адресом 192.168.2.230, а ко всей сети 192.168.1.0/24 прописать маршрут через 192.168.3.7, то может оно и заработает. Или я глубоко заблуждаюсь...
> нет, все просто. из сети 1 с адресами 192.168.1.0 нам нужен доступ
> к серваку 192.168.0.2 солько с 66 адреса, а из сети 2
> - несколько адресов, но в нее можно попасть через сеть 3
> с адресами 192.168.3.0, тоже имеющюю дотуп к нашему серверу через собираемый
> мной роутер. Т.е. если к 192.168.2.66 прописать дотуп через интерфейс em1
> с адресом 192.168.2.230, а ко всей сети 192.168.1.0/24 прописать маршрут через
> 192.168.3.7, то может оно и заработает. Или я глубоко заблуждаюсь...наверно имелось ввиду 192.168.1.66? или 192.168.2.66
если я правельно понял топологию, то можно.
основано на том что маршрут до хоста будет приоритетней маршрута до подсети.на этом же основано предложение и для двух интерфейсов из одной подсети.
на виртуалке на freedsb 8.0 поднял два интерфейса в одной подсети, прописал отдельно машруты к 2-м хостам через интерфейс отличный от того что прописался автоматом. tcpdump показал что пинги и arm запросы пошли через маршруты прописанный вручную, как я и предполагал, так что и у вас должно было работать.
> на виртуалке на freedsb 8.0 поднял два интерфейса в одной подсети, прописал
> отдельно машруты к 2-м хостам через интерфейс отличный от того что
> прописался автоматом. tcpdump показал что пинги и arm запросы пошли через
> маршруты прописанный вручную, как я и предполагал, так что и у
> вас должно было работать.а у меня на 7.0 не хочет. Вряд ли дело в версии. Скорее в руках. Всеравно проблема с маршрутизацией, несмотря на изменение схемы. Значит проблема в кривых руках. Как вы прописывали маршрут? Я route add адрес хоста -interface адрес шлюза.
Ладно, оставим до вторника, с наступающими выходными, хорошего отдыха
>> на виртуалке на freedsb 8.0 поднял два интерфейса в одной подсети, прописал
>> отдельно машруты к 2-м хостам через интерфейс отличный от того что
>> прописался автоматом. tcpdump показал что пинги и arm запросы пошли через
>> маршруты прописанный вручную, как я и предполагал, так что и у
>> вас должно было работать.
> а у меня на 7.0 не хочет. Вряд ли дело в версии.
> Скорее в руках. Всеравно проблема с маршрутизацией, несмотря на изменение схемы.через 192.168.3.7 тоже не получилось? если да, давайте рисунок вашей подсети
> Значит проблема в кривых руках. Как вы прописывали маршрут? Я route
> add адрес хоста -interface адрес шлюза.route add 10.10.0.1 -interface em1
ну что продолжим взрыв мозга? )))
Отключил демона routd (почему-то думал, что он необходим) и пакеты пошли через xl0 к 192.168.1.66, но всеравно работать не хочет. Т.е. запросы с 192.168.1.66 проходят, ответы от 192.168.0.2 проходят(все через xl0).В обратную сторону идут только запросы. Виндовый файерволл на станции отключен. Тругую станцию пока подключить не пробовал - думаю не в этом дело.Согласно arp таблице адресу 192.168.1.66 соответствует физический адрес интерфейса xl0. Ядро постоянно выдает сообшение о попытке поменять постоянную запись arp на (физический адрес станции 192.168.1.66) на xl0.
Да, забыл, в arp прописано соответствие 192.168.1.66 MAC адресу интерфейса xl0
> Да, забыл, в arp прописано соответствие 192.168.1.66 MAC адресу интерфейса xl0зачем?
> зачем?Эта запись добавлялась динамически
>Ну вот, вручную прописал в arp таблице соответствие 192.168.1.66 и его физического адреса и все заработало )))
А не подскажете, возможно ли в rc.config прописать arp -s ip MAC, или это только через скрипт делается?
Извиняюсь, уже нашел. Огромное спасибо за оказанную неоценимую помощь )))
> Огромное спасибо за оказанную неоценимую помощь )))Это я вам, reader
>> Огромное спасибо за оказанную неоценимую помощь )))
> Это я вам, readerпожалуйста , просто было интересно на сколько это стабильно будет работать, а в своей сети такое городить что-то не хочется :)
Блин, поторопился я, попрощавшись (((
Прописал в rc.config static_arp_pairs="xxx"
static_arp_xxx="192.168.1.66 MAC" - не меняет, ругается на попытку изменения постоянных значений, дает менять только когда зайдешь под root, прописав лапками arp -s...
> Блин, поторопился я, попрощавшись (((
> Прописал в rc.config static_arp_pairs="xxx"
>
> static_arp_xxx="192.168.1.66 MAC"
> - не меняет, ругается на попытку изменения постоянных значений, дает менять
> только когда зайдешь под root, прописав лапками arp -s...так а динамическое обновление не работает? зачем постоянный прописывать?
>> Блин, поторопился я, попрощавшись (((
>> Прописал в rc.config static_arp_pairs="xxx"
>>
>> static_arp_xxx="192.168.1.66 MAC"
>> - не меняет, ругается на попытку изменения постоянных значений, дает менять
>> только когда зайдешь под root, прописав лапками arp -s...
> так а динамическое обновление не работает?она считает запись статической, и динамически не дает ее обновить, выдеот сообщение о попытке изменить перманентные данные
>>> Блин, поторопился я, попрощавшись (((
>>> Прописал в rc.config static_arp_pairs="xxx"
>>>
>>> static_arp_xxx="192.168.1.66 MAC"
>>> - не меняет, ругается на попытку изменения постоянных значений, дает менять
>>> только когда зайдешь под root, прописав лапками arp -s...
>> так а динамическое обновление не работает?
> она считает запись статической, и динамически не дает ее обновить, выдеот сообщение
> о попытке изменить перманентные данныевы же можете удалить, а дальше ping 192.168.1.66 и пусть машина сама шлет arp запрос
> вы же можете удалить, а дальше ping 192.168.1.66 и пусть машина сама
> шлет arp запроспопробую, но наверное уже завтра
>> вы же можете удалить, а дальше ping 192.168.1.66 и пусть машина сама
>> шлет arp запросНет, не проходило, т.к. при удалнении соответсвующей строки из arp-таблицы удалялась так же строка и из таблицы маршрутизации и ничего не работало. Выход - скрипт со строкой arp -s...
Так что теперь точно эпопея триумфально закончена, награды ждут своих героев )))) Спасибо еще раз за советы.
>>> вы же можете удалить, а дальше ping 192.168.1.66 и пусть машина сама
>>> шлет arp запрос
> Нет, не проходило, т.к. при удалнении соответсвующей строки из arp-таблицы удалялась так
> же строка и из таблицы маршрутизации и ничего не работало. Выход
> - скрипт со строкой arp -s...какие то странные вещи вы рассказываете, хотелось бы вывод команд видеть.
хорошо, а если после этого маршрут снова прописать?
насколько помню, при динамической arp записи она тоже удалится из таблицы, но маршрут точно никуда не девался, а отправлялся arp запрос согласно таблицы маршрутизации.
> Так что теперь точно эпопея триумфально закончена, награды ждут своих героев ))))
> Спасибо еще раз за советы.
> какие то странные вещи вы рассказываете, хотелось бы вывод команд видеть.
> хорошо, а если после этого маршрут снова прописать?
> насколько помню, при динамической arp записи она тоже удалится из таблицы, но
> маршрут точно никуда не девался, а отправлялся arp запрос согласно таблицы
> маршрутизации.Сам был удивлен, но так оно и случалоь - очищал arp и маршрут тоже пропадал. САМ ВИДИЛ!!!!