Страница 1 из 2
Как сделать не используя Zebra
Добавлено: 2011-07-27 15:34:09
MrEfrem
Добрый день.
Сеть 10.189.7/24. IP адрес на основном интерфейсе 10.189.7.34 и 10.189.7.35 на loopback.
Шлюз по умолчанию для основного интерфейса 10.189.7.1.
Как без использования Zebra построить маршрут с 10.189.7.35 через 10.189.7.34 в 10.189.7/24?
На маршрутизаторе статический роутинг с этого адреса прописан так, т.е. OSPF не требуется:
Код: Выделить всё
ip route 10.189.7.35 255.255.255.224 10.189.4.34
Re: Как сделать не используя Zebra
Добавлено: 2011-07-27 15:38:20
MrEfrem
Я в конце ошибся машрут выглядит так
ip route 10.189.7.35 255.255.255.224 10.189.7.34
Re: Как сделать не используя Zebra
Добавлено: 2011-07-27 20:06:44
LMik
Какой то вы хренью занимаетесь... не находите?
Ну и если не работает то 255.255.255.224 != /24 и никаких маршрутов как бы и добавлять не надо. И собственно кому с кем надо построить связь?
Re: Как сделать не используя Zebra
Добавлено: 2011-07-27 21:48:03
MrEfrem
Я здесь ip адрес поменял, а маску не сменил. Да и не в этом дело, вы не там ищите подвох. Лучше расскажите как мне нарисовать маршрут для ip адреса висящего на loopback.
Re: Как сделать не используя Zebra
Добавлено: 2011-07-27 22:08:38
lap
host1
Lo 1.1.1.1/32
eth 4.4.4.1/30
host2
Lo 1.1.1.2/32
eth 4.4.4.2/30
host1
ip route 1.1.1.2 255.255.255.255 4.4.4.2
host2
ip route 1.1.1.1 255.255.255.255 4.4.4.1
примерно так
Re: Как сделать не используя Zebra
Добавлено: 2011-07-27 22:54:28
opt1k
а мне интересно зачем было менять адрес на loopback интерфейсе, походу не понимаю чего.
Re: Как сделать не используя Zebra
Добавлено: 2011-07-28 7:50:51
MrEfrem
Так ни кто меня и не понял.
"ip route 10.189.7.35 255.255.255.224 10.189.7.34" это строчка в правилах на маршрутизаторе. А мене надо в FreeBSD средствами route построить маршрут. Я не меняю адрес на loopback интерфейсе, а создаю alias (10.189.7.35) для loopback интерфейса. Если бы я сделал alias на устройстве, привязанном к физической сетевой карте, то проблем бы вообще ни каких не было, потому что в таблице маршрутизации на freebsd, тот маршрут который мне нужен для 10.189.7.35 - default для этого устройства, т.е. что 10.189.7.35 и 10.189.7.34 смотрели бы в одну сеть через один и тот же шлюз. Но я хочу, чтобы заработала такая схема (см. ниже). Т.к. для 10.189.7.35 нет маршрута по умолчанию и я не знаю как сделать другой маршрут, у меня и вопрос как с помощью route (без использования zebra) повесить маршрут для 10.189.7.35 на loopback интрефейс.
Код: Выделить всё
ifconfig:
nfe0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8210b<RXCSUM,TXCSUM,VLAN_MTU,TSO4,WOL_MAGIC,LINKSTATE>
ether xx:xx:xx:xx:xx:xx
inet 10.189.7.34 netmask 0xffffffff broadcast 10.189.7.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=3<RXCSUM,TXCSUM>
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
inet 10.189.7.35 netmask 0xffffffff
nd6 options=3<PERFORMNUD,ACCEPT_RTADV>
netstat -rn:
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.189.7.1 UG1 2 25063 nfe0
10.1.1.1 link#9 UH 0 48 lo1
10.189.7.34 link#3 UHS 0 0 lo0
10.189.7.35 link#6 UH 0 0 lo0
127.0.0.1 link#6 UH 0 25 lo0
Re: Как сделать не используя Zebra
Добавлено: 2011-07-28 8:52:12
vadim64
я всё равно не понял, зачем адрес на обратной петле менять? объясните ещё обстоятельнее вашу цель и предлагаемый вами способ решения, пожалуйста
Re: Как сделать не используя Zebra
Добавлено: 2011-07-28 9:05:17
MrEfrem
Я где то выше писал что надо поменять адрес? Вы это сами себе выдумали. Вы представляете что такое несколько ip адресов на одном интерфейсе? У меня есть необходимость поднять несесколько https виртуальных web-хостов на этом сервере. Т.к. для каждого https сайта необходим свой ip вот и пребегают к таким уловкам как несколько ip на одном интерфейсе. Если сделать alias-ы для физического интерфейса (nfe0) то проблем ни каких не возникает, для них будет исопльзован маршрут по умолчанию (default 10.189.7.1 UG1 2 25063 nfe0). А если сделать alias для loopback интрефейса, то обычно пользуются zebra для настройки такой маршрутизации. Дак вот у меня вопрос штатными средствами route возможно добится необходимой мне маршрутизации?
Re: Как сделать не используя Zebra
Добавлено: 2011-07-28 9:15:03
vadim64
кхм...
если вы понимаете, что с псевдонимами на физическом интерфейсе проблем не будет, то что вас толкает вешать левые адреса на обратную петлю?
в операционной системе FreeBSD конечно же можно решить эту задачу, точнее выполнить то, что вы решили. но, как правило, не принято вешать какие либо дополнительные адреса на интерфейс lo, само название которого как бы намекает нам и вам
вы только спокойно объясняйте, судя по всему вы больший специалист чем я, проявите терпимость
Re: Как сделать не используя Zebra
Добавлено: 2011-07-28 9:36:56
MrEfrem
Нагляднее данная схема. Видно IP, через который по умолчанию идут все пакеты, т.к. он один на физическом интерфейсе и видно все другие, не основные адреса.
Re: Как сделать не используя Zebra
Добавлено: 2011-07-28 10:11:54
MrEfrem
Всё разобрался. Ошибка была у меня. Надо чтоб ip были в разный подсетях, включить сервер в режим маршрутизатора (gateway_enable="YES") и тогда всё заработало. А из одной подсети похоже такого не сделать.
Re: Как сделать не используя Zebra
Добавлено: 2011-07-28 10:47:59
vadim64
можно и из одной подсети, мост тогда делается
покажите что у вас получилось, и обьясните уже почему вам понадобилось это? где подробная схема?
Re: Как сделать не используя Zebra
Добавлено: 2011-07-28 15:54:05
MrEfrem
Получилось и из одной подсети, только для этого пришлось поставить choparp, чтоб настроить проксирование arp запросов. И кстати в этом случае правило на маршрутизаторе о том, что для адреса 10.189.7.35 шлюзом является 10.189.7.34 уже и не нужно.
Вот ниже часть rc.conf
Код: Выделить всё
ifconfig_nfe0="inet 10.189.7.34 netmask 255.255.255.128"
ifconfig_lo0_alias0="inet 10.189.7.35 netmask 255.255.255.128"
gateway_enable="YES"
static_routes="gateway"
route_gateway="-net default 10.189.7.1"
choparp_enable="YES"
choparp_iface="nfe0"
choparp_macaddr="xx:xx:xx:xx:xx:xx"
choparp_network="10.189.7.35"
Re: Как сделать не используя Zebra
Добавлено: 2011-07-28 16:09:31
MrEfrem
Что получилось всё равно не увидите, поверьте наслово работает. Никакой заумной схемы нет. Надо настроить виртуальные https хосты. Каждый на своём IP и все на одном сервере. Все IP в одной сети, вот в этом и была загвоздка.
Re: Как сделать не используя Zebra
Добавлено: 2011-07-28 16:18:03
LMik
Работает - хорошо, объясните теперь за каким хером вы не повесили второй адрес алиасом на физику?
Re: Как сделать не используя Zebra
Добавлено: 2011-07-28 16:23:31
MrEfrem
Сообщение MrEfrem » 2011-07-28 10:36:56
Нагляднее данная схема. Видно IP, через который по умолчанию идут все пакеты, т.к. он один на физическом интерфейсе и видно все другие alias-ы (потому что они на loopback).
Re: Как сделать не используя Zebra
Добавлено: 2011-07-28 16:56:37
LMik
MrEfrem писал(а):
Сообщение MrEfrem » 2011-07-28 10:36:56
Нагляднее данная схема. Видно IP, через который по умолчанию идут все пакеты, т.к. он один на физическом интерфейсе и видно все другие alias-ы (потому что они на loopback).
Ничем не нагляднее, просто влепили лишний хоп в маршрутизацию.
Re: Как сделать не используя Zebra
Добавлено: 2011-07-28 20:17:07
vadim64
я продолжаю настаивать на том что бы вы дали вывод команд
Код: Выделить всё
ifconfig -a без всяких ХХ:ХХ:ХХ:ХХ
netstat -rn
route get 8.8.8.8 с виртуальных хостов и с материнского хоста
Re: Как сделать не используя Zebra
Добавлено: 2011-07-28 21:50:05
MrEfrem
Ну смотрите ещё один плюс. На том же сервере развёрнута БД которая висит на отдельном IP (как раз на loopback интерфейсе). В кроне работают скрипты, что-то делающие на основе данный из БД. Умирает сетевая, т.е. отваливается основной интерфейс, а что БД, что скрипты продолжают себе работать как не в чём не бывало (конечно если им не требуется доступ в сеть). Просто если помрёт сетевая, на которой будет висеть БД, как следствие прерванные транзакции. При запуске БД будет тратить время на откат этих транзакций. Ну вот примерно так.
Re: Как сделать не используя Zebra
Добавлено: 2011-07-29 7:05:33
_vadim64
не гоните пургу
для системы шлюзом на айпишник сетевухи является обратная петля
Код: Выделить всё
# netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 217.23.77.49 UGS 40 12675642 re0
127.0.0.1 link#6 UH 0 86 lo0
192.168.0.0/24 link#4 U 10 14238338 rl2
192.168.0.224 link#4 UHS 0 0 lo0
192.168.1.0/24 link#2 U 0 3621 rl0
192.168.1.170 link#2 UHS 0 0 lo0
так что даже если физический интерфейс выйдет из строя, никакой драмы не произойдёт
вы не придумывайте находу какие то плюсы, просто обрисуйте первоначальный мотив
Re: Как сделать не используя Zebra
Добавлено: 2011-07-29 8:54:45
LMik
MrEfrem писал(а):Ну смотрите ещё один плюс. На том же сервере развёрнута БД которая висит на отдельном IP (как раз на loopback интерфейсе). В кроне работают скрипты, что-то делающие на основе данный из БД. Умирает сетевая, т.е. отваливается основной интерфейс, а что БД, что скрипты продолжают себе работать как не в чём не бывало (конечно если им не требуется доступ в сеть). Просто если помрёт сетевая, на которой будет висеть БД, как следствие прерванные транзакции. При запуске БД будет тратить время на откат этих транзакций. Ну вот примерно так.
Ерунду говорите. Ну повесьте (если уж вы даже не удосужились проверить что будет при падении физики) ваш mysql на 127.0.0.1.
Re: Как сделать не используя Zebra
Добавлено: 2011-07-29 9:35:16
vadim64
а я вообще skip-networking юзаю при работе mysql для web
Re: Как сделать не используя Zebra
Добавлено: 2011-07-29 9:44:58
MrEfrem
Если я повешаю на 127.0.0.1 mysql то до него ни кто достучаться не сможет из сети.
Re: Как сделать не используя Zebra
Добавлено: 2011-07-29 9:51:54
MrEfrem
Про транзакции я наверно лишканул. Вы правы мускул наврятли умрёт если отвалится сетевая, но зато он скорее всего не будет принимать подключения и с самого сервера.