mininet中的host如何通过OVS交换机连接到主机创建的veth pair,并ping通veth
时间: 2024-09-26 11:05:24 浏览: 48
mininet使用指导.docx
在Mininet环境中,Mininet的Hosts(网络节点)默认是连接到底层虚拟交换机(如OVSPort或OVSBridge)的。对于通过OVS交换机连接到由主机创建的Veth Pair(虚拟设备对),可以按照以下步骤操作:
1. **创建Veth Pair**:
在Linux主机上,使用`ip link`命令创建一对Veth Pair,例如:
```bash
ip link add name veth0 type veth peer name veth1
```
然后将veth1绑定到网卡(例如ens33):
```bash
sudo ip link set veth1 up && sudo ip link set veth1 promisc on && sudo brctl addif bridge_name veth1
```
2. **启动Mininet Host**:
在你的Mininet配置文件中,比如`my_network.py`,你可以指定Host使用这个veth0作为接口。例如:
```python
h1 = host(ovs="bridge_name", cls=RemoteController, ip='192.168.56.101', port=6633)
h1.cmd("ifconfig veth0 192.168.56.2/24 up")
```
这里假设"bridge_name"是你之前创建的OVS交换机名称。
3. **设置Host的路由**:
在Host上,你需要确保它可以到达外部网络,通常通过添加默认路由:
```bash
ip route add default via $(ip addr show dev ens33 | grep 'inet ' | awk '{print $2}')
```
4. **Ping测试**:
在另一个Host上,你可以尝试ping Veth Pair的另一端:
```bash
h2.cmd("ping -c 4 192.168.56.2")
```
如果一切设置正确,你应该能看到从h2到h1 Veth地址的ping包来回。
阅读全文