模拟两台计算机的通讯-启动虚拟机(brctl+qemu组网)

1. VPCS解释

上文我们利用GNS3 组了一个基本的网络:模拟两台计算机的通讯-GNS3仿真-优快云博客。其中利用VPCS来做一个网络。我们本次的目标是:vm-交换-vm。

本次会用到一个新的虚拟网卡类型:TAP虚拟网卡,或者叫NIC、网络接口本质相同。这是一个更加接近真实计算机里用的网卡的虚拟网卡类型。

另外还会用到qemu,来模拟一个虚拟机。qemu也是一种模拟工具,其主要模拟计算机部分。这次我们将只用简单的qemu功能,聚焦于组网络。

 

2. 组网思路:

1. 安装qemu

2. 创建2个TAP虚拟网卡;

3. 创建一个虚拟交换;

4. 挂载两个TAP网卡;

5. 启动2个VM分别使用两个TAP;

6. ping测试;

3. 实践步骤:

1. 安装qemu

ubuntu直接安装:

sudo apt install qemu qemu-kvm

centos可以编译安装:

# 编译工具等
yum install -y yum-utils epel-release wget netcat htop tcpdump zip telnet seabios
yum group install -y "Development Tools"
yum install -y git glib2-devel libfdt-devel pixman-devel zlib-devel bzip2 \
	elfutils-libelf-devel libpcap-devel cmake glibc-static \
	python3 python3-pip python3-devel python3-tools python3-setuptools


wget https://download.qemu.org/qemu-4.2.0.tar.xz
tar xvJf qemu-4.2.0.tar.xz
cd qemu-4.2.0
./configure
make

测试是否成功:


 

注意,如果你用的是虚拟机,需要先开启嵌套虚拟化,vmware如下(其他virtualbox等工具类似,都是在处理器设置):

开启后/dev/kvm会出现一个文件

tree@ubuntu:~/Desktop$ ls /dev/kvm
/dev/kvm

2. 创建2个TAP虚拟网卡;

sudo ip tuntap add dev tap1 mode tap

sudo ip tuntap add dev tap2 mode tap

3. 创建一个虚拟交换;
 

sudo ip link add br0 type bridge

4. 挂载两个TAP网卡;



sudo ip link set tap1 up

sudo ip link set tap2 up

sudo ip link set tap2  master br0

sudo ip link set tap1  master br0

sudo ip link set  br0 up



5. 启动2个VM分别使用两个TAP;

启动一个窗口运行以下命令:

sudo qemu-system-x86_64 -m 256m -device virtio-net-pci,netdev=network0,mac=52:54:00:21:34:56 -netdev tap,ifname=tap1,id=network0,script=no cirros-0.6.2-x86_64-disk.img

启动第二个窗口运行以下命令:

sudo qemu-system-x86_64 -m 256m -device virtio-net-pci,netdev=network0,mac=52:54:00:21:34:57 -netdev tap,ifname=tap2,id=network0,script=no cirros-0.6.2-x86_64-disk.img

注意其中修改了mac地址和tap2。

6. ping测试;

进入虚拟机内,给两台虚拟机分别添加IP地址。分别执行:

ip add add 10.10.1.1/24

ip add add 10.10.1.2/24

在宿主机上开启转发:

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1


保存执行:

sysctl -p 

ping 测试

### EVE-NG与JumpServer接口配置及API集成 EVE-NG(Emulated Virtual Environment - Next Generation)是一款强大的网络仿真工具,支持多种厂商的网络设备模拟。JumpServer则是一个开源的跳板机系统,用于集中管理SSH和RDP协议的远程访问。两者结合使用时,可以通过接口配置或API集成实现更高效的管理和自动化操作。 #### 1. 接口配置基础 在EVE-NG中,网络设备的管理通常通过HTTP/HTTPS接口完成,而JumpServer主要依赖于SSH协议进行设备管理。因此,需要确保以下条件满足: - EVE-NG的服务端能够通过网络访问JumpServer。 - JumpServer可以连接到EVE-NG中模拟的设备或虚拟机。 为了实现这一目标,可以按照以下方式配置: ##### 网络连通性 确保EVE-NG所在的主机与JumpServer之间的网络连通性正常。如果EVE-NG运行在虚拟化环境中,可能需要配置桥接模式以允许外部访问[^1]。 ```bash # 在EVE-NG中配置桥接网络 brctl addbr br0 ip addr add 192.168.1.1/24 dev br0 ip link set br0 up ``` ##### SSH密钥配置 为了让JumpServer能够无密码访问EVE-NG中的设备,需要配置SSH密钥对[^4]。 ```bash # 在JumpServer上生成SSH密钥 ssh-keygen -t rsa -b 4096 # 将公钥复制到EVE-NG设备中 ssh-copy-id eve-ng@<eve-ng-ip> ``` #### 2. API集成 EVE-NG本身并不提供完整的RESTful API支持,但可以通过其内置的HTTP服务实现部分功能调用。JumpServer则具备完善的API接口,支持用户、资产、权限等资源的管理。 ##### 调用EVE-NG HTTP接口 EVE-NG的HTTP接口主要用于实验室管理和设备配置。例如,可以通过以下命令启动或停止某个节点: ```python import requests def control_node(action, node_id, eve_ng_ip="192.168.1.100"): url = f"http://{eve_ng_ip}/api/labs/default.unl/nodes/{node_id}/{action}" headers = {"Content-Type": "application/json"} response = requests.post(url, headers=headers) return response.json() # 示例:启动节点 control_node("start", "1") ``` ##### 调用JumpServer API JumpServer的API支持资产添加、用户授权等功能。以下是通过API添加资产的示例代码: ```python import requests def add_asset_to_jumpserver(asset_name, ip_address, admin_user, jumpserver_url="http://jumpserver.example.com", token="your_api_token"): url = f"{jumpserver_url}/api/v1/assets/assets/" headers = { "Authorization": f"Token {token}", "Content-Type": "application/json" } data = { "name": asset_name, "ip": ip_address, "admin_user": admin_user } response = requests.post(url, headers=headers, json=data) return response.json() # 示例:添加资产 add_asset_to_jumpserver("Router1", "192.168.1.2", "admin") ``` #### 3. 注意事项 - 确保EVE-NG和JumpServer之间的防火墙规则允许必要的流量通过。 - 配置适当的认证机制以保护API调用的安全性[^3]。 - 测试所有配置以验证功能是否正常工作。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值