1 (22.03.2014 17:25:01 отредактировано Marley)

Здравствуйте!

Помогите пожалуйста настроить сеть.

Настраиваю в целях изучения технологий LXC. Сеть настраивается также как и в этой теме. (по крайней мере внешне).

LXC контейнер работает на виртуальной машине VirtualBox. OS Centos 6.5.

Контейнер создавал следующим образом :

Все установилось, работает. Пинги между хостом и гостем проходят. Не знаю как настроить сеть для работы контейнера с других компьютерами сети.

Хотелось бы настроить следующим образом:

http://wiki.libvirt.org/wiki/images/2/2c/Virtual_network_switch_in_routed_mode.png

Virtual Networking
http://wiki.libvirt.org/page/VirtualNetworking


Т.е. нужно, чтобы виртуальная машина работала в той же подсети, что и хост машина.

Использовать NAT не хочу.
На VirtualBox такая задача решилась без каких-либо затруднений.


Конфиг с сетью по по умолчанию сейчас удален.

# virsh net-list
Name                 State      Autostart     Persistent
--------------------------------------------------

Iptables отключен.

====================
Конфиги:


HOST

# ifconfig
br0       Link encap:Ethernet  HWaddr 08:00:27:74:F2:C7  
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe74:f2c7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1166 errors:0 dropped:0 overruns:0 frame:0
          TX packets:792 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:90689 (88.5 KiB)  TX bytes:89767 (87.6 KiB)

eth0      Link encap:Ethernet  HWaddr 08:00:27:74:F2:C7  
          inet6 addr: fe80::a00:27ff:fe74:f2c7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1400 errors:0 dropped:0 overruns:0 frame:0
          TX packets:804 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:179445 (175.2 KiB)  TX bytes:90511 (88.3 KiB)

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: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)

veth0     Link encap:Ethernet  HWaddr 56:C4:6B:54:ED:A1  
          inet6 addr: fe80::54c4:6bff:fe54:eda1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:85 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:636 (636.0 b)  TX bytes:6852 (6.6 KiB)
# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no
# cat /etc/sysconfig/network-scripts/ifcfg-br0 
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.11
NETWORK=192.168.1.0
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DELAY=0
NM_CONTROLLED=no
# brctl show br0
bridge name    bridge id        STP enabled    interfaces
br0        8000.08002774f2c7    no        eth0
                            veth0
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br0
169.254.0.0     0.0.0.0         255.255.0.0     U     1005   0        0 br0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 br0
# cat /proc/sys/net/ipv4/ip_forward
1

GUEST

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:3E:A3:80:27  
          inet addr:192.168.1.101  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::216:3eff:fea3:8027/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:94 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7803 (7.6 KiB)  TX bytes:636 (636.0 b)

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: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)
# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE="eth0"
BOOTPROTO="static"
ONBOOT="yes"
IPADDR=192.168.1.101
NETMASK=255.255.255.0
GATEWAY=192.168.1.11

====================================

Пытался создать виртуальную сеть как делал LuckyStar в той же подсети, что и мост.

# cat /etc/libvirt/qemu/networks/network.xml
<network>
  <name>network</name>
  <uuid>d2b6aa94-98c8-4528-ba72-e10bc9600fde</uuid>
  <forward dev='eth0' mode='route'>
    <interface dev='eth0'/>
  </forward>
  <bridge name='virbr0' stp='on' delay='0' />
  <mac address='52:54:00:9D:CA:A5'/>
  <ip address='192.168.1.100' netmask='255.255.255.0'>
  </ip>
</network>

При добавлении получал сообщение

# virsh -c lxc:/// net-start network
error: Failed to start network network
error: internal error Network is already in use by interface br0
No Woman No Cry...

2

Если нужно, чтобы виртуалка работала в той же сети, что и хост, подключаете адаптер виртуалки в бридж и или прописываете в виртуалке статический айпишник из этой сети, или виртуалка получается его по dhcp, если он у вас используется.

3 (22.03.2014 12:11:42 отредактировано Marley)

Спасибо за столь быстрый ответ.

==================

Host и Gest нормально работают между собой.
Их Ip в одной подсети.

Адаптер виртуалки в бридже

# brctl show br0
bridge name    bridge id        STP enabled    interfaces
br0        8000.08002774f2c7    no        eth0
                            veth0

