标签: linux-networking

删除特定的 conntrack 条目?

在多 ISP 配置中,我通过特定接口将特定流量(例如 VoIP)路由和 NAT 到不同的提供商。当其中一个接口(或路由)不可用时,使用该接口的所有连接都必须被丢弃,并且后续流量必须通过仍在工作的连接进行路由。状态更改后,我将重置并加载适当的 iptables 和路由条目(这是“shorewall restart” - 我正在使用 shorewall)。

问题是 - 仍然存在的 conntrack 条目导致旧的(现在是错误的)外部地址仍然用于这些连接的 NAT!在“conntrack -D”之后,NAT 再次按预期工作。

我想仅删除属于旧外部地址的 conntrack 条目,或者以不影响通过其他接口的连接的方式解决问题。

例如 - 我想删除所有具有反向连接目的地的 conntrack 条目dst=old.ext.ip.adr,例如

udp 17 164 src=192.168.158.3 dst=213.208.5.40 sport=5060 dport=5060 packets=178 bytes=104509 src=213.208.5.40 dst=old.ext.ip.adr sport=5060 dport=5060 packets=234 bytes=127268 [ASSURED] mark=256 secmark=0 use=2

我已经尝试过的:

# conntrack -D -r 212.108.43.143
^C (nothing happens, it just hangs)
# conntrack -D -r 213.208.5.40 -d 212.108.43.143
Operation failed: such conntrack doesn't exist
Run Code Online (Sandbox Code Playgroud)

先感谢您!最好的问候, 兹林

routing linux-networking conntrack

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

传输大量小文件

我必须将两台带有大型 SAN 附件的服务器迁移到我们新的 VMWare 环境。

编辑:我必须提供一些额外的情报,因为我对 VMWare 解决方案有很好的答案。

好的,由于服务器上的某些技术限制,我无法在新系统上附加以前的 EMC LUN。

我无法使用 VMWare Converter 在我的新 VM 上克隆丢失的卷,因为 VMWare Converter 看不到 EMC PowerPath 伪设备,而且以前的管理员使用这些伪设备在其上构建 LVM2 和/或 ASM 卷。

这两个物理服务器连接到旧的 EMC² CX-340 SAN 并处理 5TB 的数据。

那些 5TB 的数据是小的 PDF,我需要通过我们的 1Gbit/s LAN 将它们传输到新机器。

我试过使用rsync,但它真的很慢并且对 RAM 和 CPU 性能有很大影响。

我尝试将 NC 与 TAR 一起使用,但传输速率非常慢,因为我在 1Gbit/s 链路上的平均吞吐量约为 50MB/s,流量几乎为零。

您能否给我一些有关此类迁移的建议或经验回报,以及您如何设法在合理的时间内正确完成它?

file-transfer linux-networking vmware-vsphere

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

iptables/nat/prerouting 忽略 UDP 数据包吗?

在许多具有不同内核版本的服务器上具有相同的效果。

Iptables DNAT 规则有多种:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 12345 -j DNAT --to-destination 10.20.30.40:5678
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 23456 -j DNAT --to-destination 10.11.12.13:5789
....
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 34567 -j LOG --log-prefix 'natudp: '
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 34567 -j DNAT --to-destination 10.55.66.77:34567
Run Code Online (Sandbox Code Playgroud)

问题:UDP 规则不适用于来自 eth0 的传入请求。
它们的数据包和字节计数器的值为零。
简化(删除 dport)没有效果。
结果,请求被传递到过滤器/输入链而不是转发。

来自虚拟接口(tap、veth)的数据包不存在这样的问题 - 它们被预路由规则捕获。
TCP 则没有这样的问题。
UDP …

nat iptables linux-networking dnat

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

QSFP+ 和 QSFP 40Gb/s infiniband 连接之间的兼容性和区别

我是 infiniband 网络的新手,但我需要使用一些节点扩展现有的 infiniband 集群。在我的探索性网络研究中,我发现了一些对电缆、连接器和开关的模糊描述。

根据维基百科,QSFP 被指定为 4x1Gb/s,QSFP+ 被指定为 4x10 或 40 Gb/s。然而,网络上的许多供应商都提供 40 Gb/s 的 QSFP 电缆和交换机。这似乎与我发现的不同 infiniband 布线的概述不符。

这只是草率的命名吗?这些 QSFP 40Gb/s 实际上是 QSFP+ 吗?QSFP 和 QSFP+ 之间的物理连接有区别吗?或者只是电缆质量不同(如 CAT6 和 CAT7 电缆),但连接器的形状相同?

如果有人能澄清这一点,我将非常感激。

networking cluster infiniband linux-networking

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

Linux ip xfrm:tmpl 的目的是什么?

如果我们以 Linux 命令为例ip xfrm

 ip xfrm policy add src $LOCAL dst $REMOTE dir out tmpl src $SRC dst $DST proto esp reqid $ID mode tunnel
Run Code Online (Sandbox Code Playgroud)

其作用是什么tmpl


更新:当然,我知道我们需要指定$SRC$DST。但是,既然这些已经在 SA 中通过ip xfrm state命令指定了,为什么我们需要在 中重复它们呢tmpl?称其为“模板”是什么意思?对我来说,它似乎只是一个指向预先存在的 SA ( state) 的指针。

ipsec linux-networking

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

如何使用证书颁发机构通过 SSH 提供临时访问权限?

我正在尝试使用 aws EC2 实例上的证书颁发机构通过 SSH 提供临时访问,但无法正确执行。您能否帮助指导如何实现这一目标?过程如下所述:

Step 1: Generate CA certificate on user's machine (currently doing for testing) : ssh-keygen -f ssh_ca

Step 2: Generate user's ssh keys using (on users machine): ssh-keygen
-f user_ssh_key

Step 3: Generate CA approved public key using user's public key: ssh-keygen -s ssh_ca -I host_name -h -n host_name -V +1d user_ssh_key.pub , this gives user_ssh_key-cert.pub (Public key which is signed)

Step 4: Copied ssh_ca.pub (CA pub key) and user_ssh_key ,user_ssh_key-cert.pub (user's pub and private …
Run Code Online (Sandbox Code Playgroud)

linux ssh linux-networking ssh-keys certificate-authority

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

Linux 如何在进程间分配带宽?

如果我不设置任何流量整形,Linux 如何在进程之间分配(传出)带宽?

我的具体情况是我在一个云 VM 上运行 30 个相同的进程,每个进程基本上都尽可能快地通过网络 (TCP) 发送数据。它们一起似乎达到了我期望的总输出带宽。然而,有些进程比其他进程完成得更快,并且消耗更多的带宽(高达 3 倍)。快速进程完成后,其余进程会加快速度并使用更多带宽。

Linux 如何决定每个进程应该获得多少带宽?

linux tcp linux-networking

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

在“路由”模式下设置的 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
查看次数