标签: linux-networking

通过 tcpdump 的数据包捕获 (Linux) 中未显示 VLAN 标记

我在 eth0 上添加了一个标记的 VLAN:

#ip link add link eth0 name eth0.20 type vlan id 20
Run Code Online (Sandbox Code Playgroud)

这导致:

#ip link
2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 9c:c7:a6:95:65:1c brd ff:ff:ff:ff:ff:ff
....
12: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
 link/ether 9c:c7:a6:95:65:1c brd ff:ff:ff:ff:ff:ff

#ip -d link show eth0.20
70: eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 9c:c7:a6:95:65:1c brd ff:ff:ff:ff:ff:ff
    vlan id 20 <REORDER_HDR>

#cat /proc/net/vlan/config
VLAN Dev name    | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth0.234 …
Run Code Online (Sandbox Code Playgroud)

dhcp vlan linux-networking

15
推荐指数
1
解决办法
5万
查看次数

将整个 IPv6 /64 块添加到 debian 上的网络接口

我尝试使用以下方法将整个 IPv6 (/64) 块添加到接口

ip route add local 2001:41d0:2:ad64::/64 dev lo
Run Code Online (Sandbox Code Playgroud)

像描述在这里我的Debian服务器上,但我似乎失去了一些东西。

例如2001:41d0:2:ad64::fe,如果我在本地ping一切正常,但如果我从远程机器尝试,则它不起作用。然后我尝试在 eth0 上添加路由:

ip route add local 2001::41d0:2:ad64::/64 dev eth0
Run Code Online (Sandbox Code Playgroud)

现在我什至无法在本地 ping 任何示例地址!

我有点迷茫,因为我似乎错过了一些东西,但我在这里找不到答案。

简而言之:我想2001:41d0:2:ad64::/64绑定到 eth0,以便可以从我机器上的 Internet 访问此块包含的每个 IP。

我希望那里有人能指出我正确的方法。提前致谢。

ISP 提供的指南确实要求我将每个 IPv6 显式添加到接口中。我希望它是隐含的。

使用显式 IP 地址绑定的工作配置

/etc/network/interfaces:

auto eth0
iface eth0 inet static
        address my.ip.v4
        netmask 255.255.255.0
        network my.network.address.ip
        broadcast my.broadcast.address.ip
        gateway my.gateway.ip

iface eth0 inet6 static
        address 2001:41d0:2:ad64::fe
        netmask 64
        gateway 2001:41d0:2:adff:ff:ff:ff:ff
        up ip addr add 2001:41d0:2:ad64::1/64 dev …
Run Code Online (Sandbox Code Playgroud)

ipv6 linux-networking debian-wheezy

15
推荐指数
2
解决办法
1万
查看次数

net.core.rmem_max 和 net.ipv4.tcp_rmem 的区别

net.core.rmem_max 和 net.ipv4.tcp_rmem 的第三个值有什么区别?哪个对 tcp 连接具有更高的优先级?

对于以下两个示例,tcp 连接的最大缓冲区是多少?

Case 1:
sysctl -w net.core.rmem_max=7388608
sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608'

Case 2:
sysctl -w net.core.rmem_max=8388608
sysctl -w net.ipv4.tcp_rmem='4096 87380 7388608'
Run Code Online (Sandbox Code Playgroud)

linux tcp linux-networking linux-kernel

15
推荐指数
1
解决办法
2万
查看次数

创建具有两个 Internet 连接和一个 LAN 连接的多宿主 linux 负载平衡器

好的,...这可能已经得到了回答,不幸的是,我没有找到任何看起来像是解决方案的东西。

我看过这些页面,他们有一些有用的信息,但不是完整的解决方案:

  1. Linux 上的负载平衡和 NAT-ing 多个 ISP 连接
  2. 两个 Internet 连接和 1 个 NIC,可能吗?
  3. Linux 拆分访问(具有负载平衡的多个 Internet 连接)
  4. linux防火墙+负载均衡ISP连接

我将使用 Debian 8、Ubuntu 16.04 Desktop 或 Ubuntu 16.04 Server(老实说,很可能是 Debian)。

好的,所以我将安装三个网卡,两个千兆位和板载 100 mbps LAN 连接。ISP 连接将通过两个网卡上的 PPPoE 身份验证使用千兆 LAN 卡(如果这甚至可能,否则我将在 DSL 调制解调器上使用非桥接模式)。两个网络都将分配一个静态 IP。目前(这将改变)主要连接有一组五个。我需要将来自这些 IP 地址之一的流量路由到网络上的正确服务器。

以下是我的问题:

  1. 我该如何设置?我是否使用 NATing、IP Chans、IP Masquerading、Routing 等...?
  2. 如何将从外部进入系统的流量路由到网络上的特定 IP 地址?

请温柔点,这是我第一次尝试过这样的事情:)。

编辑 1

忘记添加网络拓扑:

内部网络布局

编辑 2

刚刚意识到一些事情......为了进行 PPPoE 身份验证,我将不得不强制对特定接口上的凭据进行身份验证。这是怎么做的?

我在这里发布了这个问题:

创建具有两个 Internet 连接和一个 LAN 连接的多宿主 linux 负载平衡器

更新 1

仍然无法让多跳循环工作。我尝试按照以下网站中列出的步骤进行操作,但没有成功:

  1. Linux 上的负载平衡和 NAT-ing 多个 ISP 连接
  2. Linux …

networking nat iptables load-balancing linux-networking

15
推荐指数
1
解决办法
3万
查看次数

systemd 中可预测的网络接口名称

最新版本的 Ubuntu 和 Debian (stretch) 带来了新的网络接口命名方案。

