東莞市建設(shè)網(wǎng)站首頁(yè)百度怎樣發(fā)布作品
項(xiàng)目背景:
比如我有三個(gè)項(xiàng)目 A,B,C;其中A項(xiàng)目部署在物理機(jī)上,B,C項(xiàng)目部署在 虛擬機(jī)V1,V2中,三個(gè)項(xiàng)目接口需要相互調(diào)用。
需要解決的問(wèn)題點(diǎn):
1,因?yàn)锳,B,C項(xiàng)目接口相互調(diào)用,所以調(diào)用的地址需要靜態(tài)不變的
2,B,C項(xiàng)目需要讀取物理機(jī)的物理網(wǎng)卡的鏡像流量信息
解決思路:
1,B,C使用主機(jī)模式創(chuàng)建虛擬機(jī)部署,這樣虛擬機(jī)和物理機(jī)都是在同一個(gè)網(wǎng)段,且物理機(jī)和虛擬機(jī)的ip都是固定的
2,因?yàn)锽,C需要讀取物理網(wǎng)卡的流量信息,之前采用網(wǎng)橋模式,把虛擬機(jī)和物理機(jī)的物理網(wǎng)卡綁定在同一個(gè)網(wǎng)橋上,經(jīng)過(guò)測(cè)試,如果pcap包在物理機(jī)上向網(wǎng)橋回放流量包信息是虛擬機(jī)可以收到流量,但是向物理網(wǎng)卡回放鏡像流量包,虛擬機(jī)無(wú)法讀取向物理網(wǎng)卡回放的流量信息。所以這種方法就廢棄了,采用passthrough的方法,將物理機(jī)的物理網(wǎng)卡綁定到虛擬機(jī)上,這樣,無(wú)論是通過(guò)交換機(jī)或者其他硬件設(shè)備向物理機(jī)的物理網(wǎng)卡發(fā)送流量信息,虛擬機(jī)的虛擬網(wǎng)卡都可以收到流量信息。
使用前需要安裝軟件 見(jiàn)博客虛擬機(jī)軟件安裝
步驟
1 開(kāi)啟物理機(jī)的虛擬機(jī)化(passthrough支持)
1.1 /etc/default/grub 配置
vi /etc/default/grub
文件添加 intel_iommu=on iommu=pt
位置如下
1.2 激活配置
-
查看服務(wù)器 啟動(dòng)是UEFI啟動(dòng)還是BIOS啟動(dòng),命令如下
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS -
查看系統(tǒng)系統(tǒng)啟動(dòng)方式
如果是UEFI啟動(dòng) 執(zhí)行命令 grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
如果是BIOS 啟動(dòng) 執(zhí)行命令 grub2-mkconfig -o /etc/grub2.cfg -
重啟服務(wù)器
reboot -
是否生效
cat /proc/cmdline
2 操作系統(tǒng)配置
2.1 開(kāi)啟操作系統(tǒng)ip forward轉(zhuǎn)發(fā)
1)配置
vi /etc/sysctl.conf
增加一行 net.ipv4.ip_forward=1
2)激活配置
sysctl -p /etc/sysctl.conf
3 Nat網(wǎng)絡(luò)配置
3.1 刪除系統(tǒng)默認(rèn)安裝的default網(wǎng)橋
virsh net-destroy default
virsh net-undefine default
3.2 default.xml (文件已提供)拷貝到 /etc/libvirt/qemu/networks/目錄下
cp default.xml /etc/libvirt/qemu/networks/
default.xml內(nèi)容如下
<network><name>default</name><uuid>37268901-d790-4304-b5b8-2a236c16d756</uuid><forward mode='nat'><nat><port start='1024' end='65535'/></nat></forward><bridge name='virbr0' stp='on' delay='0'/><mac address='52:54:00:b3:3d:df'/><ip address='96.66.23.2' netmask='255.255.255.0'><dhcp><range start='96.66.23.3' end='96.66.23.254'/></dhcp></ip>
</network>
3.3 定義并啟動(dòng)default網(wǎng)絡(luò)
virsh net-define /etc/libvirt/qemu/networks/default.xml
virsh net-start default
virsh net-autostart default
3.4 查看配置狀態(tài)
virsh net-list
4 虛擬機(jī)安裝
見(jiàn)我的博客虛擬機(jī)安裝
注意:創(chuàng)建虛擬機(jī)使用下面的命令,不要指定網(wǎng)橋了(去掉–network bridge:br0)
virt-install --virt-type kvm --name Ai --ram 8024 --vcpus 8 --cdrom=/home/iso/CentOS-7-x86_64-DVD-1810.iso --disk path=/home/data/Ai.qcow2 --console pty,target_type=serial --graphics vnc,listen=0.0.0.0 --os-type=Linux --noautoconsole
5 虛物理網(wǎng)卡綁定
將物理機(jī)的某一個(gè)空余物理網(wǎng)卡分給虛擬機(jī)獨(dú)享(重點(diǎn))
a) 查看虛擬機(jī)可用的物理網(wǎng)卡
virsh nodedev-list
b) 使用物理網(wǎng)卡enp7s0 取出 parent標(biāo)簽 pci_0000_07_00_0
c) 編輯創(chuàng)建的虛擬機(jī) Ai.xml文件
vi /etc/libvirt/qemu/Ai.xml
子標(biāo)簽里面 添加內(nèi)容為
解釋:
取b步驟中的pci_0000_07_00_0
對(duì)進(jìn)行修改,domain中的都是16進(jìn)制,其中b步驟也是16進(jìn)制的,所以不需要轉(zhuǎn)換,直接將相應(yīng)的數(shù)據(jù)放入指定的位置即可

6 修改虛擬機(jī)的網(wǎng)卡ip
修改虛擬機(jī)的ip 在其中的網(wǎng)段
96.66.23.3-96.66.23.254
7 測(cè)試
方法1 通過(guò)網(wǎng)線(xiàn)直連,將一臺(tái)機(jī)器的物理網(wǎng)卡直連這臺(tái)機(jī)器配置物理網(wǎng)卡的網(wǎng)口,然后向物理網(wǎng)卡回放流量包
#enp3s0 與虛擬機(jī)綁定物理網(wǎng)卡enp7s0 直連tcpreplay -i enp3s0 -l 10000 -M50 http_192.168.36.163_10W.pcap
方法2 直接把回放包放到虛擬機(jī)中,直接發(fā)送流量信息
tcpreplay -i eth1 -l 10000 -M50 http_192.168.36.163_10W.pcap