LINUX.ORG.RU
ФорумAdmin

openvz не работает сеть

 


0

1

Не работает сеть в контейнерах. На хосте сделал мост, подключил на него сеть самого хоста и контейнеров. Iptable отключен везде. Подскажите, изза чего может не работать. Хост находится в ВМ на hyper-v, но не думаю, что это как-то должно повлиять на проблему.

/etc/sysctl.conf =================

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 1
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-arptables = 0
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.conf.default.forwarding=1

# ifconfig

eth2      Link encap:Ethernet  HWaddr 00:15:5D:00:12:3D  
          inet6 addr: fe80::215:5dff:fe00:123d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1067890 errors:0 dropped:0 overruns:0 frame:0
          TX packets:189081 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1517143806 (1.4 GiB)  TX bytes:14915438 (14.2 MiB)

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:65536  Metric:1
          RX packets:59 errors:0 dropped:0 overruns:0 frame:0
          TX packets:59 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:6464 (6.3 KiB)  TX bytes:6464 (6.3 KiB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet6 addr: fe80::1/128 Scope:Link
          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:12 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

veth1000.2 Link encap:Ethernet  HWaddr 00:18:51:7F:0F:04  
          inet6 addr: fe80::218:51ff:fe7f:f04/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3202 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:3 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:89872 (87.7 KiB)  TX bytes:188 (188.0 b)

veth1200.0 Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF  
          inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:21 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:6 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:804 (804.0 b)  TX bytes:0 (0.0 b)

vmbr1     Link encap:Ethernet  HWaddr 00:15:5D:00:12:3D  
          inet addr:10.1.1.111  Bcast:10.1.1.255  Mask:255.255.255.0
          inet6 addr: fe80::215:5dff:fe00:123d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1064248 errors:0 dropped:0 overruns:0 frame:0
          TX packets:189065 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1501770671 (1.3 GiB)  TX bytes:14915510 (14.2 MiB)

/etc/sysconfig/network-scripts/ifcfg-eth2 =========================================

DEVICE=eth2
HWADDR=00:15:5D:00:12:3D
TYPE=Ethernet
ONBOOT=yes
IPV6INIT=no
NM_CONTROLLED=no
BRIDGE=vmbr1

/etc/sysconfig/network-scripts/ifcfg-vmbr1 =========================================

DEVICE=vmbr1
NAME=vmbr1
TYPE=Bridge
BOOTPROTO=static
USERCTL=no
ONBOOT=yes
DELAY=0
IPV6INIT=no
IPADDR=10.1.1.111
NETMASK=255.255.255.0
NETWORK=10.1.1.0
BROADCAST=10.1.1.255
GATEWAY=10.1.1.254
DNS1=10.1.1.42

/etc/vz/conf/1200.conf ======================

# RAM
PHYSPAGES="0:524288"

# Swap
SWAPPAGES="0:262144"

# Disk quota parameters (in form of softlimit:hardlimit)
DISKSPACE="4194304:4194304"
DISKINODES="131072:144179"
QUOTATIME="0"

# CPU fair scheduler parameter
CPUUNITS="1000"

NETFILTER="stateless"
VE_ROOT="/vz/root/$VEID"
VE_PRIVATE="/vz/private/$VEID"
VE_LAYOUT="ploop"
OSTEMPLATE="centos-6-x86_64-minimal"
ORIGIN_SAMPLE="vswap-1g"
NAME="test1"
ONBOOT="yes"
HOSTNAME="test1"
NETIF="ifname=eth0,bridge=vmbr1,mac=00:18:51:F3:7B:5E,host_ifname=veth1200.0,host_mac=FE:FF:FF:FF:FF:FF"
NAMESERVER="10.1.1.42"
CPUS="1"
FEATURES="nfs:on"
CAPABILITY="SYS_TIME:on"

контейнер 1200 ==========

# ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:18:51:F3:7B:5E  
          inet addr:10.1.1.113  Bcast:10.1.1.255  Mask:255.255.255.0
          inet6 addr: fe80::218:51ff:fef3:7b5e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:804 (804.0 b)

/vz/root/1200/etc/sysconfig/network-scripts/ifcfg-eth0 ============================================

DEVICE="eth0"
HOSTNAME="test1"
IPV6INIT="no"
MTU="1500"
TYPE="Ethernet"
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.1.1.113
NETMASK=255.255.255.0
GATEWAY=10.1.1.254
PEERDNS=no
DEFROUTE=no


У тебя через интерфейс vmbr1 должны выходить и сам сервер и контейнеры? Попробуй разделить, для контейнеров отдельный мост без адреса.

sin_a ★★★★★
()
Ответ на: комментарий от sin_a
vzkernel-2.6.32-042stab134.8.x86_64
vzctl-core-4.11.1-1.x86_64
vzctl-4.11.1-1.x86_64

# ip a на хосте:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 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> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:15:5d:00:12:3c brd ff:ff:ff:ff:ff:ff
3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:15:5d:00:12:3d brd ff:ff:ff:ff:ff:ff
    inet6 fe80::215:5dff:fe00:123d/64 scope link 
       valid_lft forever preferred_lft forever
4: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/void 
    inet6 fe80::1/128 scope link 
       valid_lft forever preferred_lft forever
13: vmbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 00:15:5d:00:12:3d brd ff:ff:ff:ff:ff:ff
    inet 10.1.1.111/24 brd 10.1.1.255 scope global vmbr1
    inet6 fe80::215:5dff:fe00:123d/64 scope link 
       valid_lft forever preferred_lft forever
15: veth1000.2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 00:18:51:7f:0f:04 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::218:51ff:fe7f:f04/64 scope link 
       valid_lft forever preferred_lft forever
16: veth1200.0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether fe:ff:ff:ff:ff:ff brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fcff:ffff:feff:ffff/64 scope link 
       valid_lft forever preferred_lft forever

ha-ha
() автор топика
Ответ на: комментарий от ha-ha

У меня схема немного отличается, для хоста и контейнеров разные вланы. Вот фрагмент вывода ip:

3: eth1

12: eth1.90@eth1
    inet 1.2.3.4/24 brd 1.2.3.4 scope global eth1.90

10: eth1.400@eth1
11: vzbr400
13: veth222.0
А почему у тебя в NETIF указан host_mac=FE:FF:FF:FF:FF:FF? Правда я даже не знаю что за мак там должен быть, но у меня это выглядит как мак. Добавляю такой командой:
vzctl set <CTID> --netif_add <VEIfname>,,,,bridgname<VlanID> --save

sin_a ★★★★★
()
Ответ на: комментарий от sin_a

На хосте hyper-v, интерфейс для CT0 тегированный. Но на самом CT0 никаких вланов нет и сеть работает.

ha-ha
() автор топика
Ответ на: комментарий от sin_a

А с маком посмотрел? Что если заменить на нормальный?

да, смотрел. Не помогает.

На хосте запускаю tcpdump на veth1200.0. И пингую из контейнера. tcpdump показывает это:

05:18:47.724184 ARP, Request who-has iRMC41398F tell 10.1.1.113, length 28
05:18:48.724176 ARP, Request who-has iRMC41398F tell 10.1.1.113, length 28
05:18:49.724865 ARP, Request who-has iRMC41398F tell 10.1.1.113, length 28
05:18:51.725184 ARP, Request who-has iRMC41398F tell 10.1.1.113, length 28
05:18:52.725185 ARP, Request who-has iRMC41398F tell 10.1.1.113, length 28
05:18:53.725174 ARP, Request who-has iRMC41398F tell 10.1.1.113, length 28
т.е. вижу только arp запросы

ha-ha
() автор топика
Ответ на: комментарий от ha-ha

Меня смущает что у тебя на бридже адрес и к нему же подключаются интерфейсы контейнеров. Но может это так и надо, я очень мало имел дела с мостами.

Можно попробовать выполнить тестовую установку на физическое железо (какой нибудь условный ноутбук на атоме), чтобы исключить возможность наводок hyper-v. И если заработает как ожидается то смотреть разницу.

По их описанию я выполнял установку (только названные действия на свежеустановленной системе) и всё работало нормально. Сеть, с учётом вланов, настраивалась так: на физическом интерфейсе ONBOOT=no, с вланом для HN всё понятно, остальные вланы:

DEVICE=eth0.XX
TYPE=Ethernet

ONBOOT=yes
NOZEROCONF=yes
NM_CONTROLLED=no

VLAN=yes
BRIDGE=brnameXX
BOOTPROTO=none
Мосты:
DEVICE=brnameXX
TYPE=Bridge

ONBOOT=yes
NOZEROCONF=yes
NM_CONTROLLED=no

BOOTPROTO=none
После чего
vzctl set <CTID> --netif_add eth0,,,,brname<VlanID> --save
И при старте:
/usr/sbin/brctl addif brname<VlanID> veth<CTID>.0
Но у тебя вроде всё выглядит примерно также.

sin_a ★★★★★
()
Ответ на: комментарий от sin_a

Пересоздал мост, как описано в https://wiki.openvz.org/Quick_Installation_CentOS_6

Контейнеры стали пинговаться, но только с хоста. с локальной сети они не доступны. И если перенести настройки сети хоста на другую сетевую, то также контейнеры не пингуются.

ha-ha
() автор топика
Ответ на: комментарий от ha-ha

Контейнеры стали пинговаться, но только с хоста. с локальной сети они не доступны.

Как при venet. Попробуй всё таки протестировать на чистом железе по моей ссылке (legacy). По твоей: «This is an unofficial guide».

Вообще, лишний слой витруализации это лишние накладные расходы. А так, на железе с vz в принципе и kvm использовать должно быть возможно. В virtuozzo вроде и заявляется возможность одновременно того и другого.

sin_a ★★★★★
()
Ответ на: комментарий от sin_a

Установил VZ7 на железку, мигрировал туда контейнеры. Сеть работает как надо. Попробую всё-таки ещё поэксперементровать с VZ7 внутри hyper-v, особенная производительность там не нужна.

ha-ha
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.