Linux Namespace : Network
发布时间:2020-12-13 14:09:45 所属栏目:Linux 来源:网络整理
导读:Network namespace 在逻辑上是网络堆栈的一个副本,它有自己的路由、防火墙规则和网络设备。 默认情况下,子进程继承其父进程的 network namespace。也就是说,如果不显式创建新的 network namespace,所有进程都从 init 进程继承相同的默认 network namespa
Network namespace 在逻辑上是网络堆栈的一个副本,它有自己的路由、防火墙规则和网络设备。默认情况下,子进程继承其父进程的 network namespace。也就是说,如果不显式创建新的 network namespace,所有进程都从 init 进程继承相同的默认 network namespace。
$ /proc/$$/ns/net
$ ip netns add mynet
$ /proc/$$/ns/net
# ip addr
# ip link set lo up
veth 设备是虚拟的以太网设备。它们可以充当 network namespace 之间的通道,也可以作为独立的网络设备使用。veth 设备总是被成对的创建,并且这一对设备总是连接在一起的,所以一般把称之为 veth pair。需要注意的是,veth pair 无法单独存在,删除其中一个,另一个也会自动消失。接下来的示例我们就演示如何使用 veth pair 在两个 network namespace 直接通信。示例中我们使用 ip link 命令来创建和管理 veth pair。
$ ip netns add net1
$ ip link add vethmother type veth peer name vethfather
$ ip netns exec net1 ip addr
$ ip netns exec net0 ip addr add ./ ip netns exec net0 ip route
$ ip netns exec net1 ip addr add ./ ip netns exec net1 ip route
$ ip netns exec net0 -c .
$ ip addr
$ ip netns add net0
$ ip link add veth0 type veth peer name veth0p
$ ip netns exec net0 ip addr add ./ ip netns exec net0 ip addr
$ ip link set dev veth0 up
$ ip addr add ./
$ ip netns exec net0 -c .
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |