标签:netns

发表于
network namespace is logically another copy of the network stack, with its own routes, firewall rules, and network devices. netns是网络栈的一个逻辑副本,有自己的路由、防火墙规则和网络设备。 We can use network namespace to isolate networks. 我们用netns来隔离网络。 举个复杂的例子: 解释一下802.1q,就是vlan: 802.1q协议也就是“Virtual Bridged Local Area Networks”(虚拟桥接局域网,简称“虚拟局域网”)协议,主要规定了VLAN的实现方法 如上图,实现topo的脚本: cat...
发表于
Open vSwitch中PATCH类型的端口有如下定义:“A pair of virtual devices that act as a patch cable”(一根虚拟电缆),同时在OpenvSwitch官方FAQ可以找到PATCH端口的用途“If you still want to connect two bridges, you can use a pair of patch ports”(用于连接两个网桥)。 简单化,patch port成对,可以看作是一根虚拟电缆,用来连接两个网桥,如下图: 创建两个网桥br1和br2 ovs-vsctl add-br br1 ovs-vsctl add-br br2 创建内部端口 ovs-vsctl add-port br1 tap1...
发表于
我们说过了lxc平台下如何通过pipwork在netns如何固定ip,大家对netns有了初步了解,下面说说netns命名空间如何与Open vSwitch结合起来, 增加两个Namespace ip netns add ns1 ip netns add ns2 增加一个网桥br0 ovs-vsctl add-br br0 创建2个网卡接口eth1/eth2,并且把接口绑到网桥br0上,注意这里的2个网卡接口事先都不存在,所以必须设定网卡的类型,如果要绑一个已经存在的接口,就不用设置了。 ovs-vsctl add-port br0 eth1 -- set Interface eth1 type=internal ovs-vsctl add-port br0 eth2 -- set Interface eth2 type=internal 设置虚拟网卡的netns空间 ip link set eth1 netns...
发表于
我们启动docker容器后,如果要固定容器的IP,可能会用到pipwork这个脚本,下面简单说一下过程: 网络环境如下,物理机的eth0口接上端交换机,本地起br0网桥连接到eth0: 运行docker,用pipwork固定ip: docker run -d -name=container_name container_image pipework br0 container_name ip/prefix_len@gateway 其实pipework是建立了一个netns,然后手动生成了一块虚拟网卡,然后在netns空间内设置IP,具体如下: 先起个随机名字、不重复的一块网卡: GUEST_IFNAME=ph$NSPID$eth1 把这块网卡挂接到系统的Bridge br0上,并且指定netns命名空间 ip link add link br0 dev $GUEST_IFNAME type macvlan mode...
发表于
lxc的网络类型复杂多样,分为以下5种: empty veth macvlan vlan phys 实际过程中 veth 和 macvlan 以及 vlan 需要用到 netns ,但是缺省的 CentOS 6.6 装的 iproute-2.6.32-32.el65.x8664.rpm 没有 netns 子命令,需要安装支持 netns 的 iproute 包,这个可以不用升级内核直接安装,方法如下: rpm -ivh --replacefiles http://www.rendoumi.com/soft/iproute-2.6.32-130.el6ost.netns.2....