Я хочу подключить виртуальные машины, расположенные на двух разных машинах, с мостом ovs и туннелем VxLAN, предположим топологию как на картинке топология показывает, что моя конфигурация на хосте A выглядит следующим образом (конфигурация на хосте B почти такая же, за исключением изменения remote_ip на адрес хоста A'eth0):
ovs-vsctl add-br ovs-br0
ovs-vsctl add-port ovs-br0 vtep -- set interface vtep type=vxlan options:remote_ip=172.168.1.200 options:key=5000
tap0 создается и автоматически добавляется к мосту ovs-br0 при запуске виртуальных машин с qemu, но я не могу выполнить эхо-запрос с VM1 на VM2.
Я также погуглил несколько таких ссылок: http://networkstatic.net/configuring-vxlan-and-gre-tunnels-on-openvswitch/ , в котором говорится, что я должен создать два моста ovs, к сожалению, он не говорит, нужно ли (и как) соединять эти два моста вместе.
Я смущен тем, как взаимодействуют ovs-br0 и eth0, помогает ли это стек TCP / IP ядра выполнять эту работу, или мне нужно создать еще один мост ovs и соединить эти два моста с портами исправлений?
Пожалуйста, поправьте меня, если моя топология или конфигурации не подходят, и заранее большое спасибо.
Я решил эту проблему.
Мои конфигурации на туннеле vxlan с мостом ovs верны, причина того, что я не могу выполнить пинг с VM1 на VM2, - это неправильные шаги при установке ovs. Я забыл сделать modules_install для установки встроенных файлов .ko в путь к библиотеке ядра.
Одного моста ovs достаточно для создания туннеля ovs vxlan, пакеты, поступающие от виртуальных машин, будут добавлены с помощью внешнего заголовка на порт vtep, затем маршрутизируются в соответствии с таблицей маршрутизации и перенаправляются на физический порт eth0. Нам не нужно явно подключаться и физический порт, ядро ОС поможет нам в этом.