LinuxForum.Fans
Тема

(РЕШЕНО) Настроить сеть: Centos 6.5, Linux LXC, Libvirt (Routed Mode)

Автор: Marley 10 сообщений 7235 просмотров
#373119

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

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

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

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

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

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

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



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


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

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


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

text

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

Iptables отключен.

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


HOST

text

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

text

# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no
text

# 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
text

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

text

# 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
text

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

GUEST

text

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

text

# 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 в той же подсети, что и мост.

text

# 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>

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

text

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

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

#373123

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

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

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

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

text

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

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

#373127

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

#373204
text

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

# 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

#373206

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

text
netstat -r

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

#373221




HOST

text

# 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

text

[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

text

# 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

#373223

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

#373319

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

----

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

HOST

text

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

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



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


ROUTER

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

text
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

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

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

CLIENT

text
root@notebook:~# route add -host 192.168.1.101 gw 192.168.1.1
text
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

text

[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

Войдите или зарегистрируйтесь, чтобы ответить.