OpenVZ Forum


Home » International » Russian » dafault gateway в VE c venet
dafault gateway в VE c venet [message #35678] Tue, 14 April 2009 13:40 Go to next message
nikolasd is currently offline  nikolasd
Messages: 9
Registered: April 2009
Junior Member
From: 213.221.43*
Уважаемые гуру OpenVZ, помогите разобраться новичку виртуализации!!

Есть сеть с 2 шлюзами и Хост машина с OpenVZ

первый шлюз 2 карты:
внутренняя карта - 192.168.0.50, шлюз через который получают инет весь офис
внешняя карта - 213.хх.хх.хх

Второй шлюз 2 карты:
внутренняя карта - 192.168.0.250
внешняя карта - 212.хх.хх.хх

Хост машина - 192.168.0.240 default gateway = 192.168.0.50
на ней 5 VE c venet 192.168.0.241-245

Как сделать чтобы у VE c 192.168.0.241 gateway был равен 192.168.0.250, а не default gateway от Хост машины.
Re: dafault gateway в VE c venet [message #35683 is a reply to message #35678] Wed, 15 April 2009 07:02 Go to previous messageGo to next message
maratrus is currently offline  maratrus
Messages: 1495
Registered: August 2007
Location: Moscow
Senior Member
From: *sw.ru
Здравствуйте,

посмотрите, пожалуйста, следующую статью - как раз ваш случай
http://wiki.openvz.org/Source_based_routing
Re: dafault gateway в VE c venet [message #35713 is a reply to message #35683] Thu, 16 April 2009 16:44 Go to previous messageGo to next message
nikolasd is currently offline  nikolasd
Messages: 9
Registered: April 2009
Junior Member
From: 213.221.43*
Спасибо действительно помогло, Но теперь другая проблема.
VE c 192.168.0.241 перестала видить другие VE на этой же хост машине.
ТОесть
ping 192.168.0.242-245 уходит на 192.168.0.250 что и следовало предположить.

Как этого избежать? Чтобы пакеты на 192.168.0.242-245 шли не через 192.168.0.250, а напрямую на 192.168.0.242-245
Re: dafault gateway в VE c venet [message #35719 is a reply to message #35713] Fri, 17 April 2009 10:17 Go to previous messageGo to next message
maratrus is currently offline  maratrus
Messages: 1495
Registered: August 2007
Location: Moscow
Senior Member
From: *sw.ru
Нужно в ту же табличку прописать что-то типа:

# ip route add $VE_IP dev venet0 table $TBL

Единственная пробелема, что об этой записи вам придется "заботиться" самомоу - то есть следить, чтобы при старте/стопе VE - запись вела себя соответсвующим образом.
Re: dafault gateway в VE c venet [message #35720 is a reply to message #35719] Fri, 17 April 2009 11:06 Go to previous messageGo to next message
nikolasd is currently offline  nikolasd
Messages: 9
Registered: April 2009
Junior Member
From: 213.221.43*
Поясните пожалуйста что значит:

"следить, чтобы при старте/стопе VE - запись вела себя соответсвующим образом. "

Re: dafault gateway в VE c venet [message #35721 is a reply to message #35720] Fri, 17 April 2009 11:15 Go to previous messageGo to next message
maratrus is currently offline  maratrus
Messages: 1495
Registered: August 2007
Location: Moscow
Senior Member
From: *sw.ru
Как пример, вы "застопили" соседнюю VE, а route остался. Таким образом, если какая-либо другая нода получит этот ip адрес - достучаться до неё будет невозможно.
Re: dafault gateway в VE c venet [message #35725 is a reply to message #35719] Fri, 17 April 2009 14:10 Go to previous messageGo to next message
nikolasd is currently offline  nikolasd
Messages: 9
Registered: April 2009
Junior Member
From: 213.221.43*
Нет не спасло. VE c 192.168.0.241 видит шлюз 192.168.0.250,
эту виртуальную машину видно из сети 192.168.0.0/24 но она
ничего кроме 192.168.0.250 не видит.

А если сделать так.
На Хост машине
# ip rule add from 192.168.0.241 table 241
# ip route add default dev eth0 via 192.168.0.250 table 241
# ip route add 192.168.0.241 dev venet0 table 241
# ip route flush cache

на хост машине получаю(нет маршрута к 192.168.0.241)
# ip route ls
192.168.0.244 dev venet0 scope link
192.168.0.245 dev venet0 scope link
192.168.0.242 dev venet0 scope link
192.168.0.243 dev venet0 scope link
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.240
default via 192.168.0.50 dev eth0

# ip route ls table 241
192.168.0.241 dev venet0 scope link
default via 192.168.0.250 dev eth0


VE 192.168.0.241 перестала вообще что-либо пинговать кроме себя

Мне эта хрень нужна чтобы порт пробросить с 192.168.0.250 и ответные пакеты назад на нее же отправить.

Я думаю надо как то в таблице правил 241 сказать что если пакеты
идут от 192.168.0.241 куда угодно кроме 192.168.0.0/24 использовать шлюз 192.168.0.250, если от 192.168.0.241 на сеть 192.168.0.0/24 то использовать 192.168.0.50. Подскажите пжл как? Насколько я знаю в ip rule отрицания (т.е !) неиспользуется.





[Updated on: Fri, 17 April 2009 14:50]

Report message to a moderator

Re: dafault gateway в VE c venet [message #35739 is a reply to message #35725] Mon, 20 April 2009 08:34 Go to previous messageGo to next message
nikolasd is currently offline  nikolasd
Messages: 9
Registered: April 2009
Junior Member
From: 213.221.43*
Похоже ступил я малость.
Для того что бы 192.168.0.241 видила другие виртуалки надо было прописать в правило 241 следующие маршруты:
# ip route add 192.168.0.242 dev venet0 table 241
# ip route add 192.168.0.243 dev venet0 table 241
# ip route add 192.168.0.244 dev venet0 table 241
# ip route add 192.168.0.245 dev venet0 table 241

А для того чтобы видила всю отстальную сетку
# ip route add 192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.240 table 241

Пока работает вроде в таком виде.
Таблица правил 241 теперь такая, выполняем на Хост машине.

# ip route ls table 241
192.168.0.242 dev venet0 scope link
192.168.0.243 dev venet0 scope link
192.168.0.244 dev venet0 scope link
192.168.0.245 dev venet0 scope link
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.240
default via 192.168.0.250 dev eth0
Re: dafault gateway в VE c venet [message #35854 is a reply to message #35739] Tue, 28 April 2009 08:54 Go to previous messageGo to next message
nikolasd is currently offline  nikolasd
Messages: 9
Registered: April 2009
Junior Member
From: 213.221.43*
Новая напасть.
после перезагрузки VE, например 241 пропадают маршрут к ней на Хост машине из таблицы main.

делаю так:
# ip route
192.168.0.241 dev venet0 scope link
192.168.0.242 dev venet0 scope link
192.168.0.243 dev venet0 scope link
192.168.0.244 dev venet0 scope link
192.168.0.245 dev venet0 scope link
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.240
default via 192.168.0.50 dev eth0

# vzctl restart 241

# ip route
192.168.0.242 dev venet0 scope link
192.168.0.243 dev venet0 scope link
192.168.0.244 dev venet0 scope link
192.168.0.245 dev venet0 scope link
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.240
default via 192.168.0.50 dev eth0

Маршрут к 192.168.0.241 пропал. То же происходит если перегрузить любую другую VE

Re: dafault gateway в VE c venet [message #39723 is a reply to message #35678] Wed, 26 May 2010 12:53 Go to previous messageGo to next message
romeor is currently offline  romeor
Messages: 11
Registered: April 2010
Junior Member
From: tlulib.ee
прям собрат по проблеме.. 1 в 1 и у меня Smile найдешь решение - не пропадай.. я уже устал с этим бороться. думаю, на бриджи переходить надо.
Re: dafault gateway в VE c venet [message #39764 is a reply to message #39723] Sun, 30 May 2010 09:43 Go to previous message
RXL_ is currently offline  RXL_
Messages: 147
Registered: July 2009
Location: Moscow/Russia
Senior Member
From: *static.corbina.ru
Разный набор маршрутов реализуется только с ip rule. Управлять маршрутизацией можно не только на основе src ip, но и на fwmark. Сам fwmark назначается в правилах iptables HN (из VE ничего, кроме TOS передать не получится).
Для установки и удаления правил используйте скрипты /etc/vz/${VEID}.start и /etc/vz/${VEID}.stop.

Предварительная конфигурация:
# Создать правила маршрутизации.
ip rule add fwmark 100 prio 100 table 100
ip rule add fwmark 101 prio 101 table 101

# Заполнить таблицы маршрутизации 100 и 101.
# .....

# Создать цепочку iptables.
iptables -t mangle -N ve_route_select
iptables -t mangle -A PREROUTING -i venet0 -j ve_route_select

Команды для скриптов конфигурации VE:
# Добавление правила для VE.
iptables -t mangle -A ve_route_select -s ${IP_ADDRESS} -j MARK --set-mark 100

# Удаление правила для VE.
iptables -t mangle -D ve_route_select -s ${IP_ADDRESS} -j MARK --set-mark 100



... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Previous Topic: VZ и ip-адреса с разных подсетей.
Next Topic: Unable to fork: Cannot allocate memory
Goto Forum:
  


Current Time: Fri Jan 24 23:40:10 GMT 2020