4 IP адреса, 2 сетевых интерфейса, 3 VPS
Есть следующая схема: На hardware node есть два сетевых интерфейса: eth0 и eth1 Доступно 4 IP адреса, 2 в одной сети, 2 в другой. Планируется следующее использование IP адресов: IP1 - адрес на hardware node, работает через eth0 IP2 - адрес на VPS1 - с той сети, что и hardware node, работает через eth0 IP3 - адрес для VPS3, она должна работать через интерфейс eth1 IP4 - адрес для VPS4, она должна работать через интерфейс eth1 VPS3 и VPS4 должны быть в одной сети. Как реализовать следующую схему? С eth0 все ясно, все работает. Как настроить VPS3 и VPS4 для работы через eth1?
Re: 4 IP адреса, 2 сетевых интерфейса, 3 VPS
Никто не подскажет варианта решения проблемы??
Я бы сделел бриджи на eth0 eth1, на VPS -интерфейсы veth, а потом втыкай куда что хочешь.
В этом случае br0 eth0 - будет присвоено IP1 veth1 - IP2 eth1 - IP3 veth2 - IP4 Я хорошо делаю? Я могу с 4-мя публичными IP адресами сделать 3-и VPS, каждый с публичным адресом? Как ето сделать, потому что 1-н адресов присваивается eth1? Как вариан решения для eth3 - VPS4 - обично настраиваю, а на VPS3 делую локальную IP, и пробрасиваю порти с IP eth1 на VPS3, верная мисль? Подскажите, анг. мани читать не очень умею. Мне только надо понять как верно сделать.
Неужели никто не поможет? Мне нужно просто понять, а я сделаю сам.
Нет, не правильно. Бридж, это как репитер, хаб, повторитель. Он повторяет все сигналы на всех включенный в него элементах. И адрес нельзя присвоить eth0 если он включен в бридж, eth0 и veth1 внутри бриджа. Адрес, если он нужен на HN (может быть и не нужен), должен быть у бриджа. Интерфейс veth1 - не может быть veth1, идентификатоы VE начинаются с 101, значит veth101.1 отдается в VE как eth1 (veth101.0 отдается в VE как eth0) и адрес должен быть там внутри VE. Другими словами - veth на HN не должен иметь адреса. В данной схеме eth0 и veth выступают как соединительные элементы (провода). Да, интерфейсы не будут работать если будут в состоянии down. Убедитесь, что ifconfig br0 up
Планируется следующее использование IP адресов: IP1 - адрес на hardware node, работает через eth0 IP2 - адрес на VPS1 - с той сети, что и hardware node, работает через eth0 IP3 - адрес для VPS3, она должна работать через интерфейс eth1 IP4 - адрес для VPS4, она должна работать через интерфейс eth1 Я несколько запуталса, мне надо создать два бриджа: br0 для eth0 и VPS1 br1 для eth1 и VPS2 и VPS3 Надо создать для каждой VPS интерфейс veth Дальше как мне распределить адреса между хардвареноде и VPS ? На хардваре ноде надо настроить eth0 и eth1 ?
Какой дистрибутив используете для несущей системы(HN)?
Для всех использую Debian lenny Насколько я вияснил, датацентр не дает возможности создать виртуализацию так как я хотел, потому что у них на eth0 и eth1 есть привязка к мак адресе, потому и использовать дополнительние IP для VPS не получитса, так как мак адрес нетот будет. Я вот подумал надо сделать дополнительние IP алиасами и потом делать с помощью iptables проброску портов на VPS. только думаю в VPS делать veth или создавать виртуальние интерфеси самому и "перемещать" их, как позволяетса перемещать физические интерфейси, с хардваре к VPS?
Никак не получаетса настроить проброску портов в VPS Делал так: VPS name - 52 vzctl set 52 --netif_add eth1 --save - создал veth для VPS Настроил ее на локальную IP 192.168.0.52, шлюз - 192.168.0.10 Создал бридж br1 Добавил в бридж veth52.1 Написал правила на iptables. Не работает. Также добавлял в бридж и eth1 - не помогало. С хардваре пингую бридж, но VPS - нет. С VPS пингую бридж, но хардваре понятно что нет. Как же мне организовать проброску портов? ЧИтал вики много раз, есть частичние случаи, но их всетаки нехватает для решения проблеми, а у меня замало опита с OpenVZ. Тем более специфичная задача з моими двумя eth, билаб одна и все IP в одной сети и можно билоб привязать свои MAC адреса - билоб наверное все очень просто используя venet
>> использовать дополнительние IP для VPS не получитса, так как мак адрес нетот будет. Я не совсем понял, что мешает на одном макадресе сосздать кучу IP адресов? Несколько макадресов на один IP адрес создают проблемы, но не наоборот. Для вашего случая можно использовать примерно такие сетевые параметры на VE0 #/etc/networks/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet manual up ethtool -K eth0 tx off up ifconfig $IFACE 0.0.0.0 up down ifconfig $IFACE down auto eth1 iface eth0 inet manual up ifconfig $IFACE 0.0.0.0 up up ethtool -K eth1 tx off down ifconfig $IFACE down auto br0 iface vmbr0 inet static address 10.6.20.25 netmask 255.255.255.0 gateway 10.6.20.1 bridge_ports eth0 bridge_stp off bridge_fd 9 bridge_hello 2 bridge_maxage 12 auto br1 iface br1 inet manual up ifconfig $IFACE 0.0.0.0 up address 0.0.0.0 bridge_ports eth1 bridge_stp off bridge_fd 9 bridge_hello 2 bridge_maxage 12 down ifconfig $IFACE down И в конфиге виртуальной машины я привязываю интерфесы к нужным бриджам #/etc/vz/conf/3005.conf NETIF="ifname=eth0,bridge=br1,mac=00:18:51:3C:CD:5F,host_ifname=veth3005.0,host_mac=00:18:51:0F:DC:F7" Таким образом VE3005 получит eth0 работающий через eth1 на несущей машине (HN или VE0).
Делал как по вашему примеру, но чтото ошибки есть, и конечно же не работает Quote: ~# /etc/init.d/networking restart Reconfiguring network interfaces...if-up.d/mountnfs[eth0]: waiting for interface eth1 before doing NFS mounts (warning). if-up.d/mountnfs[eth0]: waiting for interface br1 before doing NFS mounts (warning). Cannot set device tx csum settings: Operation not supported Failed to bring up eth1. Waiting for br1 to get ready (MAXWAIT is 20 seconds). if-up.d/mountnfs[br1]: waiting for interface eth1 before doing NFS mounts (warning). done. ethtool - установлено
Нашол некоторое решение для eth1. http://av5.com/journals-magazines-online/1/20/736 Но для eth0 не подойдет. 2 sa10, Ваше решение кажется именно то что надо, только помогите мне разобраться в нем.
Если Вы свой конфиг не показываете, с чем же разбираться? Уберите из параметров up ethtool -K eth0 tx off up ethtool -K eth1 tx off Это из моего конфига случайно туда попало. Попробуйте выполнить для каждого интерфейса: ifup eth0 - поднять ifdown eth0 опустить ifup br0 - поднять ifdown br0 опустить и т.д. Следите за сообщениями.
linelect wrote on Tue, 26 May 2009 23:36 Нашол некоторое решение для eth1. http://av5.com/journals-magazines-online/1/20/736 Но для eth0 не подойдет. У альтов хороший проект, но метод управления интерфейсами etcnet через кучу файлов для каждого из них это не просто плохая идея... Когда у меня на HN полсотни интерфейсов, а там для каждого интерфейса по нескольку отдельных файлов с параметрами, а вебадмин может только примитивные действия, никаких бондингов и виланов, то увы, мне жаль.... Но я искренне желаю альтам удач и успехов. Заметно лучше выглядит proxmox (внутри Debian Lenny) http://pve.proxmox.com/wiki/Main_Page Но будьте осторожны с инсталятором proxmox, он грохнет содержимое вашего диска без особых предупреждений
Странная ошибка начала появлятся, даже с чистим конфигом сети: Quote: ~# /etc/init.d/networking restart Reconfiguring network interfaces...if-up.d/mountnfs[eth0]: waiting for interface eth0:1 before doing NFS mounts (warning). if-up.d/mountnfs[eth0]: waiting for interface eth1 before doing NFS mounts (warning). if-up.d/mountnfs[eth0]: waiting for interface eth1:1 before doing NFS mounts (warning). if-up.d/mountnfs[eth0:1]: waiting for interface eth1 before doing NFS mounts (warning). if-up.d/mountnfs[eth0:1]: waiting for interface eth1:1 before doing NFS mounts (warning). if-up.d/mountnfs[eth1]: waiting for interface eth1:1 before doing NFS mounts (warning). done. Как вияснил ето связано с /etc/network/if-up.d/mountnfs, но чтоже случилось, появились ошибки после того как я делал настройку с вашего конфига. Есть баг репорт http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=496007 , но мне не помогало auto eth1 писать, так как оно так било всегда, вот например часть конфига: Quote: auto eth0 iface eth0 inet static address A.B.101.43 netmask 255.255.255.0 network A.B.101.0 broadcast A.B.101.255 gateway A.B.101.1 Сейчас все сделаю сначала по вашемо конфигу, и напишу как обстоят дела, взгляните позже, мне нужна Ваша помощь.
sa10 wrote on Thu, 28 May 2009 05:09 Заметно лучше выглядит proxmox (внутри Debian Lenny) http://pve.proxmox.com/wiki/Main_Page Но будьте осторожны с инсталятором proxmox, он грохнет содержимое вашего диска без особых предупреждений Насколько я понял, то proxmox инная система виртуализации, ето не OpenVZ, интересне превосходит она ее, или нет.
linelect wrote on Thu, 28 May 2009 12:31 Насколько я понял, то proxmox инная система виртуализации, ето не OpenVZ, интересне превосходит она ее, или нет. Это debian+openvz + kvm+webadmin и средства кластеризации KVM http://ru.wikipedia.org/wiki/Kernel-based_Virtual_Machine http://www.ibm.com/developerworks/ru/library/l-linux-kvm/ позволяет, при наличии аппаратной поддержки виртуализации, держать на одной машине кучу разных серверных систем, в том числе виндовз.
Итак, после проделанного ничего не заработало. Делаю описание: /etc/network/interfaces Quote: auto eth0 iface eth0 inet static address A.B.101.43 netmask 255.255.255.0 network A.B.101.0 broadcast A.B.101.255 gateway A.B.101.1 auto eth1 iface eth1 inet manual up ifconfig $IFACE 0.0.0.0 up down ifconfig $IFACE down auto br1 iface br1 inet manual up ifconfig $IFACE 0.0.0.0 up address 0.0.0.0 bridge_ports eth1 bridge_stp off bridge_fd 9 bridge_hello 2 bridge_maxage 12 down ifconfig $IFACE down eth0 - не трогал, так как сервер удальонний, через етот интерфейс работаю, потму я настраивал только eth1 /etc/vz/conf/52.conf Quote: NETIF=" ifname=eth1,bridge=br1,mac=00:30:18:B0:C1:A1,host_ifname=vet h52.1,host_mac=00:30:18:B0:C1:A1 " /etc/network/interfaces на VPS Quote: auto eth1 iface eth1 inet static address A.B.102.52 netmask 255.255.255.0 network A.B.102.0 broadcast A.B.102.255 gateway A.B.102.1 ifconfig на хардваре Quote: br1 Link encap:Ethernet HWaddr 00:30:18:b0:c1:a1 inet6 addr: fe80::230:18ff:feb0:c1a1/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1578 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:73521 (71.7 KiB) TX bytes:468 (468.0 B) eth0 Link encap:Ethernet HWaddr 00:30:18:b0:c1:a2 inet addr:A.B.101.43 Bcast:A.B.101.255 Mask:255.255.255.0 inet6 addr: fe80::230:18ff:feb0:c1a2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3255 errors:0 dropped:0 overruns:0 frame:0 TX packets:1164 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:251354 (245.4 KiB) TX bytes:166423 (162.5 KiB) Interrupt:18 Base address:0xf000 eth1 Link encap:Ethernet HWaddr 00:30:18:b0:c1:a1 inet6 addr: fe80::230:18ff:feb0:c1a1/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2052 errors:0 dropped:0 overruns:0 frame:0 TX packets:19 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:124295 (121.3 KiB) TX bytes:1474 (1.4 KiB) Interrupt:19 Base address:0xf200 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:560 (560.0 B) TX bytes:560 (560.0 B) venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) veth52.1 Link encap:Ethernet HWaddr 00:30:18:b0:c1:a1 inet6 addr: fe80::230:18ff:feb0:c1a1/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:216 (216.0 B) TX bytes:240 (240.0 B) brctl show Quote: bridge name bridge id STP enabled interfaces br1 8000.003018b0c1a1 no eth1 Не пингую адреса которий на VPS ниоткуда. С VPS также ничего не пингуетса. Что прекажете дальше делать?
Если у вас VE52 запущен, то у вас причина в том, что veth не включился в бридж. Попробуйте включить его руками: brctl addif br1 veth52.1 проверьте разницу brctl show Запустите ping на VE52, а на HN прощупайте прохождение пакетов с помощью tcpdump tcpdump -i veth52.1 icmp tcpdump -i br1 icmp tcpdump -i eth1 icmp Если картина не прояснится, можно повторить эти команды, заменив icmp на arp И еще проверьте vzctl --help Так ли там выглядит эта строка? [--netif_add <ifname[,mac,host_ifname,host_mac,bridge ] [--netif_del <ifname>] Я не уверен, что у Вас там будет упоминаться bridge
1 Включил veth52.1 в бридж Quote: ~# brctl addif br1 veth52.1 ~# brctl show bridge name bridge id STP enabled interfaces br1 8000.003018b0c1a1 no eth1 veth52.1 Чтоб вручну не поднимать добавил в /etc/network/interfaces Quote: auto br1 iface br1 inet manual up ifconfig $IFACE 0.0.0.0 up address 0.0.0.0 bridge_ports eth1 veth52.1 bridge_stp off bridge_fd 9 bridge_hello 2 bridge_maxage 12 down ifconfig $IFACE down Запустил пинг на VPS, и сделал на хардваре: Quote: tcpdump -i veth52.1 icmp tcpdump -i br1 icmp tcpdump -i eth1 icmp Quote: :~# tcpdump -i veth52.1 icmp tcpdump: WARNING: veth52.1: no IPv4 address assigned tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on veth52.1, link-type EN10MB (Ethernet), capture size 96 bytes 10:09:33.221803 IP 52.102.B.A > 91.198.10.10: ICMP echo request, id 41473, seq 163, length 64 10:09:34.221803 IP 52.102.B.A > 91.198.10.10: ICMP echo request, id 41473, seq 164, length 64 Quote: ~# tcpdump -i br1 icmp tcpdump: WARNING: br1: no IPv4 address assigned tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on br1, link-type EN10MB (Ethernet), capture size 96 bytes 10:10:20.241803 IP 52.102.B.A > 91.198.10.10: ICMP echo request, id 41473, seq 210, length 64 10:10:20.249523 IP 91.198.10.10 > 52.102.B.A: ICMP echo reply, id 41473, seq 210, length 64 10:10:21.241798 IP 52.102.B.A > 91.198.10.10: ICMP echo request, id 41473, seq 211, length 64 Quote: ~# tcpdump -i eth1 icmp tcpdump: WARNING: eth1: no IPv4 address assigned tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 10:10:30.241823 IP 52.102.B.A > 91.198.10.10: ICMP echo request, id 41473, seq 220, length 64 10:10:30.249216 IP 91.198.10.10 > 52.102.B.A : ICMP echo reply, id 41473, seq 220, length 64 10:10:31.241850 IP 52.102.B.A > 91.198.10.10: ICMP echo request, id 41473, seq 221, length 64 10:10:31.248458 IP 91.198.10.10 > 52.102.B.A : ICMP echo reply, id 41473, seq 221, length 64 10:10:32.241812 IP 52.102.B.A > 91.198.10.10: ICMP echo request, id 41473, seq 222, length 64 ~# vzctl --help Quote: [--netif_add <ifname[,mac,host_ifname,host_mac ] [--netif_del <ifname>] получаетса пакети проходят через интерфейси, но не доходят до veth52.1? Мак адреса всюда (eth1, br1, veth52.1) такие как укаазал датацентр. пингую з дому IP которая на VPS. делаю tcpdump -i br1 icmp - пакети есть tcpdump -i veth52.1 icmp - тишина Нет доступа с бриджа к veth52.1 ?
У нас в Вами разные версии vzctl У меня vzctl version 3.0.23-1pve3 Quote: Чтоб вручну не поднимать добавил в /etc/network/interfaces Это делать не имеет смысла, networking стартует раньше чем veth, действия с интерфейсами veth должен выполнять скрипт /usr/sbin/vznetcfg в момент старта VE А что выдаст команда ip a l
vzctl version 3.0.22 Quote: ~# ip a l 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:30:18:b0:c1:a2 brd ff:ff:ff:ff:ff:ff inet A.B.101.43/24 brd A.B.101.255 scope global eth0 inet6 fe80::230:18ff:feb0:c1a2/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000 link/ether 00:30:18:b0:c1:a1 brd ff:ff:ff:ff:ff:ff inet6 fe80::230:18ff:feb0:c1a1/64 scope link valid_lft forever preferred_lft forever 5: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN link/void 8: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN link/ether 00:30:18:b0:c1:a1 brd ff:ff:ff:ff:ff:ff inet6 fe80::230:18ff:feb0:c1a1/64 scope link valid_lft forever preferred_lft forever 12: veth52.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN link/ether 00:30:18:b0:c1:a1 brd ff:ff:ff:ff:ff:ff inet6 fe80::230:18ff:feb0:c1a1/64 scope link valid_lft forever preferred_lft forever
Вы должны сами заметить у Вас везде - state UNKNOWN Почему у Вас так, не знаю. Попробуйте руками дать команду для каждого интерфейса ifconfig lo up ifconfig eth0 up и для всех прочих Следите за системными сообщениями и логами У меня бриджи(и не только бриджи) выглядят так: 36: vmbr0: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc noqueue link/ether 00:15:60:ac:56:5a brd ff:ff:ff:ff:ff:ff inet 10.1.11.111/24 brd 10.6.2.255 scope global vmbr0 inet6 fe80::215:60ff:feac:565a/64 scope link valid_lft forever preferred_lft forever 38: vmbr1: <BROADCAST,MULTICAST,UP,10000> mtu 1500 qdisc noqueue link/ether 00:15:60:ac:56:5a brd ff:ff:ff:ff:ff:ff inet6 fe80::215:60ff:feac:565a/64 scope link valid_lft forever preferred_lft forever
И еще, я не вижу у Вас в /etc/network/interfaces auto lo iface lo inet loopback Вы решили без loopback обойтись? Так не бывает.
sa10 wrote on Mon, 01 June 2009 04:47 И еще, я не вижу у Вас в /etc/network/interfaces auto lo iface lo inet loopback Вы решили без loopback обойтись? Так не бывает. Нет, я просто его не указал, он есть. ip a l - его отображает...
Незнаю почему, но у меня на домашнем ПК также state UNKNOWN Ну там нет OpenVZ, он просто как домашний ПК, сеть работает. Возможно не в етом дело... Может все дело в gateway по умолчанию, когда я запускаю пинг на VPS, смотрю с помощью tcpdump icmp пакети на интерфейсах, то на eth0 ани также есть, как и на бридже, veth и на eth1
И действительно, я проверил, этот параметр только в Debian lenny есть, и он есть всегда. У меня основной рабочий сервер под Debian Etch, это сбило меня с толку. Покажите ка свой /etc/sysctl.conf И еще вывод команд: sysctl -a | grep bridge sysctl -a | grep arp Если вторая команда может вывалит много, загоните вывод в файл и прицепите его к сообщению. И еще вопрос - не запущены ли на вашей системе фаерволы, может они блокируют трафик?
ой, чтото здесь дела у меня не очень Quote: ~# sysctl -a | grep bridge error: "Success" reading key "dev.parport.parport0.autoprobe" error: "Success" reading key "dev.parport.parport0.autoprobe0" error: "Success" reading key "dev.parport.parport0.autoprobe1" error: "Success" reading key "dev.parport.parport0.autoprobe2" error: "Success" reading key "dev.parport.parport0.autoprobe3" error: permission denied on key 'net.ipv4.route.flush' net.bridge.bridge-nf-call-arptables = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-filter-vlan-tagged = 1 net.bridge.bridge-nf-filter-pppoe-tagged = 1 error: permission denied on key 'net.ipv6.route.flush'
А показать свой файл? И попробуем добавить в sysctl.conf: #disable bridge-nf-call net.bridge.bridge-nf-filter-vlan-tagged=0 net.bridge.bridge-nf-call-ip6tables=0 net.bridge.bridge-nf-call-iptabels=0 net.bridge.bridge-nf-call-arptables=0 net.bridge.bridge-nf-filter-pppoe-tagged=0 ### net.ipv4.conf.default.forwarding=1 net.ipv4.conf.default.proxy_arp = 0
сделал Quote: ~# sysctl -p net.ipv4.conf.all.rp_filter = 1 net.ipv4.ip_forward = 1 net.ipv4.conf.default.forwarding = 1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.eth0.proxy_arp = 1 kernel.sysrq = 1 net.bridge.bridge-nf-filter-vlan-tagged = 0 net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 net.bridge.bridge-nf-filter-pppoe-tagged = 0 Перегрузил, ничего.
Про фаервол Вы не ответили. Если не он, то у меня идей не густо. Можно еще макадреса для VE перегенерить на всякий случай. Маловероятно, но могли совпасть. Может, конечно, я недостаточно внимательно посмотрел на ситуацию. Но все должно работать. Вы упоминали датацентр, они не могли ...? Я подозреваю, что нет, у вас внутри между интерфейсами не ходят пакеты, если я верно понял. Сдаваться нельзя. Одна из самых эффективных методик - метод последовательного исключения элементов. Можно поменять ядро. Ниже в форуме я описывал как ставить ядро CENTOS на Debian. Потом пытаться обновить или откатить софт. Откатить конфигурацию на умолчальную, упростить ее до минимума. Ну еще на всякий случай свой sysctl.conf приложу. Там пару параметров все же отличается. Если ничего не поможет, то вероятнее всего где-то вы намудрили. В такой ситуации я бы переставил систему (ненавижу этот вариант) и сделал все скурпулезно по документации и ПРАВИЛЬНО. А этот вариант ядра и /etc/ сохранить для анализа. Просто времени меньше уйдет если это критично. Однако, чтобы быть в себе уверенным, важно понять где собака.... P.S. Еще замечу, что в proxmox для работы с бриджами дополнительный срипт используется (/usr/sbin/vznetaddbr) которого кажется нет в стандартном openvz. Мне не на чем проверить, везде уже proxmox поставил, но с ядрами от CENTOS.
фаервола не делал Quote: ~# iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Quote: ~# iptables -t nat -L Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Только когда не било OpenVZ настаивал маршрутизацию, чтоб работали две сетевие Quote: #!/bin/bash echo route add ip route add default via A.B.101.1 dev eth0 table A.B.101.1 ip route add default via A.B.102.1 dev eth1 table A.B.102.1 ip rule add from A.B.101.0/24 table A.B.101.1 ip rule add from A.B.102.0/24 table A.B.102.1 Но после /etc/init.d/networking restart - ето правило не работает. Quote: ~# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface localnet * 255.255.255.0 U 0 0 0 eth0 default 1.101.B.A.co 0.0.0.0 UG 0 0 0 eth0 Если запустить правило, то Quote: ~# /root/route route add RTNETLINK answers: File exists RTNETLINK answers: No such process Тоисть eth1 не настроет какби явно, потому и ругаетса. Может все дело в gateway по умолчанию, когда я запускаю пинг на VPS, смотрю с помощью tcpdump icmp пакети на интерфейсах, то на eth0 ани также есть, как и на бридже, veth и на eth1. Может в етом дело? На счет датацентра, то они мен говорили, что просто тольки в них ограничение - ето привязка нужного мака к нужному интерфейсу, и все. Тоисть у меня есть 2 IP с одним маком, и 2 IP c другим. Когда я настраивал в процессе того как ви мне помогали, я ставил по разному макадреси на eth1, veth52.1, br1, вконце всего поставил всюда той мак что мне дал датацентр для eth1, может замного маков однакових? На счет proxmox, будет ли мне проще настроить ети интерфейси для мого случаю, используя proxmox, там ето както попроще? Ато я немного в отчаяние( П.С. Когда пингую IP, которий на VPS - то пакети есть и на eth0, ето ж неверно?? Или может особенности датацентра.
Ваши команды для маршрутизации можно занести в /etc/network/interfaces Примерно так это должно выглядеть: auto eth0 iface eth0 inet static address A.B.101.10 netmask A.B.101.255 gateway A.B.101.2 up ip route add default via A.B.101.1 dev eth0 table A.B.101.1 up ip rule add from A.B.101.0/24 table A.B.101.1 down ip route del default via A.B.101.1 dev eth0 table A.B.101.1 Похоже наша проблема в макадресах. Здесь правила следующие: На одном макадресе может быть один физический или виртуальный интерфейс. Здесь не имеюются ввиду интерфейсы вида eth0:1 - это алиас, а не интерфейс. Иначе никому не разберется куда надо пересылать пакеты. Чтобы за одним макадресом (интерфейсом) было несколько интерфейсов может использоваться трансляция MASQ, NAT, SNAT. Но это не наш случай. Пакет приходит по макадресу на eth0, средствами ядра передается в бридж (бридж имеет макадрес от eth0, совпадает с ним, ведь это тот же интерфейс), бридж пересылает пакет на нужный veth по его макадресу и пакет попадает внутрь VE на его eth0. Макадрес veth уникален (не совпадает ни с чем) Для него задается пара значений mac - макадрес eth0 внутри (в окружении) VE host_mac - макадрес veth в окружении HN NETIF="ifname=eth0,bridge=br0035,mac=00:18:51:A3:3B:B8,host_ifname=veth4353.0,host_mac=00:18:51:55:8C:A1; Повторю, что оба значения должны быть уникальны, иначе ядро не будет знать куда девать пакеты. Надеюсь, я здесь не напутал ничего, но не гарантирую
На счет proxmox, будет ли мне проще настроить ети интерфейси для мого случаю, используя proxmox, там ето както попроще? Я так понял ви используете на дебиане ядро от Centos для промокса? А почему так?
Да, там все довольно просто. Тот же debian и openvz с вебинтерфейсом и средствами кластеризации. А ядро... До сего момента ядро 2.6.24 имеет проблемы с шейпингом на veth интерфесах. Я писал об этом на proxmox и здесь, но пока увы... 2.6.18 конкретно для моих задач пока предпочтительнее. Но очень жду 2.6.24. Оно позволяет мониторинг активности ввода/вывода (iotop), а это для систем виртуализации очень полезная штука.
sa10 wrote on Tue, 02 June 2009 10:15 Да, там все довольно просто. Тот же debian и openvz с вебинтерфейсом и средствами кластеризации. А ядро... До сего момента ядро 2.6.24 имеет проблемы с шейпингом на veth интерфесах. Я писал об этом на proxmox и здесь, но пока увы... 2.6.18 конкретно для моих задач пока предпочтительнее. Но очень жду 2.6.24. Оно позволяет мониторинг активности ввода/вывода (iotop), а это для систем виртуализации очень полезная штука. То может мне поставить proxmox и там настраивать интерфейси и не мучаться? Ноя не уверен что там не будет также непонятно что и как делать как и тут. Ви мне что порекомендуете?
Если поставите везде одинаковые макадреса, будет то же самое Просто гляньте на сайт, там видеоролики с демонстрацией работы. http://download.proxmox.com/wiki/Category:Video_Tutorials
Переназначил маки (с "потолка"), не работает. Смторите мои интерфейси Quote: ~# ifconfig br1 Link encap:Ethernet HWaddr 00:30:18:b0:c1:a1 inet6 addr: fe80::230:18ff:feb0:c1a1/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:959 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:44691 (43.6 KiB) TX bytes:468 (468.0 B) eth0 Link encap:Ethernet HWaddr 00:30:18:b0:c1:a2 inet addr:A.B.101.43 Bcast:A.B.101.255 Mask:255.255.255.0 inet6 addr: fe80::230:18ff:feb0:c1a2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:903 errors:0 dropped:0 overruns:0 frame:0 TX packets:492 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:70444 (68.7 KiB) TX bytes:193894 (189.3 KiB) Interrupt:18 Base address:0xf000 eth1 Link encap:Ethernet HWaddr 00:30:18:b0:c1:a1 inet6 addr: fe80::230:18ff:feb0:c1a1/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1022 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:61897 (60.4 KiB) TX bytes:936 (936.0 B) Interrupt:19 Base address:0xf200 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:560 (560.0 B) TX bytes:560 (560.0 B) venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) veth52.1 Link encap:Ethernet HWaddr 00:31:19:b0:c1:a3 inet6 addr: fe80::231:19ff:feb0:c1a3/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6 errors:0 dropped:0 overruns:0 frame:0 TX packets:517 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:384 (384.0 B) TX bytes:24007 (23.4 KiB)
sa10 wrote on Fri, 29 May 2009 10:09 У нас в Вами разные версии vzctl У меня vzctl version 3.0.23-1pve3 А как мне привязать интерфейс к бриджу в моей версии, и как оно влияет на работу, может еще ето надо сделать?
Это можно сделать, но если у вас не ходят пакеты, пользы в этом мало. Где-то вы сделали нечто нехорошее и не придали этому значения. Выковыривать дистанционно это сложно, мне уже не хочется Рекомендую попробовать поставить аккуратно начисто proxmox, там все есть для ваших задач.
sa10 wrote on Wed, 03 June 2009 11:38 Это можно сделать, но если у вас не ходят пакеты, пользы в этом мало. Где-то вы сделали нечто нехорошее и не придали этому значения. Выковыривать дистанционно это сложно, мне уже не хочется Рекомендую попробовать поставить аккуратно начисто proxmox, там все есть для ваших задач. Ви правие, просто я хотел для себя составить нормально и последовательно пункти что и как делать, чтоб не било путаници типа "чтото там, чтото там..", а ето какраз незнаю как сделать? но уже нашол... Но я вам и на етом просто безгранично благодарен, так как только ВИ, и больше никто мне не помог по сути. Благодаря Вам я много прояснил для себя. Попольше б таких как Ви. В знак благодарности не обойду никого стороной, если смогу комуто чтото помочь.
Проделавши все сначала - вплоть с переустановки системи (что меня ахти как не радует). Сделавши все как в вики здесь, накурившись и нажравшись Говту и прочего на форуме мені так и не удалось достичь желаемого результата. Установить proxmox - системи которая большую часть возможнго б решила не получаетса - так как у меня не подхзодящая архитектура процессора (і686), там надо 64 розр. Делал как описано в http://wiki.openvz.org/Using_private_IPs_for_Hardware_Nodes# Making_the_configuration_persistent все подимаетса, автоматом и как надо, но НЕ работает. Одно что хорошо - две вирт машини пингуют одна другую. Как випустить их на ВОЛЮ! Радотает только одно решение - создавать сервера и подключать только с помощью venet. Но ето очень ограничивает, не та универсальность что хотелося. Итог пока только один - все кроетса в том что у меня два интерфейса з двох разних сетей. Гетевей по умолчанию может бить только один. Он настроен на eth0, через него я конфигурую eth1 и проеряю работоспособность. ВОзможно надо както реализовать роутинг, но уви у меня ни опита, ни знаний не хватает. Когда разберуся - обезательно напишу как, что и по чем дела обстоят. Странно, наскольно ето редкой случай, ноя пока работаещего решения не нашол.
Бридж автоматом ставит себе мак адрес одного из veth или eth1 (в зависимости от того кто последний подимаетса), ето нормально?
Это нормально. Попробуйте все сделать руками: создал бридж brctl addbr br0123 проверил что с маками (если интересно) ip a s br0123 запустил VE2203 vzctl start 2203 при старте создался интерефейс veth2203.0 проверил что с маками (если интересно) ip a s veth2203.0 втыкаем его в бридж brctl addif br0123 veth2203.0 Проверил что получилось brctl show воткрнул в бридж eth0 brctl addif br0123 eth0 Проверил что получилось brctl show и смотрим состояние и параметры всех интерфейсов ip a l все должно быть UP, на eth0 и veth2203.0 не должно быть IP адресов. IP Адрес, в окружении VE0, при такой схеме допусим только на br0123 Потом проверяем хождение пакетов (tcpdump)
есть br1 eth1 veth52.0 veth74.0 Все в бридже br1. Для каких интерфейсов надо node: echo 1 > /proc/sys/net/ipv4/conf/ИНТЕРФЕЙС/forwarding node: echo 1 > /proc/sys/net/ipv4/conf/ИНТЕРФЕЙС/proxy_arp делать, а для каких нет. Какова суть включения етих параметров для того или инного интерфейса? Ато если сделать для всех - ето вроде как би неверно - потому что ктото из интерфейсов может "стать пупом интернета" и отвечает на все запроси (и на чужие тоже), что очень нехорошо, и за что могут убрать сервер.
Гуглом научить пользоваться? http://gazette.linux.ru.net/rus/articles/lartc/x2879.html http://mindprovider.livejournal.com/10063.html
sa10 wrote on Fri, 19 June 2009 09:08 Гуглом научить пользоваться? http://gazette.linux.ru.net/rus/articles/lartc/x2879.html http://mindprovider.livejournal.com/10063.html все хорошо, научили гуглить) Только вот я читал ваши линки, и читал http://wiki.openvz.org/Veth что получаетса, если я правильно заметил Quote: Что будет если использовать bridge и proxy_arp вместе? Мне кажется так вообще нельзя делать. Потому что ядро начнет говорить что мас его бриджа пуп земли. Proxy_arp потеряет координацию и будет сообщать одновременно во все забриджованные интерфейсы, на которых включен proxy_arp, свой mac на любой arp-запрос пришедший в бридж. Получится чтото типа широковещательного конфликта IP-адресов Quote: еперь процедура настройки псевдо-моста выглядит так: Назначить IP-адреса интерфейсам с обоих сторон. Создать маршруты, так чтобы ваша машина знала, какие адреса, по какую сторону находятся. Включить проксирование ARP для обоих интерфейсов, например командами: echo 1 > /proc/sys/net/ipv4/conf/ethL/proxy_arp echo 1 > /proc/sys/net/ipv4/conf/ethR/proxy_arp и вики http://wiki.openvz.org/Veth#Configure_bridge_device Quote: Configure bridge device [host-node]# ifconfig vzbr0 0 [host-node]# echo 1 > /proc/sys/net/ipv4/conf/vzbr0/forwarding [host-node]# echo 1 > /proc/sys/net/ipv4/conf/vzbr0/proxy_arp Так от, както два протеречиви мнения, в вики надо включать arp_proxy, а люди говорят что етого невкоем случаи ненада делать. Я больше склоняюсь к http://gazette.linux.ru.net/rus/articles/lartc/x2879.html тоисть для обох интерфейсов слева и спрва от бриджа нада включать прокси, а на бридже НЕТ! Учитса гуглить дальше? Собственна потому и задавал такие вопроси
Удалось всетаки поднять 3-и виртуала, без потери одного IP адреса. Просто с eth1 один IP адрес переместили к eth0 (у датацентра). К eth0 все подключено (2-ва VPS) через venet, а eth1 проброшен полностью в третий VPS. А бридж работал, просто VPS рвалась в инет со сторонним маком, и его роутер банил. Ставить всем VPS-м в бридже один мак наверное не помоглоб и неверно.