Туннель GRE (Generic Routing Encapsulation) — это наиболее простой способ соединить несколько изолированных коммутаторов находящихся на разных узлах. Данное решение позволяет строить распределенную приватную сеть, «размазанную» по множеству физических узлов. Open vSwitch
В самом простом виде это можно увидеть на рисунке ниже.
GRE туннелирование работает на канальном уровне и не имеет не каких средств шифрования трафика а так же проблематична работа через NAT.
Итак, у нас есть два физических узла, на каждом из которых будут по два коммутатора. Один из них будет обычным, с физическим интерфейсом, а другой будет изолированным.
Узел 1.
# ovs-vsctl add-br ovs-sw0
# ovs-vsctl add-port ovs-sw0 eth0
# ovs-vsctl add-port ovs-sw0 tun0
# ovs-vsctl set interface tun0 type=internal
# ifconfig tun0 192.168.1.151 netmask 255.255.255.0
Здесь, мы создаем коммутатор, подключаем в качестве порта физический интерфейс eth0, создаем постоянный виртуальный интерфейс tun0 и присваиваем ему IP-адресс (должен быть постоянным). Через интерфейс tun0 в дальнейшем будет настроен тунель.
Узел 2.
На втором узле будет отличаться только присваиваемый IP-адрес
# ifconfig tun0 192.168.1.152 netmask 255.255.255.0
Теперь создадим изолированные коммутаторы которые мы хотим соединить.
Узел 1.
# ovs-vsctl add-br is-br0
# ovs-vsctl add-port is-br0 tun1
# ovs-vsctl set interface tun1 type=internal
# ifconfig tun1 10.200.10.1 netmask 255.255.255.0
Здесь, мы создаем постоянный виртуальный интерфейс в изолированном коммутаторе, по средствам которого будет происходить взаимодействие в туннеле.
Узел 2.
На втором узле будет отличаться только присваиваемый IP-адрес
# ifconfig tun1 10.200.10.2 netmask 255.255.255.0
Теперь построим туннель.
Узел 1.
# ovs-vsctl add-port is-br0 gre0 — set interface gre0 type=gre options_remote_ip=192.168.1.152
Узел 2.
# ovs-vsctl add-port is-br0 gre0 — set interface gre0 type=gre options_remote_ip=192.168.1.151
Теперь ВМ включенные в изолированные коммутаторы is-br0, на обоих узлах, смогут взаимодействовать.
Помогла ли вам статья?