2016-07-07 14 views
0

Привет всем я действительно новое в сети, поэтому я я немного потерял, пожалуйста, я надеюсь, что кто-нибудь может мне помочь ...Подключение виртуальных машин Использование туннелей GRE - Openvswitch

У меня есть два физических узлов с такая же конфигурация в интерфейсе:

# The primary network interface 
#auto eth0 
#iface eth0 inet dhcp 

auto br0 
    iface br0 inet dhcp 
    bridge_ports eth0 
    bridge_fd 9 
    bridge_hello 2 
    bridge_maxage 12 
    bridge_stp off 

мои узлы имеют следующий публичный IP:
ubuntu001: 158.42.104.129
ubuntu002: 158.42.104.139

я запускаю одну виртуальную машину в каждом узле с использованием конфигурации по умолчанию Libvirt:
Vm в ubuntu001: 10.1.1.189
Vm в ubuntu002: 10.1.1.59

Я хочу сделать пинг между виртуальные машины через «gré туннель с использованием OVS», поэтому я сделал следующий, но это не сработало:

Сначала я создать мост OVS:
# овс-vsctl надстройки уш овс-BR0

Второй я подключить мост с его восходящей линией, которая в данном случае является eth0
# овса-vsctl добавить-порт овс-BR0 eth0

Третьего я запускать ВМ в каждом узле (ubuntu001: 10.1.1.189 и ubuntu002: 10.1.1.59 соответственно)

Четвертый я добавить порт для GRE туннеля:
# овс-vsctl добавить порт овс-br0 gre0 - набор интерфейс gre0 тип = опции Gre: remote_ip = 158.42.104.139 # овс-vsctl добавить порт овс-br0 gre0 - установить интерфейс gre0 типа = GRE опции: remote_ip = 158.42.104.129

я сделал то же самое в другом узле и это шоу, когда я использую ОВС-vsctl шоу:

[email protected]:~# ovs-vsctl show 
    41268e02-3996-4caa-b941-e4fe9c718e35 
    Bridge "ovs-br0" 
     Port "ovs-br0" 
      Interface "ovs-br0" 
       type: internal 
     Port "gre0" 
      Interface "gre0" 
       type: gre 
       options: {remote_ip="158.42.104.139"} 
     Port "eth0" 
      Interface "eth0" 
     ovs_version: "2.0.2" 

[email protected]:~# ovs-vsctl show 
    f0128df4-1a89-4999-8add-b5076ff055ee 
    Bridge "ovs-br0" 
     Port "ovs-br0" 
      Interface "ovs-br0" 
       type: internal 
     Port "gre0" 
      Interface "gre0" 
       type: gre 
       options: {remote_ip="158.42.104.129"} 
     Port "eth0" 
      Interface "eth0" 
     ovs_version: "2.0.2" 

то, что я делаю неправильно или что-то отсутствует ??

ответ

2

Добавьте к этому /etc/network/interfaces:

auto br-ovs=br-ovs 
iface br-ovs inet manual 
    ovs_type OVSBridge 
    ovs_ports gre1 gre2 
    ovs_extra set bridge ${IFACE} stp_enable=true 
    mtu 1462 

allow-br-ovs gre1 
iface gre1 inet manual 
    ovs_type OVSPort 
    ovs_bridge br-ovs 
    ovs_extra set interface ${IFACE} type=gre options:remote_ip=158.42.104.139 options:key=1 

auto br1 
iface br1 inet manual# (or static, or DHCP) 
    mtu 1462 

Я не знаю, как сделать это с помощью команд.

Думаю, eth0 не должен быть на выходе ovs-vsctl show.

stp_enable=true не является обязательным, я не думаю, что это необходимо в случае двух узлов.

Комплект mtu в соответствии с вашими потребностями. Это пример, когда реальный NIC mtu равен 1500.

remote_ip=158.42.104.139 должен содержать IP-адрес другого узла. Он отличается от двух узлов.

options:key=1 также является необязательным, его можно использовать для обозначения 2 сетей GRE (например, вторая сетка имела бы key=2 и т. Д.).

Вы можете добавить виртуальные машины в br1, и они смогут пинговать друг друга.

Не забудьте установить виртуальные машины mtu в 1462.

Этот учебник может быть полезен: https://wiredcraft.com/blog/multi-host-docker-network/