动手模拟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
相关推荐
渴了喝洗衣液19 分钟前
作业44444444
网络·智能路由器
IPDEEP全球代理23 分钟前
美国纽约IP和普通美国IP有什么区别?
网络·网络协议·tcp/ip
光路科技25 分钟前
802.1X在工业以太网中的实践:不仅是认证,更是安全体系
网络·安全
东北甜妹32 分钟前
Docker 多阶段构建
运维·docker·容器
Zhu75837 分钟前
【软件部署】docker环境部署nagios
运维·docker·容器
IT从业者张某某39 分钟前
Docker 网络
网络·docker·容器
盟接之桥41 分钟前
打破全球供应链“黑盒”:盟接之桥®如何用标准化EDI重塑中国制造的数据主权与交付底气
大数据·网络·人工智能·汽车·制造
Cat_Rocky44 分钟前
Docker镜像瘦身
运维·docker·容器
酣大智1 小时前
eNSP中AR报错40,重新安装
网络·华为
墨染天姬1 小时前
【V2X】BP QMI框架概述
网络