把veth两端放在两个不同namespace,并分别配置IP地址,尝试互相ping通。
时间: 2024-09-30 12:04:59 浏览: 11
将两个虚拟设备网络(veth)连接到不同的命名空间(也称为用户模式命名空间,如`nsenter`或`unshare`),允许你在独立的网络环境中隔离每个命名空间。以下是步骤:
1. **创建veth对**:
- 在宿主机上,首先创建一对veth设备,例如 `veth0` 和 `veth1`:
```bash
sudo ip link add veth0 type veth peer name veth1
```
2. **设置命名空间**:
- 将其中一个veth设备(例如`veth0`)分配给第一个命名空间:
```bash
sudo ip link set veth0 netns namespace1
```
- 创建新的命名空间(这里假设它叫`namespace1`)并进入:
```bash
sudo unshare -n -m bash -c 'ip netns add namespace1; ip link set dev lo netns namespace1; exec nsenter -t $$
```
- 对于第二个设备`veth1`,保持在宿主机的命名空间:
3. **配置IP地址**:
- 在每个命名空间中为veth接口配置IP地址:
```bash
ip addr add 192.168.1.1/24 dev veth0 namespace1
ip addr add 192.168.1.2/24 dev veth1
```
4. **验证ping通信**:
- 在`namespace1`中尝试ping另一个网络的IP地址:
```bash
ping - 如果一切正常,应该能看到往返的ping包。