在多 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)
先感谢您!最好的问候, 兹林
我必须将两台带有大型 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,流量几乎为零。
您能否给我一些有关此类迁移的建议或经验回报,以及您如何设法在合理的时间内正确完成它?
在许多具有不同内核版本的服务器上具有相同的效果。
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 …
我是 infiniband 网络的新手,但我需要使用一些节点扩展现有的 infiniband 集群。在我的探索性网络研究中,我发现了一些对电缆、连接器和开关的模糊描述。
根据维基百科,QSFP 被指定为 4x1Gb/s,QSFP+ 被指定为 4x10 或 40 Gb/s。然而,网络上的许多供应商都提供 40 Gb/s 的 QSFP 电缆和交换机。这似乎与我发现的不同 infiniband 布线的概述不符。
这只是草率的命名吗?这些 QSFP 40Gb/s 实际上是 QSFP+ 吗?QSFP 和 QSFP+ 之间的物理连接有区别吗?或者只是电缆质量不同(如 CAT6 和 CAT7 电缆),但连接器的形状相同?
如果有人能澄清这一点,我将非常感激。
如果我们以 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) 的指针。
我正在尝试使用 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 如何在进程之间分配(传出)带宽?
我的具体情况是我在一个云 VM 上运行 30 个相同的进程,每个进程基本上都尽可能快地通过网络 (TCP) 发送数据。它们一起似乎达到了我期望的总输出带宽。然而,有些进程比其他进程完成得更快,并且消耗更多的带宽(高达 3 倍)。快速进程完成后,其余进程会加快速度并使用更多带宽。
Linux 如何决定每个进程应该获得多少带宽?
我正在 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 ×3
linux ×2
10gbethernet ×1
cluster ×1
conntrack ×1
debian ×1
dnat ×1
fiber ×1
infiniband ×1
ipsec ×1
iptables ×1
lxc ×1
lxd ×1
nat ×1
nvme ×1
optimization ×1
routing ×1
ssh ×1
ssh-keys ×1
systemd ×1
tcp ×1