Linux bridge network interface (LXC, KVM)

Fórumok

Üdv!
Ha bridge interface-eket szeretnék a virtuális gépeknek, akkor pontosan mit kellene beállítanom?
(Környezet: Fedora, CentOS)

Tehát:
A hoszton pl. ez alapján:
https://serverfault.com/questions/612021/lxc-container-networking


#> cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=dhcp
ONBOOT=yes

#> cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
BRIDGE=br0

Próbáltam, hogy a bridge-nek adtam Fix IP címet.
Az LXC konténernek adtam:

lxc.network.type = veth
lxc.network.link = br0
lxc.network.flags = up

(Fix IP/dhcp-vel sem működik.)

A konténer nem lát ki a hálózatba/netre. A host IP-jét még látja.
Mi hiányzik?

Hozzászólások

ilyesmi:
net0: name=eth0,bridge=br0,gw=1.2.3.4,gw6=1:2:3:4:5:6:7:8,hwaddr=02:00:00:a1:3f:77,ip=1.2.3.5/10,ip6=1:2:3:4:5:6:7:9/ 64,type=veth

Hülye kérdés, de a forward a hoston bekapcsolva?
üdv: pomm

A 852-es kídlap telepötúsa sikeresen befejezádétt

Elvileg ez jó? (a teljes interface config)

br0:
DEVICE=br0
STP=no
BRIDGING_OPTS=multicast_snooping=0
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_PRIVACY=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
UUID=8a520d31-e81d-4e0e-9c71-83f9d3250223
ONBOOT=yes

enp0s3:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=b04fdc8d-2b3a-38da-a11b-fbd9823da5fb
ONBOOT=yes
AUTOCONNECT_PRIORITY=-999
DEVICE=enp0s3
ZONE=FedoraServer
BRIDGE=br0


# hoszt:
sysctl -w net.ipv4.ip_forward=1 # allow forwarding of IPv4
route add -host < ip-of-client > dev < tap-device > # add route to the client


# guest:
# If the host is not on the same subnet as the guest, then you must manually add the route to the host before you create the default route:
route add -host < ip-of-host > dev < network-interface >
route add default gw < ip-of-host >

nem működik. :(

Ugyan nem centos-en, de:

#!/bin/sh
modprobe kvm_intel
modprobe kvm_amd
modprobe tun
brctl addbr br0
ifconfig br0 192.168.100.254 netmask 255.255.255.0 up
tunctl -b -u root -t qtap1
brctl addif br0 qtap1
ifconfig qtap1 up 0.0.0.0 promisc
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo "1" > /proc/sys/net/ipv4/ip_forward
ifconfig eth0:1 8x.xxx.xxx.xxx up
iptables -t nat -A PREROUTING -d 8x.xxx.xxx.xxx -j DNAT --to-destination 192.168.100.3
kvm -hda /mnt/sda1/kvm/sda_25G.img -hdb /mnt/sda1/kvm/sdb_25G.img -net nic,macaddr=54:54:00:12:34:56 -net tap,ifname=qtap0,script=no,downscript=no -m 1024 -boot c -nographic

Anno egy debianon így indítható volt. A 8x.xxx.xxx.xxx egy publikus ip és nem a hoszt ipje..
Felhúzod a guesten a belső ip-t a 192.168.100.3-ra és kész...
Mondjuk ma már proxmox oszt csókolom...
üdv: pomm

A 852-es kídlap telepötúsa sikeresen befejezádétt

My 2cents: valaki már itt kérdezte a tűzfalat.
Meg ezekre: net.bridge.bridge-nf-call-* (http://wiki.libvirt.org/page/Net.bridge.bridge-nf-call_and_sysctl.conf)

Szerk.: egyébként CentOS7-en nálam szépen megy a NetworkManager (NetworkManager-TUI oszt jónap) + Libvirt bridgelt VLAN-okkal (ezt meg már távolról virt-managerrel csesztetem, hogy virsh-hez csak végszükség esetén kelljen nyúlni).

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

LXC esetén is működik. :)
Tehát:
* a hoszton, az eth0 mellett kell egy br0 bridge interface kötve az eth0-hoz!
* a br0-nak lehet fix IP: 192.168.1.200/24, gateway: 192.168.1.254 DNS ... stb.
* hoszton LXC telepít, konténer létrehoz.
* konténer config:

lxc.network.type=veth
lxc.network.link=br0
lxc.network.ipv4=192.168.1.205/24
lxc.network.ipv4.gateway=192.168.1.254
lxc.network.flags=up
# konténer "resolv.conf"-ban DNS

* hoszton a tűzfalon, hogy minden menjen:

firewall-cmd --permanent --direct --passthrough ipv4 -I FORWARD -i br0 -j ACCEPT
firewall-cmd --permanent --direct --passthrough ipv4 -I FORWARD -o br0 -j ACCEPT
firewall-cmd --reload

Thanks ALL!!