标签: 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万
查看次数

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
查看次数

如何关闭没有附加进程的端口?

这个问题类似于网络端口打开,但没有附加过程?netstat显示没有 pid 的侦听端口,但 lsof 没有

我尝试了我能做的一切(作为 root:netstat、lsof、ls -al /proc/*/fd 等),但我找不到 pid。

不管怎样,我必须关闭或释放没有 pid 的端口,因为我的进程想要监听它。无论如何都要这样做吗?

我不想重新启动服务器。因为我的系统中有一个进程,它会更新我所有服务器中的bin文件,然后自动部署所有服务器。当监听7123或其他端口时,部署会失败。

谢谢。

更多细节

这种情况有三台服务器,它们都是 Rackspace 的服务器,所有“坏端口”都是 udp 端口​​ 7123。

重新启动可以解决这个问题,我已经在这三台服务器之一上尝试过。但我不想重新启动服务器。

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
udp   213120      0 134.213.205.214:7123        0.0.0.0:*                           -
Run Code Online (Sandbox Code Playgroud)

nmap的结果显示该端口没有关闭。(@Enzo)

root@auto:~# nmap 134.213.205.214 -p 7123 -sU

Starting Nmap 6.40 ( http://nmap.org ) at 2018-04-16 12:01 UTC
Nmap scan report for auto (134.213.205.214)
Host is up.
PORT     STATE         SERVICE
7123/udp open|filtered unknown

Nmap done: 1 IP address …
Run Code Online (Sandbox Code Playgroud)

linux linux-networking socket

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

“nmcli dev wifi”中输出的信号单位是什么

Signal我想知道 The 的计算单位。是 dBM 吗?通常我会看到 dBM 值位于-. -+值在 dBM 中表示什么?另外,该值越为正,是否意味着信号强度越大?即一个值的42平均信号强度比一个值高37

\n\n
 # nmcli dev wifi\n\n*  SSID                              MODE   CHAN  RATE       SIGNAL  BARS  SECURITY \n*  nixcraft                          Infra  149   54 Mbit/s  42      \xe2\x96\x82\xe2\x96\x84__  WPA2     \n   tfarcxin                          Infra  7     54 Mbit/s  37      \xe2\x96\x82\xe2\x96\x84__  WPA2    \n
Run Code Online (Sandbox Code Playgroud)\n

wifi networkmanager linux-networking

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

如何在 nftables 中记录策略丢弃的数据包?

我有一个在输入链中丢弃数据包的策略

        chain input {
                type filter hook input priority 0; policy drop;
Run Code Online (Sandbox Code Playgroud)

我怎样才能只记录这些丢弃的数据包?

linux-networking nftables

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

OpenVPN 如何通过客户端路由互联网流量

我的用例:我想通过 路由所有互联网machine B流量machine A。但是,我不能简单地将 OpenVPN 服务器安装在我无法控制的 NAT/防火墙层后面machine Amachine A我当前的解决方案是安装 OpenVPN 服务器machine C,并同时拥有两者machines A并作为客户端B连接C。我正在尝试设置正确的路线,以便所有来自 的流量都B可以通过A. 下面详细介绍了每台计算机上的设置和我尝试的步骤,我剩下的问题在倒数第二段中。

现在,machine C在 Docker 容器中运行 Linux 和 OpenVPN 服务器 ( https://github.com/kylemanna/docker-openvpn )。使用redirect-gateway def1,两台客户端计算机都可以通过服务器连接和路由流量(https://ipleak.net确认服务器 IP)。但对于以下测试,redirect-gateway def1被删除,而topology subnetclient-to-client被添加。服务器有子网IP192.168.255.1和公网IP AAA.BBB.CCC.DDD

machine A运行 Windows 并已IPEnabledRouter=1在 中进行设置HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\,将服务Routing …

linux windows openvpn linux-networking docker

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

nmcli 设置静态 IP 地址而不使用 DHCP?

我想为 eth0 接口分配静态 IP 地址,而不用 DHCP 分配动态地址。我尝试将方法设置为手动,但这没有帮助,我最终在接口上有 2 个 IP,一个是静态的,另一个是动态的。我想使用 nmcli 在接口上只有一个静态 IP

/etc/NetworkManager/system-connections/static.nmconnection:

[connection]
id=static
uuid=5da74c14-d9da-4e15-90c9-5f37913d5610
type=ethernet
interface-name=eth0
permissions=
timestamp=1584007539

[ethernet]
mac-address-blacklist=

[ipv4]
address1=172.17.1.222/24,172.17.0.1
dns=172.17.0.221;172.17.0.220;
dns-search=
method=manual

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=ignore
Run Code Online (Sandbox Code Playgroud)

ip地址:

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether dc:a6:32:3b:22:03 brd ff:ff:ff:ff:ff:ff
inet 172.17.1.222/24 brd 172.17.1.255 scope global noprefixroute eth0
   valid_lft forever preferred_lft forever
inet 172.17.12.14/16 brd 172.17.255.255 scope global dynamic noprefixroute eth0
   valid_lft 602857sec preferred_lft 527257sec
inet6 fe80::dea6:32ff:fe3b:2203/64 scope link 
   valid_lft forever …
Run Code Online (Sandbox Code Playgroud)

linux-networking nmcli

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