基于Namespace的Linux网络隔离

本文介绍如何使用Linux系统下的iproute2、brctl及iptables等工具实现网络隔离,包括创建网络namespace、配置虚拟以太网设备及网桥,以及设置端口转发规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

  为了限制服务器中某些进程进行网络访问,或者不干扰Host上的其他进程的网络空间等.需要开辟出一个隔离的网络,专门服务于这些(单个或集群式)进程.

  基于现阶段版本Linux提供的iproute2工具集(新),net-tools(旧),brctl,iptables等命令.该网络隔离的方法也被docker底层用于在Linux系统上的网络子模块的隔离.

  鉴于未研究过新iproute2命令,在网络配置上面尽量使用旧式的命令.

步骤

ip netns add xxns # 创建名为xxns的网络namepsace,docker中名字为docker0

ip netns exec xxns bash # 在xxns空间里面运行bash

ip link add name veth-ix type veth peer name veth-iy 
# 创建一对veth设备: veth-ix, veth-iy

ip link set veth-iy netns xxns 
# 将veth-iy端加入到xxns空间中,
# 你可以通过ip link set veth-iy name eth0命令在该空间中对网卡进行重命名

ip netns exec xxns ifconfig veth-iy 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255 
# 配置并启动veth-iy设备

brctl addbr xxbr # 创建名为xxbr的网桥

brctl addif xxbr veth-iy # 将veth-ix设备加入xxbr网桥中,进行桥接

brctl show # 使用该命令查看接入网桥的设备

ifconfig xxbr 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 # 给xxbr网桥设置ip

ip netns exec xxns route add default gw 192.168.1.1 # 在xxns空间设置网关(网桥ip)

ifconfig veth-ix 0.0.0.0 # 桥接模式必要的操作,注意不要遗忘,接几个设备,设置几个设备

route -n # 查看本机的路由表是否有异常(这里自己确认)

ping 192.168.1.1 && ping 192.168.1.2 && ip netns exec xxns ping 192.168.1.2 
# 假设这是本机ip,这里应该都能ping通,如果不通,那我就不知道你那边啥情况了O_O.

# 当前应是,主机能连接到xxns这个网络中,xxns网络中的程序能连接主机;
# 接下来,将主机外部网络接入xxns该网络空间.

sysctl -w net.ipv4.ip_forward=1 # Linux默认都是关闭端口转发的,只有作为路由器才打开.

# 下面两个操作,配置同一主机上不同网卡设备的转发,假设主机网卡叫eno1;
# 添加iptables FORWARD规则,并启动路由转发功能

iptables -A FORWARD --out-interface eno1 --in-interface xxbr -j ACCEPT

iptables -A FORWARD --in-interface eno1 --out-interface ntw2-br -j ACCEPT

# 添加iptables NAT规则;忘记NAT叫什么了吗?
# Network Address Translation,网络地址转换,路由器很重要的一部分

iptables -t nat -A POSTROUTING --source 192.168.1.0/24 --out-interface eno1 -j MASQUERADE

# 好了,完成!

ip netns exec xxns ping 192.168.0.2 # ping通另一个电脑,同时接入外网.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值