時(shí)間:2023-06-28 20:18:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-06-28 20:18:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)
深入理解SDN之一-虛擬機(jī)互連:虛擬化
與軟件定義網(wǎng)絡(luò)
,所以感覺(jué)標(biāo)題更應(yīng)該叫云計(jì)算入門,但我覺(jué)得不用糾結(jié)標(biāo)題叫什么,領(lǐng)會(huì)精神就是了。 下面出現(xiàn)的主機(jī)
指的是裸金屬服務(wù)器
linux bridge/linux network namespace/veth/tap/iptables
等,有些我們前面的內(nèi)容也簡(jiǎn)單介紹過(guò);yum install -y qemu-kvm qemu
qemu-img create -f raw /home/vm/centos.raw 10G
wget https://mirrors.163.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-Minimal-2009.iso -O /home/os/centos.iso
qemu-kvm -enable-kvm -smp 2,cores=2 -m 2048 -hda /home/os/centos.iso -hdb /home/vm/centos.raw /-vnc 0.0.0.0:0
remmina remote desktop client
連接上面啟動(dòng)的qemu,完成操作系統(tǒng)的安裝注意上面的-vnc參數(shù),0.0.0.0:0時(shí),用rdc連的時(shí)候用端口5900連接,0.0.0.0:1時(shí),用5901連接,依次類推……
/etc/sysconfig/network-scripts/ifcfg-eth0
中ONBOOT
改為yes
,這樣vm啟動(dòng)后就會(huì)通過(guò)dhcp去獲取IP地址了,這個(gè)配置主要為后面使用dhcp服務(wù)作準(zhǔn)備;cat /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE="eth0"BOOTPROTO="dhcp"ONBOOT="yes"TYPE="Ethernet"PERSISTENT_DHCLIENT="yes"
ifcfg-eth0文件與網(wǎng)卡名有關(guān),如果你的鏡像的默認(rèn)網(wǎng)卡名為eno1,則文件名為ifcfg-eno1上面的操作完成后
/home/vm/centos.raw
就是我們制作好的操作系統(tǒng)模版了,把該文件復(fù)制到server2的相同目錄下cp /home/vm/centos.raw /home/vm/vm1.raw
ip tuntap add tap1 mode tapip link set tap1 up
qemu-kvm -enable-kvm -name vm1 -smp 1,cores=1 -m 2048 -hda /home/vm/vm1.raw /-netdev tap,id=hostnet0,vhost=on,vhostfd=4,ifname=tap1,script=no 4<>/dev/vhost-net /-device virtio-net-pci,netdev=hostnet0,id=net0 /-vnc 0.0.0.0:1
這樣就創(chuàng)建了一臺(tái)1核2G的虛擬機(jī),cores
是CPU核數(shù),-m
是內(nèi)存,-hda
是硬盤文件,-netdev
是網(wǎng)卡配置,注意里面的ifname=tap1
,tap1
是我們上一步創(chuàng)建的虛擬網(wǎng)卡設(shè)備,-vnc
是通過(guò)vnc連接該vm的地址;qemu-img create -f raw /home/vm/vm1-ext-hda1.raw 10G
然后啟動(dòng):qemu-kvm -enable-kvm -name vm1 -smp 1,cores=1 -m 2048 -hda /home/vm/vm1.raw -hdb /home/vm/vm1-ext-hda1.raw /-netdev tap,id=hostnet0,vhost=on,vhostfd=4,ifname=tap1,script=no 4<>/dev/vhost-net /-device virtio-net-pci,netdev=hostnet0,id=net0 /-vnc 0.0.0.0:1
所以其實(shí)虛擬機(jī)的一個(gè)盤對(duì)應(yīng)的就是主機(jī)的一個(gè)文件,軟件定義存儲(chǔ)主要就是解決如何在所有物理節(jié)點(diǎn)都可以用/home/vm/vm1.raw訪問(wèn)到相同的文件,例如CEPH,不過(guò)這并不是本篇的重點(diǎn)
remmina remote desktop client
連接vm1,設(shè)置IP地址為172.25.1.10/24,默認(rèn)網(wǎng)關(guān)為172.25.1.1cp /home/vm/centos.raw /home/vm/vm2.rawip tuntap add tap2 mode tapip link set tap2 upqemu-kvm -enable-kvm -name vm2 -smp 1,cores=1 -m 2048 -hda /home/vm/vm2.raw /-netdev tap,id=hostnet0,vhost=on,vhostfd=4,ifname=tap2,script=no 4<>/dev/vhost-net /-device virtio-net-pci,netdev=hostnet0,id=net0 /-vnc 0.0.0.0:2
注意vnc的端口都要在vm1的基礎(chǔ)上加1,否則會(huì)沖突
remmina remote desktop client
連接vm2,設(shè)置IP地址172.25.1.11/24,默認(rèn)網(wǎng)關(guān)為172.25.1.1ip link add br0 type bridgeip link set br0 up
ip link set tap1 master br0ip link set tap2 master br0
ip netns add router
ip link add eth-sub1 type veth peer name router-br0ip link set eth-sub1 netns routerip netns exec router ip addr add 172.25.1.1/24 dev eth-sub1ip netns exec router ip link set eth-sub1 upip link set router-br0 master br0ip link set router-br0 up
169.254.10.10
ip link add eth-out type veth peer name router-vethip link set eth-out netns routerip netns exec router ip link set lo upip netns exec router ip addr add 169.254.10.10/32 dev eth-outip netns exec router ip link set eth-out upip netns exec router ip route add default via 169.254.10.253 dev eth-out onlinkip netns exec router iptables -A POSTROUTING -t nat -o eth-out -j MASQUERADE ip link set router-veth upecho 1 > /proc/sys/net/ipv4/conf/router-veth/proxy_arp
此時(shí)整個(gè)拓?fù)淙缦拢?br>169.254.10.10
的數(shù)據(jù)包進(jìn)行源地址轉(zhuǎn)換,去往該地址的包走router-veth網(wǎng)卡(就是引導(dǎo)給虛擬路由器)ip route add 169.254.10.10 dev router-vethiptables -A POSTROUTING -t nat -s 169.254.10.10 -j MASQUERADE
remmina remote desktop client
連接VM設(shè)置IP,有沒(méi)有辦法讓VM啟動(dòng)后自動(dòng)獲取我們指定的IP呢?下一章我們來(lái)介紹給虛擬機(jī)設(shè)置固定IP。關(guān)鍵詞:虛擬,理解,深入
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。