The problem was that ping to external sites like google.com didn't work.
It seemed that it was something wrong with xen's bridge network, because I was able to ping when the bridge was disabled.
$ /etc/xen/scripts/network-bridge stop
After this, I was able to ping to external site, but it wasn't the answer. I installed xen again, it didn't, too. my choice was to configure bridge for the xen manually.
Configuring bridge network
In my case, I used static ip for the eth0 network and I newly created bridge network named "br0". That static ip was to use on bridge network.
Copy config file of eth0 to create the bridge network named "br0".
$ cd etc/sysconfig/network-scripts
$ cp ./ifcfg-eth0 ifcfg-br0
$ vi ./ifcfg-br0
TYPE=Bridge => The first letter "B" must be upper-case.
Configure ifcfg-eth0 to link to the bridge and remove ip section.
$ vi ./ifcfg-eth0
$ service network restart
When xen starts, xen is trying to set own bridge network. Internally, xen executes network-bridge script, which:
- reates a new bridge named xenbr0
- "real" ethernet interface eth0 is brought down
- the IP and MAC addresses of eth0 are copied to virtual network interface veth0
- real interface eth0 is renamed peth0
- virtual interface veth0 is renamed eth0
- peth0 and vif0.0 are attached to bridge xenbr0. Please notice that in xen 3.3, the default bridge name is the same than the interface it is attached to. Eg: bridge name eth0, eth1 or ethX.VlanID
- the bridge, peth0, eth0 and vif0.0 are brought up
$ vi /etc/xen/xend-config.sxp
#(network-script network-bridge) => It have to be commented.
(network-script /bin/true) => It have to be added.
Restart xen and check bridges.
$ service xend restart
$ brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.000000000000 yes
br0 8000.000e0cb30550 yes eth0
I did ping to external site again, I finally worked. virbr0 is the bridge which is created automatically when libvirts starts.