openstack中虛擬機器怎麼與物理機通訊
阿新 • • 發佈:2019-02-09
How-to-connection-ns-outside
環境配置
網路介面
vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=10.20.0.10 NETMASK=255.255.255.0 vi /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=172.16.0.10 NETMASK=255.255.255.0 vi /etc/sysconfig/network-scripts/ifcfg-eth2 DEVICE=eth2 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.4.10 NETMASK=255.255.255.0
重啟網路服務
service network restart
建立一個network namespace foo
ip netns add foo
檢視network namespace
ip netns
建立一個vethp
ip link add tap-foo type veth peer name tap-root
將tap-foo分配到foo namespace中
ip link set tap-foo netns foo
為tap-foo 新增一個ip地址
ip netns exec foo ip addr add 192.168.10.2/24 dev tap-foo ip netns exec foo ip link set tap-foo up
檢視foo 空間中的網絡卡資訊
ip netns exec foo ip a
為root namespace 中的tap-root新增ip
ip addr add 192.168.10.1/24 dev tap-root
ip netns exec foo ip link set tap-root up
檢視 root 空間中的網絡卡資訊
ip a
檢查是否網路連通
ping 192.168.10.2
ip netns exec foo ping 192.168.10.1
安裝需要用到的包
yum install libvirt openvswitch python-virtinst xauth tigervnc -y
移除預設的libvirt 網路,方便清晰分析網路情況
virsh net-destroy default
virsh net-autostart --disable default
virsh net-undefine default
啟動openvswitch
service openvswitch start
chkconfig openvswitch on
建立一個openvswitch bridge 名字叫br-int
ovs-vsctl add-br br-int
利用openvswitch 的 br-int,定義一個libvirt 網路
vi libvirt-vlans.xml
<network>
<name>ovs-network</name>
<forward mode='bridge'/>
<bridge name='br-int'/>
<virtualport type='openvswitch'/>
<portgroup name='no-vlan' default='yes'>
</portgroup>
<portgroup name='vlan-100'>
<vlan>
<tag id='100'/>
</vlan>
</portgroup>
<portgroup name='vlan-200'>
<vlan>
<tag id='200'/>
</vlan>
</portgroup>
</network>
啟動libvirt 網路
virsh net-define libvirt-vlans.xml
virsh net-autostart ovs-network
virsh net-start ovs-network
建立一個instance,並連線到ovs-network,網路介面部分配置如下
<interface type='network'>
<source network='ovs-network' portgroup='vlan-100'/>
<model type='virtio'/>
</interface>
可以參考附件instance1.xml建立
cp ~/gre/ /var/tmp/
cd /var/tmp/gre
mv cirros-0.3.0-x86_64-disk.img instance1.img
virsh define instance1.xml
virsh start instance1
virsh vncdesplay instance1
vncviewer :0
啟動console 以後,登入新增ip得知 192.168.1.20
ip addr add 192.168.1.20/24 dev eth0
新增一個openvswitch port
ip link add br-int-tap100 type veth peer name tap100
ovs-vsctl add-port br-int br-int-tap100
ovs-vsctl set port br-int-tap100 tag=100
ip addr add 192.168.1.21/24 dev tap100
ip link set tap100 up
ip link set br-int-tap100 up