Предыстория.
Было два компьютера с IP адресами 10.57.0.104/16 и 10.57.0.110/16. Каждый компьютер получал доступ к ресурсам в зависимости от IP адреса. Все работало отлично, но настало время, когда один из компьютеров умер и возложенные на него работы перешли на второй компьютер.
Вопрос, как указать компьютеру, что при обращении к таким-то адреса использовать IP адрес 10.57.0.104 ,а к таким-то - 10.57.0.110.
Выполнил ifconfig fxp alias 10.57.0.104/16
При выполненнии ifconfig выдает:
fxp0: flags=8843.......
options.........
inet 10.57.0.110 netmask 0xffff0000 broadcast 10.57.255.255
inet 10.57.0.104 netmask 0xffff0000 broadcast 10.57.255.255
Ресурсы с этого компьютера доступны только как 10.57.0.110, а 10.57.0.104 не доступны.
tcpdump показал, что IP 10.57.0.104 не используется, все идет с 10.57.0.110.
Как решить проблему?
>Предыстория.
>Было два компьютера с IP адресами 10.57.0.104/16 и 10.57.0.110/16. Каждый компьютер получал
>доступ к ресурсам в зависимости от IP адреса. Все работало отлично,
>но настало время, когда один из компьютеров умер и возложенные на
>него работы перешли на второй компьютер.
>Вопрос, как указать компьютеру, что при обращении к таким-то адреса использовать IP
>адрес 10.57.0.104 ,а к таким-то - 10.57.0.110.
>Выполнил ifconfig fxp alias 10.57.0.104/16
>При выполненнии ifconfig выдает:
>fxp0: flags=8843.......
> options.........
> inet 10.57.0.110 netmask 0xffff0000 broadcast 10.57.255.255
>
> inet 10.57.0.104 netmask 0xffff0000 broadcast 10.57.255.255
>
>Ресурсы с этого компьютера доступны только как 10.57.0.110, а 10.57.0.104 не доступны.
>
>tcpdump показал, что IP 10.57.0.104 не используется, все идет с 10.57.0.110.
>Как решить проблему?курить man ifconfig на предмет alias до одурения и поиск по форуму
(это не соплярис и не сиська - это freebsd)
>курить man ifconfig на предмет alias до одурения и поиск по форуму
>
>(это не соплярис и не сиська - это freebsd)Alias вроде как настроил и ошибок никаких не выдает, просто не ходит со вторым IP и все, но его с другова компа можно пропинговать.
>Вопрос, как указать компьютеру, что при обращении к таким-то адреса использовать IP
>адрес 10.57.0.104 ,а к таким-то - 10.57.0.110.route add -host ADDRESS_X gw 10.57.0.104
route add -host ADDRESS_Y gw 10.57.0.110route add -net ADDRESS_NET_Z netmask A.B.C.D gw 10.57.0.104
route add -net ADDRESS_NET_A netmask A.B.C.D gw 10.57.0.110
Не помогло :(ping ADDRESS_X
10.57.0.110 пренаправило на 10.57.0.104
Отправлено пакетов 8, принято 0.
>ifconfig fxp alias 10.57.0.104/16
надо так ifconfig fxp alias 10.57.0.104/32
>Не помогло :(
>
>ping ADDRESS_X
>
>10.57.0.110 пренаправило на 10.57.0.104
>
>Отправлено пакетов 8, принято 0.вы всегда НЕОСМЫСЛЕННО следуете советам?
Советы разные бывают, однако.
>>Не помогло :(
>>
>>ping ADDRESS_X
>>
>>10.57.0.110 пренаправило на 10.57.0.104
>>
>>Отправлено пакетов 8, принято 0.
>
>вы всегда НЕОСМЫСЛЕННО следуете советам?
>Советы разные бывают, однако.может все таки кто-нить ответит нормально куда копать? та же проблема... спасибо.
>>>Не помогло :(
>>>
>>>ping ADDRESS_X
>>>
>>>10.57.0.110 пренаправило на 10.57.0.104
>>>
>>>Отправлено пакетов 8, принято 0.
>>
>>вы всегда НЕОСМЫСЛЕННО следуете советам?
>>Советы разные бывают, однако.
>
>может все таки кто-нить ответит нормально куда копать? та же проблема... спасибо.
>см.выше там все указано.
>>>>Не помогло :(
>>>>
>>>>ping ADDRESS_X
>>>>
>>>>10.57.0.110 пренаправило на 10.57.0.104
>>>>
>>>>Отправлено пакетов 8, принято 0.
>>>
>>>вы всегда НЕОСМЫСЛЕННО следуете советам?
>>>Советы разные бывают, однако.
>>
>>может все таки кто-нить ответит нормально куда копать? та же проблема... спасибо.
>>
>
>см.выше там все указано.
там указано как просто создать псевдоним. А нужно создать псевдоним и обращаться к одним ip-адресам от одного "псевдонима", а к другим от другого. Если есть возможность, нельзя ли более подробно объяснить или показать на то, чего я не улавливаю?
>>Не помогло :(
>>
>>ping ADDRESS_X
>>
>>10.57.0.110 пренаправило на 10.57.0.104
>>
>>Отправлено пакетов 8, принято 0.
>
>вы всегда НЕОСМЫСЛЕННО следуете советам?
>Советы разные бывают, однако.может кто-нить все таки расскажет как быть в такой ситуации? спасибо.
>вы всегда НЕОСМЫСЛЕННО следуете советам?
>Советы разные бывают, однако.Вдруг это была какая-то уловке в ОС.
Оказалась, что нет....Может есть еще мысли по этому вопросу? Надо как-то с одного компьютера получить доступ к разным ресурсам.
>>вы всегда НЕОСМЫСЛЕННО следуете советам?
>>Советы разные бывают, однако.
>
>Вдруг это была какая-то уловке в ОС.
>Оказалась, что нет....
>
>Может есть еще мысли по этому вопросу? Надо как-то с одного компьютера
>получить доступ к разным ресурсам.для тех кто в танке и иже с ним, повторно:
"курить man ifconfig на предмет alias до одурения и поиск по форуму
(это не соплярис и не сиська - это freebsd)"если понимание после изучения man ifconfig и наличие одного default-router'а во freebsd
НЕ ПРИХОДИТ (еще раз tcp/ip стек freebsd != cisco или tcp/ip стек в Solaris) то
воспользоваться поиском по форуму
>для тех кто в танке и иже с ним, повторно:
>"курить man ifconfig на предмет alias до одурения и поиск по форуму
>(это не соплярис и не сиська - это freebsd)"
>если понимание после изучения man ifconfig и наличие одного default-router'а во freebsd
>НЕ ПРИХОДИТ (еще раз tcp/ip стек freebsd != cisco или tcp/ip стек
>в Solaris) то воспользоваться поиском по форуму
это вроде тематический нормальный форум, люди задают свои вопросы потому что не могут найти на них ответы ни на форуме, ни в манах ни вообще в инете. Если то что хочется не возможно, то почему бы просто так и не написать, если это возможно, то почему бы не написать как это сделать, а не посылать в маны и на форум... я тоже так могу, на любой вопрос - В МАНЫ!
По моему, надо копать в сторону alias + routing
>По моему, надо копать в сторону alias + routing
так ведь копаю. alias прописывается, пингуется. Но как прописать чтобы на определенный удаленный хост пакеты отправлялись с этого алиаса (а оба адреса и основной и алиас, находятся в одной сети) не понятно. Если бы они были в разных сетях думаю с routing'ом проблем бы не было, но они в одной, на одном интерфейсе и удаленный хост доступен только через один шлюз. Вот возможность такого меня лично интересует...
>>для тех кто в танке и иже с ним, повторно:
>>"курить man ifconfig на предмет alias до одурения и поиск по форуму
>>(это не соплярис и не сиська - это freebsd)"
>>если понимание после изучения man ifconfig и наличие одного default-router'а во freebsd
>>НЕ ПРИХОДИТ (еще раз tcp/ip стек freebsd != cisco или tcp/ip стек
>>в Solaris) то воспользоваться поиском по форуму
>это вроде тематический нормальный форум, люди задают свои вопросы потому что не
>могут найти на них ответы ни на форуме, ни в манах
>ни вообще в инете. Если то что хочется не возможно, то
>почему бы просто так и не написать, если это возможно, топотому что было конкретно отписано - man ifconfig и намек про роутинг и особенности
стека tcp/ip во freebsd и самое главное - поиск по форуму, ибо сие несколько раз
расписывалось.>почему бы не написать как это сделать, а не посылать в
>маны и на форум... я тоже так могу, на любой вопрос
>- В МАНЫ!а почему бы немножко не подумать и не воспользоваться поиском:
man ifconfig:
...
alias Establish an additional network address for this interface. This
is sometimes useful when changing network numbers, and one wishes
to accept packets addressed to the old interface. If the address
is on the same subnet as the first network address for this
interface, a non-conflicting netmask must be given. Usually
0xffffffff is most appropriate.
..."if the address is on the SAME subnet... соответствующая маска должна быть /32"
А теперь немножко подумайте, при правильной маске на алиасе, пакеты извне на алиасный
адрес идут и возвращаются с него - это работает? работает.
Что непонятно? Что смущает? То что вы заходите на машину по основному IP и хотите чтобы
пакеты в результате уходили с алиасного?
Если маска для алиаса из той же подсети будет НЕВЕРНАЯ, какой из IP на интерфейсе будет
отвечать? Один, оба, выборочно - скорей всего основной, как результат КАША в ядре.
Со статистикой сетевого трафика на такой машине будет жопа, если по ip.Все это можно было найти и поиском, да, вот такой вот стек, и если не ошибаюсь, то только
в Solaris стек tcp/ip позволяет ТО ЧТО вам хотелось бы, и то с 8'ой версии. Термин уже
забыл, но опять поиск по форуму поможет.
это все я понял и из манов и из конфы. Поиском пользовался но ничего похожего не нашел.>А теперь немножко подумайте, при правильной маске на алиасе, пакеты извне на
>алиасный
>адрес идут и возвращаются с него - это работает? работает.
> Что непонятно? Что смущает? То что вы заходите на машину по
>основному IP и хотите чтобы
>пакеты в результате уходили с алиасного?но что значит вот это? что значит "заходите" на машину? никто никуда не заходит, работает ОС, нужно чтобы сервис работающий под ОС отправил пакет с алиаса (с правильно прописанной маской) на default router. При чем тут стек и каша? На пинг же она отвечает с этого адреса, и сервисы висящие на алиасе отвечают с этого адреса. Весь вопрос изначальный сводился к тому чтобы понять возможно ли на одной сетевой карте присвоить алиас и отправлять (и принимать тоже) с него инфу. Ведь в случае с разными подсетями это должно замечательно работать... а тут просто одна сеть.
>это все я понял и из манов и из конфы. Поиском пользовался
>но ничего похожего не нашел.
>
>>А теперь немножко подумайте, при правильной маске на алиасе, пакеты извне на
>>алиасный
>>адрес идут и возвращаются с него - это работает? работает.
>> Что непонятно? Что смущает? То что вы заходите на машину по
>>основному IP и хотите чтобы
>>пакеты в результате уходили с алиасного?
>
>но что значит вот это? что значит "заходите" на машину? никто никуда
>не заходит, работает ОС, нужно чтобы сервис работающий под ОС отправил
>пакет с алиаса (с правильно прописанной маской) на default router. При
>чем тут стек и каша? На пинг же она отвечает с
>этого адреса, и сервисы висящие на алиасе отвечают с этого адреса.
>Весь вопрос изначальный сводился к тому чтобы понять возможно ли на
>одной сетевой карте присвоить алиас и отправлять (и принимать тоже) с
>него инфу. Ведь в случае с разными подсетями это должно замечательно
>работать... а тут просто одна сеть.пилите дальше - написание/привязка сервиса к ip, ip из одной subnet на машине,
sockstat, lsof, tcpdump в руки.Все что было необходимо для понимания - объяснено, остальное - изучение теории и/или
поиск по форуму.
>Предыстория.
>Было два компьютера с IP адресами 10.57.0.104/16 и 10.57.0.110/16. Каждый компьютер получал
>доступ к ресурсам в зависимости от IP адреса. Все работало отлично,
>но настало время, когда один из компьютеров умер и возложенные на
>него работы перешли на второй компьютер.
>Вопрос, как указать компьютеру, что при обращении к таким-то адреса использовать IP
>адрес 10.57.0.104 ,а к таким-то - 10.57.0.110.
>Выполнил ifconfig fxp alias 10.57.0.104/16
>При выполненнии ifconfig выдает:
>fxp0: flags=8843.......
> options.........
> inet 10.57.0.110 netmask 0xffff0000 broadcast 10.57.255.255
>
> inet 10.57.0.104 netmask 0xffff0000 broadcast 10.57.255.255
>
>Ресурсы с этого компьютера доступны только как 10.57.0.110, а 10.57.0.104 не доступны.
>
>tcpdump показал, что IP 10.57.0.104 не используется, все идет с 10.57.0.110.
>Как решить проблему?А разве могут на одной машине быть два IP из одной подсети!!?? Что-то я сумлеваюсь!
>А разве могут на одной машине быть два IP из одной подсети!!??
>Что-то я сумлеваюсь!
могут. но вот у автора топика точно ничего не выйдет.
>>А разве могут на одной машине быть два IP из одной подсети!!??
>>Что-то я сумлеваюсь!
>могут.
Да ну!!!!! Ну попробуй!!!!!!!!!!!!! :)))
И чтоб в сети были доступны!
>>>А разве могут на одной машине быть два IP из одной подсети!!??
>>>Что-то я сумлеваюсь!
>>могут.
>Да ну!!!!! Ну попробуй!!!!!!!!!!!!! :)))
>И чтоб в сети были доступны![unix1]~ > ifconfig em0 | grep "inet "
inet 159.93.44.57 netmask 0xffffff00 broadcast 159.93.44.255
inet 159.93.44.59 netmask 0xffffffff broadcast 159.93.44.59
inet 159.93.44.58 netmask 0xffffffff broadcast 159.93.44.58
[unix1]~ >
>>>>А разве могут на одной машине быть два IP из одной подсети!!??
>>>>Что-то я сумлеваюсь!
>>>могут.
>>Да ну!!!!! Ну попробуй!!!!!!!!!!!!! :)))
>>И чтоб в сети были доступны!
>
>[unix1]~ > ifconfig em0 | grep "inet "
> inet 159.93.44.57 netmask 0xffffff00
>broadcast 159.93.44.255
> inet 159.93.44.59 netmask 0xffffffff
>broadcast 159.93.44.59
> inet 159.93.44.58 netmask 0xffffffff
>broadcast 159.93.44.58
>[unix1]~ >приведённый пример исключительно рабочий, сам так делаю, но судя по маске, это уже не "одна сеть" .... точнее подсеть ... маска 255.255.255.0 и маска 255.255.255.255 .... а вот все алиасы повесить с маской 255.255.255.0 конечно не получится... если все эти алиасы будут в односети 255.255.255.0 ...
к примеру так в принципе не верно:
[unix1]~ > ifconfig em0 | grep "inet "
inet 159.93.44.57 netmask 0xffffff00 broadcast 159.93.44.255
inet 159.93.44.59 netmask 0xffffff00 broadcast 159.93.44.255
inet 159.93.44.58 netmask 0xffffff00 broadcast 159.93.44.255
[unix1]~ >всё же адреса с одной маской и из одной сети на интерфейсе жить не будут ... а вот с масками 255.255.255.255 (кроме основного адреса) конечно жить будут ... :)
>>
>>[unix1]~ > ifconfig em0 | grep "inet "
>> inet 159.93.44.57 netmask 0xffffff00
>>broadcast 159.93.44.255
>> inet 159.93.44.59 netmask 0xffffffff
>>broadcast 159.93.44.59
>> inet 159.93.44.58 netmask 0xffffffff
>>broadcast 159.93.44.58
>>[unix1]~ >
>
>приведённый пример исключительно рабочий, сам так делаю, но судя по маске, это
>уже не "одна сеть" .... точнее подсеть ... маска 255.255.255.0 и
>маска 255.255.255.255 .... а вот все алиасы повесить с маской 255.255.255.0
>конечно не получится... если все эти алиасы будут в односети 255.255.255.0
>...
>к примеру так в принципе не верно:
>[unix1]~ > ifconfig em0 | grep "inet "
> inet 159.93.44.57 netmask 0xffffff00
>broadcast 159.93.44.255
> inet 159.93.44.59 netmask 0xffffff00
>broadcast 159.93.44.255
> inet 159.93.44.58 netmask 0xffffff00
>broadcast 159.93.44.255
>[unix1]~ >
>
>всё же адреса с одной маской и из одной сети на интерфейсе
>жить не будут ... а вот с масками 255.255.255.255 (кроме основного
>адреса) конечно жить будут ... :)Это почему не будут?, 192.168.0.254/24 (основной) и 192.168.0.253/24 (алиас), обе карты в одной машине, обе воткнуты в один свич, и все нормально работает, ни разу не наблюдал глюков или проблем.
>А разве могут на одной машине быть два IP из одной подсети!!??
>Что-то я сумлеваюсь!
Могут и даже на одном сетевом интерфейсе...
самый простой способ - ifconfig eth1 down - и тебе доступны какието ресурсы, потом ifconfig eth1 up и ifconfig eth0 down
>Предыстория.
>Было два компьютера с IP адресами 10.57.0.104/16 и 10.57.0.110/16. Каждый компьютер получал
>доступ к ресурсам в зависимости от IP адреса. Все работало отлично,
>но настало время, когда один из компьютеров умер и возложенные на
>него работы перешли на второй компьютер.
>Вопрос, как указать компьютеру, что при обращении к таким-то адреса использовать IP
>адрес 10.57.0.104 ,а к таким-то - 10.57.0.110.
>Выполнил ifconfig fxp alias 10.57.0.104/16
>При выполненнии ifconfig выдает:
>fxp0: flags=8843.......
> options.........
> inet 10.57.0.110 netmask 0xffff0000 broadcast 10.57.255.255
>
> inet 10.57.0.104 netmask 0xffff0000 broadcast 10.57.255.255
>
>Ресурсы с этого компьютера доступны только как 10.57.0.110, а 10.57.0.104 не доступны.
>
>tcpdump показал, что IP 10.57.0.104 не используется, все идет с 10.57.0.110.
>Как решить проблему?Как я понял задача такая - есть интерфейс на который назначено 2 ip адреса (основной и алиас) нужно обращаться к определенным удаленным серверам с определенных ip адресов. У меня получилось это реализовать с участием ifconfig, ipfw, route. Но(!) у меня эти удаленные сервисы находятся за шлюзом , поэтому и описание для этого варианта.
Для решения твоей задачи:
ifconfig fxp0 10.57.0.110/16 #назначаем основной адрес на интерфейс
ifconfig fxp0 10.57.0.104/16 #назначаем alias на этот интерфейс
Т.к. они обе лежат в одной подсети то что ты отправляешь с этого интерфеса будет уходить с основного адреса (.110) для того чтобы обращаться к какому-либо адресу с алиаса нужно сделать дополнительный маршрут на этот адрес и правило для ipfw:
route add -host XXX.XXX.XXX.XXX 10.57.0.104
,где XXX.XXX.XXX.XXX адрес удаленного хоста на который нужно отправлять пакеты с 10.57.0.104. Таким образом у нас получается "кольцо". Для того чтобы выйти из этого кольца во первых нужно использовать ipfw. Если его нет, то как его запустить здесь куча доков. В ядре обязательно должны быть включены опции:
options IPFIREWALL_FORWARD
options IPFIREWALL_FORWARD_EXTENDEDзатем или командой строке или в конфигурационном файле файрволла или еще как добавляем правило (у меня оно идет до всяких натовских дивертов, но после всего что касается 127.0.0.1) ближе к началу правил.
ipfw add [номер правила] fwd YYY.YYY.YYY.YYY ip from 10.57.0.104 to XXX.XXX.XXX.XXX
, где YYY.YYY.YYY.YYY - адрес шлюза, XXX.XXX.XXX.XXX адрес удаленного хоста на который нужно отправлять пакеты. Таким образом пакет уходит на шлюз с ip 10.57.0.104 для XXX.XXX.XXX.XXX.После этого ping XXX.XXX.XXX.XXX работает нормально, да и пишу я сча через сквид который обращается с алиаса на каскадный сквид за шлюзом, а значит и сервисы работают тоже нормально.
Возможность обойтись без шлюза пока не понял, но мне это вроде и не надо...
Если не о том написал - сорри. Может где-то здесь в описании и ошибся, спрашивай если что, попробуем разобраться, а не тыкать друг другу в доки.
>Как я понял задача такая - есть интерфейс на который назначено 2
>ip адреса (основной и алиас) нужно обращаться к определенным удаленным серверам
>с определенных ip адресов. У меня получилось это реализовать с участием
>ifconfig, ipfw, route. Но(!) у меня эти удаленные сервисы находятся за
>шлюзом , поэтому и описание для этого варианта.
>Для решения твоей задачи:
>ifconfig fxp0 10.57.0.110/16 #назначаем основной адрес на интерфейс
>ifconfig fxp0 10.57.0.104/16 #назначаем alias на этот интерфейс
>Т.к. они обе лежат в одной подсети то что ты отправляешь с
>этого интерфеса будет уходить с основного адреса (.110) для того чтобы
>обращаться к какому-либо адресу с алиаса нужно сделать дополнительный маршрут на
>этот адрес и правило для ipfw:
>route add -host XXX.XXX.XXX.XXX 10.57.0.104
>,где XXX.XXX.XXX.XXX адрес удаленного хоста на который нужно отправлять пакеты с 10.57.0.104.
>Таким образом у нас получается "кольцо". Для того чтобы выйти из
>этого кольца во первых нужно использовать ipfw. Если его нет, то
>как его запустить здесь куча доков. В ядре обязательно должны быть
>включены опции:
>options IPFIREWALL_FORWARD
>options IPFIREWALL_FORWARD_EXTENDED
>
>затем или командой строке или в конфигурационном файле файрволла или еще как
>добавляем правило (у меня оно идет до всяких натовских дивертов, но
>после всего что касается 127.0.0.1) ближе к началу правил.
>ipfw add [номер правила] fwd YYY.YYY.YYY.YYY ip from 10.57.0.104 to XXX.XXX.XXX.XXX
>, где YYY.YYY.YYY.YYY - адрес шлюза, XXX.XXX.XXX.XXX адрес удаленного хоста на который
>нужно отправлять пакеты. Таким образом пакет уходит на шлюз с ip
>10.57.0.104 для XXX.XXX.XXX.XXX.
>
>После этого ping XXX.XXX.XXX.XXX работает нормально, да и пишу я сча через
>сквид который обращается с алиаса на каскадный сквид за шлюзом, а
>значит и сервисы работают тоже нормально.
>Возможность обойтись без шлюза пока не понял, но мне это вроде и
>не надо...
>Если не о том написал - сорри. Может где-то здесь в описании
>и ошибся, спрашивай если что, попробуем разобраться, а не тыкать друг
>другу в доки.БОЛЬШОЕ СПАСИБО за развернутый ответ!
Сейчас попробую осуществить...А также всем спасибо, кто откликнулся! :)
>>ifconfig fxp0 10.57.0.110/16 #назначаем основной адрес на интерфейс
>>ifconfig fxp0 10.57.0.104/16 #назначаем alias на этот интерфейс>
>БОЛЬШОЕ СПАСИБО за развернутый ответ!
>Сейчас попробую осуществить...
>
>А также всем спасибо, кто откликнулся! :)
Блин... как и говорил могут быть ошибки на алиас маска /32 конечно... сорри.