On 04/28/2016 10:44 PM, Mohsen Pahlevanzadeh wrote:
Dear All,
I have the following configuration and I have ping from bridge :
/////////////////////////////////////////////////////
iface eth0 inet static
address 192.168.1.4
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
auto ivbr0
iface ivbr0 inet static
address 192.168.1.4
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge_ports eth0
bridge_stp on
bridge_maxwait 0
bridge_fd 0
You misunderstood the instructions for putting your ethernet behind a
bridge.
You should *never* give an IP address to both the bridge and the
ethernet device that is attached to it. If an ethernet is attached to a
bridge, remove *all* IP config information for the ethernet. For
debian/ubuntu this means removing the entire "iface eth0" section. If
you read the instructions on the wiki page carefully, you'll see that it
is telling you to *replace* the line that says "iface eth0 ...." with
one that says "iface br0...", *not* to add an entire new section for the
bridge while leaving the section for eth0 intact.
/////////////////////////////////////////////
# brctl show
bridge name bridge id STP enabled interfaces
ivbr0 8000.18037360b44e yes eth0
/////////////////////////////////////////////
my network xml file :
<network>
<name>myintranet</name>
<uuid>465ce6cb-0a69-4f89-92ba-629349741e73</uuid>
<forward mode='nat'>
<interface dev="eth0" />
</forward>
<bridge name='ivbr0' stp='on' delay='0' />
<mac address='52:54:00:0f:f4:f0'/>
<ip address='192.168.1.4' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.1.3' end='192.168.122.254'/>
</dhcp>
</ip>
</network>
You have misunderstood the working of libvirt's virtual networks. You
should *not* assign a bridge device that is already in the host system's
network config to be used by a libvirt virtual network with a forward
mode of nat, route (or no forward mode). libvirt creates the bridges for
those types of networks itself, and they should *never* be listed in the
system's network config.
Since you've mixed the use of a host-system-managed bridge (normally
used when you want the guests to have an IP address that is
visible/reachable directly from the physical network) with a
libvirt-managed virtual network in NAT mode (normally used when the
guest will only be used for outbound traffic (+ incoming only from the
host)), I'm not sure which you want.
1) If you want the guests to be directly on the physical network, do this:
* edit /etc/network/interfaces and *remove* the entire section that
starts with "interface eth0 inet static"
* "virsh net-edit myintranet" and change it to this:
<network>
<name>myintranet</name>
<uuid>465ce6cb-0a69-4f89-92ba-629349741e73</uuid>
<forward mode='bridge'/>
<bridge name='ivbr0'/>
</network>
(this make the libvirt network a simple unmanaged (by libvirt) pointer
to an existing bridge named ivbr0. All bridge device configuration will
be handled by the host system network config.)
* virsh net-destroy myintranet && ifup ivbr0 && virsh net-start
myintranet && virsh net-autostart myintranet
(ifup ivbr0 will restore the system IP config of the bridge)
Any guests connected to this network will be connected directly to the
physical network (assuming that ivbr0 is functioning properly)
2) If, on the other hand, you wanted your guests to be connected to a
network that was NATed behind the host system's physical IP address, and
be unreachable for incoming connections anywhere beyond the host, you
should do this:
* edit /etc/network/interfaces and *remove* either the entire section
that starts with "interface eth0 inet static" (if you want to maintain
the option of connecting some guests directly to the physical network)
*OR* the entire section that starts with "auto ivbr0" (if you don't want
the option of connecting guests directly to the physical network).
* "virsh netedit myintranet" and make the following changes:
* remove this line: <interface dev="eth0" />
* remove this line: <bridge name='ivbr0' blah blah/>
* correct the ending address of the dhcp range:
<range start='192.168.1.3' end='192.168.1.254'/>
(I'm surprised that didn't generate an error)
* virsh net-destroy myintranet && ifup ivbr0 && virsh net-start
myintranet && virsh net-autostart myintranet
This will restart the myintranet network using a new bridge device
(automatically named and created by libvirt), as well as restoring the
original ivbr0 interface (or eth0 interface, depending on which section
you removed from /etc/network/interfaces)
Now , I have ping of my modem and internet.
Then I did the following command :
# ip l set dev ivbr0 down
# brctl delbr ivbr0
# virsh net-start myintranet
Network myintranet started
According to above , myintranet network has been started. But with the
following IP address :
# ip a show dev ivbr0
17: ivbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
state DOWN group default
link/ether 52:54:00:0f:f4:f0 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global ivbr0
valid_lft forever preferred_lft forever
////////
192.168.122.1 ?
Question is , Where I change this address?(I set in myxml file.)
Did you edit the files in /etc/libvirt directly? You should never do
that. Only edit them via virsh net-edit (or some other program that uses
the libvirt API to retrieve and save the config).
--best regards
Mohsen
_______________________________________________
libvirt-users mailing list
libvirt-users(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvirt-users