Я хочу, чтобы Guest работал с другими компьютерами этой подсети.

No Woman No Cry...

4

на хосте роутинг включен? покажите содержимое /etc/sysctl.conf

5 (22.03.2014 12:12:03 отредактировано Marley)

# cat /proc/sys/net/ipv4/ip_forward
1

# cat  /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

# Controls the default maxmimum size of a mesage queue
kernel.msgmnb = 65536

# Controls the maximum size of a message, in bytes
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296
No Woman No Cry...

6 (20.03.2014 19:18:05 отредактировано alexfinn)

такое ощущение, что у вас в голове какая-то путаница происходит
покажите вывод команды

netstat -r

и нарисуйте хоть примерную схему сети и виртуалок

7

http://img.fotografii.org/images/network/mynetwork.png


HOST

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.101   192.168.1.11    255.255.255.255 UGH       0 0          0 br0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 br0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 br0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 br0


GUEST

[root@lxc-test ~]#  netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         192.168.1.11    0.0.0.0         UG        0 0          0 eth0


Client

# netstat -rn
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth1
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
192.168.1.101   192.168.1.11    255.255.255.255 UGH       0 0          0 eth1
No Woman No Cry...

8

вообще, это какое-то жуткое извращение... я бы на вашем месте попытался упростить схему
а так, если я правильно понимаю, то интерфейс lxc-виртуалки в бридж на virtualbox-виртуалки, который в бридже на хосте

9 (22.03.2014 12:19:41 отредактировано Marley)

Стенд собран для тестирования. Как завершу тестирование/изучение LXC , откачу виртуальную машину на точку до инсталляции LXC. Использовать для работы в такой конфигурации не планирую.

----

На хосте бридж br0, в котором интерфейс eht0 самой виртуалки и интерфейс LXC veth0.

HOST

# brctl show br0
bridge name    bridge id        STP enabled    interfaces
br0        8000.08002774f2c7    no        eth0
                            veth0
No Woman No Cry...

10

Проблему решил.
Нужно было настраивать маршрутизацию на роутере.
Свои сообщения, которые могут ввести в заблуждение, отредактировал


==========================
==========================


ROUTER

На роутере добавил статический маршрут:

Destination IP Address: 192.168.1.101
IP Subnet Mask: 255.255.255.0
Gateway IP Address:  192.168.1.11

=========

LXC

-- вот уж не подумал бы, что нужно прописывать такой маршрут. т.к. GW и так указан как 192.168.1.11

[root@lxc-test ~]# route add -net 192.168.1.0/24 gw 192.168.1.11

===================

CLIENT

root@notebook:~# route add -host 192.168.1.101 gw 192.168.1.1
root@notebook:~# ping -c 3 192.168.1.101
PING 192.168.1.101 (192.168.1.101) 56(84) bytes of data.
64 bytes from 192.168.1.101: icmp_req=1 ttl=63 time=1.30 ms
From 192.168.1.11: icmp_seq=2 Redirect Host(New nexthop: 192.168.1.101)
64 bytes from 192.168.1.101: icmp_req=2 ttl=63 time=3.91 ms
From 192.168.1.11: icmp_seq=3 Redirect Host(New nexthop: 192.168.1.101)
64 bytes from 192.168.1.101: icmp_req=3 ttl=63 time=1.27 ms

--- 192.168.1.101 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 1.272/2.163/3.917/1.240 ms

===================


LXC

[root@lxc-test ~]# ping -c 3 192.168.1.6
PING 192.168.1.6 (192.168.1.6) 56(84) bytes of data.
64 bytes from 95.31.31.8: icmp_seq=1 ttl=62 time=7.84 ms
From 192.168.1.11: icmp_seq=2 Redirect Host(New nexthop: 192.168.1.6)
64 bytes from 192.168.1.6: icmp_seq=2 ttl=62 time=6.77 ms
From 192.168.1.11: icmp_seq=3 Redirect Host(New nexthop: 192.168.1.6)
64 bytes from 95.31.31.8: icmp_seq=3 ttl=62 time=17.2 ms

--- 192.168.1.6 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2026ms
rtt min/avg/max/mdev = 6.772/10.618/17.241/4.703 ms
No Woman No Cry...