标签: linux-networking

ISP 的设备是否配置错误?在 Internet 接口上获取火星数据包

我们有一个来自 ISP 的 /28 块。假设 1.1.1.240/28 网关为 1.1.1.241。我们正在 1.1.1.214 从另一个客户那里收到火星数据包。他们正在向 1.1.1.255 发送广播。我们应该得到那些数据包吗?我不了解这种情况下的广播。

系统日志消息

martian source 1.1.1.255 from 1.1.1.214, on dev eth0
l 标题:ff:ff:ff:ff:ff:ff:00:XX:f3:XX:69:ad:08:00

网络接口:

$ ifconfig eth0
eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
          inet 地址:1.1.1.243 广播:1.1.1.255 掩码:255.255.255.240
          上行广播运行多播 MTU:1500 公制:1
          RX 数据包:15161982 错误:0 丢弃:0 溢出:0 帧:0
          TX 数据包:1627243 错误:0 丢弃:0 溢出:0 载波:0
          碰撞:0 txqueuelen:100
          RX 字节:1028191733 (1.0 GB) TX 字节:140279903 (140.2 MB)
          内存:fbde0000-fbe00000

或者接口配置错误?Bcast 在那里列为 1.1.1.255。如果这是正常行为,我认为内核不应该每分钟向 syslog 喷射数百个这样的信息。

更新

这些数据包以每秒 2-3 个的速度不断传入。我捕获了它们,它们 UDP src/dst 端口 15001: 10:00:91:13:00:00:39:22:23:02:00:00:00:00:00:01:3c:62:65 :61:63:6f:6e:2f:3e

linux-networking

7
推荐指数
1
解决办法
569
查看次数

SSH 隧道(端口转发)减慢了我的 mysql 查询速度

我目前正在使用 vagrant(虚拟机)测试一些配置,以通过 SSH 隧道将 2 个服务器(当前的 VM)连接在一起。目标是将我的 Web 应用程序安全地连接到数据库。

问题是,当我通过 SSH 隧道查询数据库时,查询速度比不使用隧道时慢 5 到 80 倍。这是我正在使用的命令:

ssh -N -L 3306:127.0.0.1:3306 sshuser@192.168.10.10
Run Code Online (Sandbox Code Playgroud)

从我读到的内容来看,开销不应该那么多,所以我尝试了一些方法来加快传输速度。我发现如果我删除该-N选项,查询的速度与我不使用隧道的速度一样快,但我以“sshuser”的身份登录终端(并&在命令末尾添加一个奇怪的事物...)。

所以知道了,我有几个问题:

  • 当我删除该-N选项时,我的数据是否仍然加密?

  • 如果是这样,我该怎么做才能保持性能而不在控制台中以“sshuser”的身份登录?

  • 我可以使用它们来加快加密速度吗?

预先感谢您的光。

ssh port-forwarding linux-networking vagrant tunnel

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

是否可以使用与供应商无关的 API 每秒处理数百万个数据报?

我正在研究是否可以在 Windows 中实现一个 HPC 应用程序,该应用程序使用十几个或最多 200 个多播组(即使用 MSI-X 和 RSS,我可以)以高速率接收小型 UDP 多播数据报(主要是 100-400 字节)扩展到多个内核),对每个数据包进行一些处理,然后将其发送出去。通过 TCP 发送我设法达到了我需要的程度(6.4Gb/秒)而没有撞墙,但是以高 pps 速率接收数据报却成了一个问题。

最近对 Windows 2012 R2 上带有 2 端口 10Gb 以太网 NIC 的高规格 NUMA 机器进行的测试中,我每秒只能接收数十万个 UDP 数据报(早期丢弃,即没有实际处理数据,使用 2x12 内核从等式中删除我的应用程序的处理开销以查看它的速度有多快,并且测试的 12 个多播组的内核部分似乎分布在一个 NUMA 节点的 8 或 10 个内核上(设置了最大 RSS 队列)到 16) - 尽管使用 .net 应用程序,因此本机应用程序应该能够运行得更快。

但即使是Len Holgate他的高性能 Windows RIO 测试中只能以 500kpps 的速度接收 UDP 数据包,使用 1024 …

networking performance linux-networking windows-server-2012-r2

7
推荐指数
1
解决办法
849
查看次数

在命令 traceroute 中有 * * * 是什么意思?你如何应对这种情况?

这是我的跟踪路由的结果

    traceroute   www.google.com
traceroute to www.google.com (216.58.211.228), 30 hops max, 60 byte packets
 1  192.168.1.1 (192.168.1.1)  1.061 ms  1.709 ms  2.262 ms
 2  * * *
 3  10.103.5.41 (10.103.5.41)  41.594 ms  43.136 ms  44.617 ms
 4  172.29.24.33 (172.29.24.33)  50.849 ms  51.574 ms  52.316 ms
Run Code Online (Sandbox Code Playgroud)

在命令 traceroute 中有 * * * 是什么意思?你如何应对这种情况?

networking linux linux-networking traceroute

7
推荐指数
2
解决办法
7974
查看次数

测量覆盖网络性能的正确方法

我目前正在检查不同 Docker 覆盖网络的性能(尤其是 UDP 吞吐量)。为此,我在与 Docker 覆盖网络连接的两台主机之间创建点对点连接,然后iperf在 Docker 容器内运行以检查吞吐量。我注意到每次我iperf作为客户端运行向iperf作为服务器运行的另一个容器发送数据时,客户端主机的CPU使用率达到100%。我通过运行在此处找到的以下命令获得了该结果:

top -bn1 | grep "Cpu(s)" | \
       sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | \
       awk '{print 100 - $1"%"}'
Run Code Online (Sandbox Code Playgroud)

