我的sysadm团队中有一个关于linux的争论,更具体地说,是关于创建一个桥以添加vlan接口的必要性。
我明白(我认为) linux网桥允许进行第二层数据包路由的理论,尽管在实践中为了创建一个vlan,如下所示:
ip link add link eth0 name eth0.100 type vlan id 100
工作良好,无需创建一个br0,然后向该桥添加一个vlan。
例如,当一个数据包到达一个具有多个物理接口的主机时,linux内核能够确定在哪里路由数据包,即使每个物理接口都链接到不同的物理交换机。
那么,为什么我们仍然需要linux桥呢?
我还想知道为什么在虚拟化方面,虚拟机管
我们正在用kvm设置一个ubuntu服务器10.04主机。主机是通过绑定和桥接接口来设置的,这样客人就可以不经过交换就访问网络。我们当前的配置运行良好,除非我们在重新启动网络时重新启动/etc/init.d/组网重新启动。重新启动网络后,客人将失去连接。恢复它的唯一方法是停止来宾并重新启动它。
我一直在寻找,但我似乎找不到任何已知的错误/发布/报告的这种行为。
下面是我们的网络配置文件:
auto lo
iface lo inet loopback
auto bond0
iface bond0 inet manual
bond-slaves none
bond-mode ac
Linux (配置为ip或brctl)是否支持VLAN?例如,在不同的VLAN和主干端口中配置仅启用某些VLAN的访问端口。我的内核(3.2.04-6866-PAE)配置文件中关于VLAN和桥的唯一选项是CONFIG_BRIDGE_EBT_VLAN,但据我所知,这允许对ebtables的802.1qVLAN字段进行筛选。
我的场景是:我希望能够在具有自己的网络接口的单独名称空间中执行程序。但我也希望它能够通过我的物理网络接口访问互联网。到目前为止,这是我的代码:
ip netns add private_ns
ip link add link eth1 name eth1.100 type vlan id 100
ip link set eth1.100 netns private_ns
ip netns exec private_ns ip addr add 10.1.1.1/24 dev eth1.100
ip netns exec private_ns ip link set eth1.100 up
然后
我正在尝试建立一个系统,将一个无标记的以太网网络连接到一个水龙头隧道,在流量移动到隧道时添加一个VLAN标记。
到目前为止,我已经:
eth0 -承载无标记通信量的物理以太网接口。
tap1 -水龙头隧道接口.
br0 --一种包含tap1 (和其他物理接口)的桥
我知道我可以通过这样做在以太网端添加一个VLAN标记:
$ ip link add link eth0 name eth0.5 type vlan id 5
$ brctl addif br0 eth0.5
但我该怎么做呢?
编辑我发现我可以这样做:
$ ip link add veth0 type veth peer name v
Background信息
我有一个运行Docker的物理网络接口的服务器。此接口配置为802.1Q中继。为了避免异步路由,我为每个子网配置了路由表。那是我的接口/etc/网络/接口:
auto enp3s0
iface enp3s0 inet dhcp
post-up ip route add 192.168.1.0/24 dev enp3s0 table 1
post-up ip route add default via 192.168.1.1 table 1
post-up ip rule add from 192.168.1.0/24 table 1 prior
业务案例:
今年是2015年,我使用的是Linux内核3.17。我的ARM Linux有两个网卡,eth0和eth1。eth0用于在本地为旁边的人配置,eth1用于从远程进行配置。因此,它们的功能基本相同,除了eth0有一个人在现场插入电缆。
本地PC - eth0 My ARM Linux Computer eth1 -远程PC
使用eth0,PC软件可以配置用于配置的eth1 IP地址和端口。为此,我的eth0有一个预设的IP地址(192.168.1.2),这样PC软件就可以很容易地找到它。ARM Linux (3.17)应用程序需要侦听eth0端口A和eth1端口B(如果已配置),一旦连
让我们假设下面给出的是我的框架打算遍历的一组网络设备。
eth0(1) -> bond0(2) -> bridge(3) -> vlan100(4)>>> (数字)是每个网络设备的索引。
我已经创建了一个原始套接字(没有绑定到任何接口),附带了一个套接字过滤器,只捕获了一组特定的数据包。
我正在从每个网络设备中获得一个帧的副本。这是意料之中吗?
为每个被捕获的数据包打印from.sll_ifindex。
frame trapped from eth0 has from.sll_ifindex=1
frame trapped from bond0 has f
我有:
Linux(virtual maschine on esxi) <---trunk---> cisco Switch.
在虚拟maschine vSwitch设置上:
VLAN ID 4095 Enables trunking on port group (VGT Mode)
LINUX接口文件:
auto eth0
iface eth0 inet static
address xxx.xx.xx.x
netmask 255.255.255.0
gateway xxx.xx.xx.z
auto eth1
iface eth1 inet stat
我使用Linux中的DSA来支持以太网交换机(KSZ9897)。这个开关正在运行,但是我在通过Linux (内核4.19)设置桥接vlan过滤特性时遇到了问题。
我创建了桥接器并添加了如下成员端口:
ip link add name br0 type bridge
ip link set dev lanB master br0
ip link set dev lanA master br0
此时,Linux创建了br0接口,我可以通过这个接口切换到连接到'lanB‘接口的PC。
现在,我想使用VLAN将lanA和lanB分开。启用vlan过滤,并设置PVID:
ip link set
我希望使用网络名称空间(ns1到ns4)实现如下图所示的拓扑。
📷
我可以使用以下命令(基于本文的标题为:Linux网络命名空间介绍)实现上述拓扑,而不必将网络分成两个不同的VLAN:
sudo ip netns add ns1
sudo ip netns add ns2
sudo ip netns add ns3
sudo ip netns add ns4
sudo ip link add veth1 type veth peer name veth11
sudo ip link add veth2 type veth peer name veth12
sudo ip link add v