21 июня 2011 г. 10:08 пользователь Oleg Cherevko <[email protected]>написал:

> Artyom Viklenko wrote:
>
>> 21.06.2011 08:02, Oleg Cherevko пишет:
>>
>>> Привет коллегам!
>>>
>>> Вот уже не первый раз читаю как одни поучают других на тему того, что
>>> при добавлении нескольких IP-адресов из одной подсети alias'ами на
>>> сетевой интерфейс netmask'и для alias'ов должны быть 0xffffffff.
>>>
>>> Да, я знаю, что в man ifconfig написано "...a non-conflicting netmask
>>> must be given. Usually 0xffffffff is most appropriate".
>>> Да, я знаю, что код, обрабатывающий ipv4_addrs_xxx из rc.conf добавляет
>>> все адреса из одной подсети, кроме первого, с маской /32.
>>> Да, я знаю, что на многих Internet-заборах понаписаны горы советов про
>>> netmask 0xffffffff для alias'ов.
>>>
>>> Вопрос в том, соответствует ли это все реальности?
>>>
>>
>> Помнится, при выходе очередной версии FreeBSD, была статья на аглицком:
>> "Why FreeBSD 8 Won't Rewrite the Book". Ключевым моментом статьи было
>> утверждение, что пользователю не нужно изучать ничего принципиально
>> нового для перехода на новую версию системы. Понимаете? Преемственность.
>> Админы привыкли за многие предидущие годы добавлять алиасы с маской
>> 255.255.255.255. Не смотря на то, что ifconfig понимает нотацию '/XX',
>> многие по-прежнему дописывают 'netmask 255.255.255.XXX', например.
>> IMHO, есть общепринятые, устаканившиеся правила. И нет ничего плохого,
>> когда им следуют.
>>
>
> Здоровый консерватизм -- это, разумеется, основа работы всякого админа, с
> этим никто не спорит. Важно только чтобы этот консерватизм не перерастал в
> традиционализм и шаманизм ("наши отцы, деды так делали, им так завещали
> делать боги, потому и мы так будем делать, а другое даже не обсуждается";
> как бы шутка)
>
>
>  Не всегда у админа есть время/возможность копаться в исходниках
>> и выяснять что и где поменялось, а в официальных релизах не всегда
>> пишут про ВСЕ изменения в новой версии. А содержимое страниц руководства
>> часто первый и б/м авторитетный источник информации.
>>
>> С другой стороны, конечно, не стоит делать безапеляционные утверждения
>> относительно того, что могло поменяться от версии к версии.
>>
>> Ну и последний момент. Сейчас трудно сказать конкретно, но мне кажется,
>> что лучьше следовать этой старой концепции. Возможно какой-то сетевой
>> софт поведет себя иначе. Увидит на интерфейсе несколько сетей, несколько
>> броадкаст-адресов и вместо одного пакета, разошлет в сегмент несколько.
>> На сколько ЭТО соответствует действительности и на сколько это печально
>> не могу сейчас утверждать - так, мысли вслух.
>>
>
> Во. Так я как раз и предлагаю в этом разобраться -- не проявятся ли
> какие-то нетривиальные эффекты при добавлении alias'ов из одной подсети с
> одинаковой нетмаской? Может у кого-то есть реальный опыт? РасскажИте.
>

Имею малый опыт, но делюсь :) есть одна сетевуха, она
192.168.1.X / 24
понадобилось глядеть в другую сеть, добавил алиас
192.168.0.X / 24
понадобилось быть многоликим, добавил туда же алиасов
192.168.0.A / 24
192.168.0.B / 24
....
192.168.0.Z / 24

Всё корректно работает, как я хожу на роутер и на другие внутрисетевые с
любого адреса за-алиасеного, так и меня везде видно, и всё воркает чудесно.
Считаю что если сеть /24, и я хочу оттуда честный айпи, то надо и честную
маску вписать, пусть даже и алиас - не знаю насколько это соответствует
жестоким реалиям, но думаю это логично :)


> Я вот, со своей стороны, наступил недавно на довольно неочевидную граблю
> как раз с нетмаской 0xffffffff. Выглядело это так.
>
> Стоят рядом (в лабораторных условиях) FreeBSD 8.2-RELEASE, на которой
> работает quagga, и Cisco 1811. У обоих есть интерфейсы vlan2 (в сеть
> 192.168.1.0/24) и vlan3 (в сеть 10.1.0.0/20). На сети 192.168.1.0/24(vlan2) 
> живет OSPF backbone, сеть
> 10.1.0.0/20 в этот backbone не входит, но через него анонсируется как OSPF
> ASE (и на циске и на квагге сказано "redistribute connected metric-type 1
> <blah-blah-blah>"). Ситуация симметричная, и quagga и 1811 получают route
> 10.1.0.0/20 по OSPF'у, но поскольку у обоих этот же route есть и от
> собственного connected интерфейса, то в forwarding table приехавший по
> OSPF'у route не попадает. Пока все хорошо и правильно.
>
> А затем я взял и добавил на машине с FreeBSD на vlan3 alias из сети
> 10.1.0.0/20 -- по привычке как раз с netmask 0xffffffff (как завещали нам
> отцы :)).
> И что в результате получилось? quagga увидела, что на интерфейсе появился
> новый префикс /32 и проанонсировала его через OSPF. Он приехал на циску.
> Поскольку соответсвующего connected route с маской /32 на циске не было, то
> он как more specific попал в ее forwarding table. Для циски сложилась слегка
> шизофреническая ситуация -- вся сеть 10.1.0.0/20 у нее видна через vlan3
> (как connected), а один IP из этой сети виден через vlan2 (по OSPF'у
> приехал). В этой ситуации циска повела себя небанально. Она, видимо, решила,
> что раз один IP "отбился от стаи", то надо его "спасать", надо "помочь ему
> увидеть своих", и стала proxy arp'ить в интерфейс vlan3 для этого IP. В
> результате во vlan3 развернулась нешуточная борьба между циской и FreeBSD за
> право получать пакеты на этот IP. И, прямо скажем, причину этой борьбы я
> понял совсем не сразу.
>
> Но когда понял, то поставил на FreeBSD тот же alias с маской /20 и все эти
> эффекты тут же прекратились.
>
> Так что традиции традициями, но понимать, как оно действительно работает --
> полезно. Потому и предлагаю поразбираться.
>
>  Где-то так. :)
>>
>
> --
> Olwi
>



-- 
Regards,
Alexander Yerenkow

Ответить