Ответы пользователя по тегу KVM
  • Где указывать IP адреса при создании виртуальной машины KVM через libvirt?

    KargoZ
    @KargoZ
    linux &
    Для линукс универсально, если прописывать при старте ручками.

    #!/usr/bin/bash

    ##########sets
    PATH=$PATH:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin;
    export PATH;
    echo $PATH;
    brc=`which brctl`;
    ifcfg=`which ifconfig`;
    fcommand=`which sysctl`;
    ebt=`which ebtables`;
    v=`which vconfig`;
    m=`which modprobe`;
    r=`which route`;
    i=`which ip`;
    en=`which ifenslave`;
    gw="хххххххххххххххх";
    ns="nameserver ххххххххххххх
    nameserver 8.8.8.8
    nameserver 8.8.4.4";

    ###########modules
    $m 8021q;
    поддержка влан если присутствуют

    $m bonding miimon=100 mode=1;
    поддержка балансировки если таковая присутствует
    mode; посмотреть в интернете, число зависит от применяемой технологии на подключаемых портах коммутатора

    ###########network bridge
    #$brc addbr br0;
    создаём бридж

    #$brc stp br0 off;
    отключаем в бридже стп, в том случае если у Вас "тупой коммутатор"

    #$brc addif br0 eno1;
    добавляем в бридж сетевую карту eno0

    #$ifcfg br0 ххх.ххх.ххх.ххх netmask 255.255.255.0 up;
    назначаем адрес бриджу + включаем

    #$ifcfg eno1 0.0.0.0 promisc up;
    включаем без адреса сетевую карту eno1

    Вот в этом месте внимание: без включения в мост виртуальных интерфейсов работать не будет.
    т.е пока исходный интерфейс или интерфейсы не будет назначены в квм, форвардинг не работает

    Для каждой машины не нужно создавать бридж. Достаточно одного. Вот так примерно выглядит подключение через бридж на железке с двумя виртуальными интерфейсами:
    # brctl show
    bridge name bridge id STP enabled interfaces
    br0 8000.XXXXXXXXXXX no eno1
    vnet0
    vnet1

    про sysctl;
    Вносим в sysctl.conf или /etc/sysctl.d/{номер меньше су шествующих конфигов }-xxxxxxxxx.conf
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv4.conf.all.forwarding = 1
    net.ipv4.conf.all.mc_forwarding = 0
    net.ipv4.conf.default.forwarding = 1
    net.ipv4.conf.default.mc_forwarding = 0
    net.ipv4.conf.lo.forwarding = 0
    net.ipv4.conf.lo.mc_forwarding = 0
    net.ipv4.conf.eno1.forwarding = 1
    net.ipv4.conf.eno1.mc_forwarding = 0
    net.ipv4.ip_forward = 1
    net.ipv4.conf.all.arp_accept = 1
    net.ipv4.conf.all.arp_announce = 1
    net.ipv4.conf.all.arp_filter = 1
    net.ipv4.conf.all.arp_ignore = 0
    net.ipv4.conf.all.arp_notify = 1
    net.ipv4.conf.all.proxy_arp = 1
    net.ipv4.conf.all.proxy_arp_pvlan = 1
    net.ipv4.conf.all.rp_filter = 0
    net.ipv4.conf.default.proxy_arp = 1
    net.ipv4.conf.default.proxy_arp_pvlan = 1

    #########arp+ip фильтр
    net.bridge.bridge-nf-call-ip6tables = 0
    net.bridge.bridge-nf-call-iptables = 0
    net.bridge.bridge-nf-call-arptables = 0
    Ответ написан