现在,当从使用旧样式名称(如“eth0”)的系统进行更新时,我想在启动之前知道新名称是什么。

我怎样才能做到这一点?是否有一个神奇的“systemd”调用,我可以用来在启动前编辑 /etc/network/interface(随后失去网络连接)?

linux-networking systemd debian-stretch

15
推荐指数
2
解决办法
1万
查看次数

eth0 NIC Link is Down 在内核日志中重复消息

我从几天前就注意到出现了相同的重复消息,我可以肯定地说,在那段时间没有故意更改(安装/卸载)任何内容。

这是/var/log/kern.log消息的示例:

Mar 30 06:32:45 aurora kernel: [566322.867110] e1000e: eth0 NIC Link is Down

Mar 30 06:32:47 aurora kernel: [566325.313634] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

Mar 30 06:32:59 aurora kernel: [566337.632930] e1000e: eth0 NIC Link is Down

Mar 30 06:33:18 aurora kernel: [566356.543664] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None

Mar 30 11:05:47 aurora kernel: [582689.779752] e1000e: eth0 NIC Link is Down

Mar 30 …
Run Code Online (Sandbox Code Playgroud)

networking ethernet nic linux-networking

14
推荐指数
1
解决办法
6万
查看次数

某些 IP 使用 OpenVPN,其他所有 IP 使用 eth0

摘要:我想连接到我的 VPN 并访问某些服务器,但对于所有其他流量,我想使用我的常规网络。

我在 VPS 上设置了 OpenVPN 服务器,我的server.conf文件如下所示:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log         /var/log/openvpn.log
verb 4
push "route 10.132.0.0 255.255.0.0"
Run Code Online (Sandbox Code Playgroud)

我使用以下.ovpn文件来设置 VPN 连接:

client
dev tun
proto udp
remote <my.vpn.server.com> 1194
nobind
user nobody
group nogroup
persist-key
persist-tun
remote-cert-tls server
comp-lzo
verb …
Run Code Online (Sandbox Code Playgroud)

networking ubuntu openvpn linux-networking ubuntu-16.04

14
推荐指数
2
解决办法
9765
查看次数

解决具有特定域的多个 DNS 服务器的 Conf

我需要能够为多个网络提供特定的 dns 服务器,我想知道如何正确更新我的/etc/resolv.conf

假设我有一个主要的 vpn,我通过它路由我所有的流量和 DNS 查询。但是我知道我有另一个 VPN 可以让我对网络进行特定访问,该 VPN 也作为 DNS 服务器,但它只服务于特定域,可以说:“mydomain.local”

我构建了以下resolv.conf:

nameserver 10.8.0.1
search mydomain.local
nameserver 10.250.0.2
Run Code Online (Sandbox Code Playgroud)

但是无论如何,DNS 查询都会继续到第一个域服务器,更改顺序无关紧要。

任何人都可以给我任何建议吗?

domain-name-system linux resolv.conf openvpn linux-networking

14
推荐指数
2
解决办法
3万
查看次数

CoreOS:tcpdump 神秘解决网络问题(使用过多的套接字)

我今天有一个谜团要告诉你。我们在 Azure 上运行一个基于 CoreOS (2023.5.0 / Linux 4.19.25-coreos) 的小型三节点 Elasticsearch 集群。Elasticsearch 在主机网络模式下的 docker 容器内运行。在几乎完全免维护运行一年多之后,我们看到机器进入了一种非常有趣的状态。

更新

此问题已通过修复Linux 内核中的驱动程序解决。请参阅下面的答案。

症状

基本上,受影响的机器和其他两个节点之间的网络连接失效。它们都在同一个虚拟网络和同一个子网中,通常可以与其他人通信。仍然可以从其他子网(我可以通过 ssh 进入)和不同的对等虚拟网络访问受影响的节点。这台机器也有(非常不稳定的)互联网连接,但大多数请求只是超时。

我们观察到,在受影响的节点上,报告的“使用的套接字”数量/proc/net/sockstat非常高(大约 4.5k 而不是健康节点上的大约 300)。监控显示,这个数字从节点变得不可用的那一刻起迅速上升。

有趣的是,我们似乎无法识别这些使用过的套接字的来源:

# cat /proc/net/sockstat
sockets: used 4566
TCP: inuse 2 orphan 0 tw 2 alloc 98 mem 4
UDP: inuse 1 mem 0
UDPLITE: inuse 0
RAW: inuse 0
FRAG: inuse 0 memory 0

# cat /proc/net/sockstat6
TCP6: inuse 98
UDP6: inuse 1
UDPLITE6: inuse 0
RAW6: inuse 1
FRAG6: inuse …
Run Code Online (Sandbox Code Playgroud)

tcpdump linux-networking linux-kernel coreos azure-networking

14
推荐指数
1
解决办法
768
查看次数

PXE 在内部网络模式下引导 Virtualbox 来宾?

我不确定这是否只是特定于我的发行版软件包,还是 vbox 限制。因此,任何帮助将不胜感激。

好的,所以我有一个虚拟机网络,其中一个虚拟机充当“内部”网络中其他虚拟机的 NAT。其中一台虚拟机正在运行 DHCP 和 TFTP 服务器,我只需要从该服务器启动其他虚拟机,但是从网络启动时我启动的所有虚拟机是“致命:无法从启动介质读取!系统”停止”。

这有点令人沮丧,因为 vbox 非常易于使用和试验,但我无法解决这个错误。帮助 ?

dhcp ubuntu virtualbox linux-networking pxe-boot

13
推荐指数
1
解决办法
1万
查看次数