因此,对我而言,吞吐量测试的限制因素似乎是主机的 CPU 容量,因为它以 100% 的速度运行并且无法产生更多流量来使网络连接饱和。我想知道这是否是一个iperf特定问题,所以我想使用不同的工具运行相同的测试,但不确定哪种替代方案最好。主机正在运行 Ubuntu。例如,我发现qperf,uperfnetpipe

此外,更一般地说,我开始想知道吞吐量性能的瓶颈通常是什么。它不总是与CPU容量或链路带宽有关吗?哪些因素与覆盖网络没有直接关系。

这是否意味着应用程序(或覆盖网络)的吞吐量仅取决于它需要多少 CPU 周期来传输一定数量的数据以及它如何压缩它以适应它通过网络(如果这将是瓶颈)。

iperf linux-networking cpu-usage stress-testing docker

7
推荐指数
1
解决办法
655
查看次数

Linux下IPv6的TCP拥塞控制

我可以打字

echo bbr > /proc/sys/net/ipv4/tcp_congestion_control
Run Code Online (Sandbox Code Playgroud)

更改在 IPv4 上运行的 TCP 连接的拥塞控制算法,但是对于那些通过 IPv6 到达的连接,我该如何做呢?

上面的命令是否为两者都设置了它?

linux ipv6 tcp linux-networking bbr

6
推荐指数
2
解决办法
2303
查看次数

无法创建嵌套的网络命名空间

似乎无法从网络名称空间创建网络名称空间。它导致“错误:对等网络引用无效。”。

这是一个错误还是有某种我不知道的限制?

以下是我对错误的 cmd 跟踪。

# ip netns add foo1
# ip netns exec foo1 ip netns add foo2
# ip netns
Error: Peer netns reference is invalid.
Error: Peer netns reference is invalid.
foo2
foo1
# ip netns exec foo2 /bin/bash
setting the network namespace "foo2" failed: Invalid argument

Run Code Online (Sandbox Code Playgroud)

linux ip namespaces linux-networking network-namespace

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

在“路由”模式下设置的 LXC 容器中没有网络连接

我正在 Vagrant 中尝试 lxc/lxd,但我对它还很陌生。我设法创建正在运行的容器,但无法从其中 ping 任何内容(包括 8.8.8.8)。我可以从顶级非虚拟系统 ping 其 IP,但它拒绝 SSH 连接。我只能使用 直接从直接容器的主机(Vagrant)进入容器lxc exec my-container /bin/bash

我尝试在该routed模式下设置我的容器,但出于学习目的,我仍然需要它。不过 LXD/LXC 文档似乎有些缺乏。

我尝试遵循此说明:https://blog.simos.info/how-to-get-lxd-containers-get-ip-from-the-lan-with-routed-network/但它不起作用我到底。我可能会错过一些东西,因为我还不熟悉 Linux 网络。

我的 Vagrant 主机正在运行Ubuntu 20.04

我的 LXC 容器正在运行Debian 10

我的 Vagrant 主机上的 LXC 配置:

config:
  core.https_address: '[::]:8443'
  core.trust_password: true
networks: []
storage_pools:
- config:
    source: /home/luken/lxd-storage-pools
  description: ""
  name: default
  driver: dir
profiles:
- name: default
  config: {}
  description: ""
  devices:
    root:
      path: /
      pool: default
      type: disk
- …
Run Code Online (Sandbox Code Playgroud)

networking linux-networking lxc lxd

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

systemd 的“可预测接口名称”不可预测

我在 Mac Pro 上作为 NAS/VM 主机运行 Debian 测试(内核 5.10.0-2-amd64/systemd 247.2-5)。今天,我添加了一个 Thunderbolt 3 卡(技嘉 Titan Ridge) - 并注意到了一些奇怪的事情:Mac 内置以太网端口(enp9s0 / enp10s0)的网络标识符更改为 enp14s0/enp15s0,具体取决于我的 iMac 是否已连接并开启在启动时通过 Thunderbolt。

这是什么原因造成的?我认为“新”命名方案优于旧“ethX”的优势在于设备名称是可预测的。这尤其令人讨厌,因为我必须在 GRUB 命令行中对接口名称进行硬编码,以便预引导 DHCP 工作,以便我可以解锁加密的根磁盘,而且我还需要用于桥接配置的稳定接口名称。

(另外:boltctl 和 tbtadm 都无法识别卡或连接的设备,但内核可以识别,并且网络连接工作正常。为什么?)

networking debian linux-networking systemd

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

10G 网络上的写入速度非常慢(NVME 驱动器)

搭建实验实验室集群,通过10G光纤连接接收数据写入速度为本地写入速度的10%

测试两台相同机器之间的传输速度;iperf3显示良好的内存到内存速度为9.43Gbits/s。磁盘(读取)到内存传输的速度(9.35Gbit/s):

test@rbox1:~$ iperf3 -s -B 10.0.0.21

test@rbox3:~$ iperf3 -c 10.0.0.21 -F /mnt/k8s/test.3g 
Connecting to host 10.0.0.21, port 5201
        Sent 9.00 GByte / 9.00 GByte (100%) of /mnt/k8s/test.3g
[  5]   0.00-8.26   sec  9.00 GBytes  9.35 Gbits/sec
Run Code Online (Sandbox Code Playgroud)

但是发送超过 10G 的数据并写入另一台机器上的磁盘要慢一个数量级:

test@rbox1:~$ iperf3 -s 10.0.0.21 -F /tmp/foo -B 10.0.0.21

test@rbox3:~$ iperf3 -c 10.0.0.21
Connecting to host 10.0.0.21, port 5201
[  5] local 10.0.0.23 port …
Run Code Online (Sandbox Code Playgroud)

optimization fiber 10gbethernet linux-networking nvme

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