我们有一个来自 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
我目前正在使用 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”的身份登录?
我可以使用它们来加快加密速度吗?
预先感谢您的光。
我正在研究是否可以在 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
这是我的跟踪路由的结果
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 中有 * * * 是什么意思?你如何应对这种情况?
我目前正在检查不同 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,uperf和netpipe。
此外,更一般地说,我开始想知道吞吐量性能的瓶颈通常是什么。它不总是与CPU容量或链路带宽有关吗?哪些因素与覆盖网络没有直接关系。
这是否意味着应用程序(或覆盖网络)的吞吐量仅取决于它需要多少 CPU 周期来传输一定数量的数据以及它如何压缩它以适应它通过网络(如果这将是瓶颈)。
我可以打字
echo bbr > /proc/sys/net/ipv4/tcp_congestion_control
Run Code Online (Sandbox Code Playgroud)
更改在 IPv4 上运行的 TCP 连接的拥塞控制算法,但是对于那些通过 IPv6 到达的连接,我该如何做呢?
上面的命令是否为两者都设置了它?
似乎无法从网络名称空间创建网络名称空间。它导致“错误:对等网络引用无效。”。
这是一个错误还是有某种我不知道的限制?
以下是我对错误的 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) 我正在 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) 我在 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 都无法识别卡或连接的设备,但内核可以识别,并且网络连接工作正常。为什么?)
搭建实验实验室集群,通过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) linux-networking ×10
networking ×4
linux ×3
10gbethernet ×1
bbr ×1
cpu-usage ×1
debian ×1
docker ×1
fiber ×1
ip ×1
iperf ×1
ipv6 ×1
lxc ×1
lxd ×1
namespaces ×1
nvme ×1
optimization ×1
performance ×1
ssh ×1
systemd ×1
tcp ×1
traceroute ×1
tunnel ×1
vagrant ×1