动手模拟docker网络-bridge模式

创建网络命名空间

使用ip netns命令创建两个网络命名空间ns1ns2

bash 复制代码
ip netns add ns1
ip netns add ns2

创建veth对

创建一对虚拟以太网设备veth1-veth2veth3-veth4

bash 复制代码
ip link add veth1 type veth peer name veth2
ip link add veth3 type veth peer name veth4

将veth设备分配到命名空间

veth2移到ns1veth4移到ns2

bash 复制代码
ip link set veth2 netns ns1
ip link set veth4 netns ns2

配置设备IP和状态

在默认命名空间中为veth1veth3分配IP并启用:

bash 复制代码
ip addr add 10.1.1.1/24 dev veth1
ip link set veth1 up
ip addr add 10.1.2.1/24 dev veth3
ip link set veth3 up

ns1中配置veth2的IP并启用:

bash 复制代码
ip netns exec ns1 ip addr add 10.1.1.2/24 dev veth2
ip netns exec ns1 ip link set veth2 up
ip netns exec ns1 ip link set lo up

ns2中配置veth4的IP并启用:

bash 复制代码
ip netns exec ns2 ip addr add 10.1.2.2/24 dev veth4
ip netns exec ns2 ip link set veth4 up
ip netns exec ns2 ip link set lo up

创建并配置网桥

创建网桥br0并绑定veth1veth3

bash 复制代码
ip link add name br0 type bridge
ip link set dev veth1 master br0
ip link set dev veth3 master br0
ip link set br0 up

设置默认路由

ns1ns2中设置默认路由指向网桥IP:

bash 复制代码
ip netns exec ns1 ip route add default via 10.1.1.1
ip netns exec ns2 ip route add default via 10.1.2.1

验证连通性

ns1中pingns2的IP:

bash 复制代码
ip netns exec ns1 ping 10.1.2.2

开启IP转发

确保主机的IP转发功能已启用:

bash 复制代码
echo 1 > /proc/sys/net/ipv4/ip_forward

结果说明

  • 网桥br0充当交换机,连接veth1veth3
  • ns1(10.1.1.2)和ns2(10.1.2.2)通过网桥实现二层互通。
  • 若需跨子网通信,需额外配置路由或NAT规则。

注意:实验结束后可通过以下命令清理:

bash 复制代码
ip netns delete ns1
ip netns delete ns2
ip link delete br0
相关推荐
上海云盾-小余1 小时前
BGP 高防 IP 与 CDN 混合部署:攻防场景选型实战指南
网络·网络协议·tcp/ip
Shingmc33 小时前
【Linux】多路转接之select
linux·网络
溜达的大象3 小时前
从到处找资源到统一检索:飞牛NAS部署Pansou实战记录
网络·云计算
2401_868534785 小时前
园区网设计
网络
宋浮檀s6 小时前
春秋云镜——CVE-2020-25540
网络·安全·web安全
天天进步20156 小时前
Tunnelto 源码解析 #4:Wormhole 控制通道:WebSocket 如何建立一条“隧道控制线”
网络·websocket·网络协议
xiaofeichaichai6 小时前
网络与跨域
前端·网络
Latticy6 小时前
内网渗透-Windows RDP凭证的抓取和密码破解
网络·安全·网络安全·内网渗透·内网
Forget_85507 小时前
HCIA——计算机网络诞生与发展
服务器·网络·计算机网络