问题标签 [iproute]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
128 浏览

linux - 是否可以对 iproute tc 命令进行逆向工程?

我的 QOS 在 VyOS 中运行良好,但需要迁移到 TinyCoreLinux,因为我将将此 VM 共享为实验室路由器。VyOS 是 400MB,而 TCL 是 10MB。

使用 VyOS 中的“set”命令,它会生成 tc 输出,如下所示:

有没有办法对其进行逆向工程以获得原始命令?

我尝试过查看生成 tc 命令的 VyOS perl 代码,但它到处都是,没有任何注释,而且我的 perl 知识也不是很好。

我还尝试将 /sbin/tc 重命名为 /sbin/tc_ 并创建了一个 /sbin/tc 脚本来尝试记录命令,但由于某种原因效果不佳。

0 投票
1 回答
1635 浏览

linux-kernel - 不同 ebpf 程序类型之间的地图共享

是否可以在不同程序类型之间共享 ebpf 映射。我需要在 tc-bpf 程序和 cgroup bpf 程序之间共享一个映射。如果映射固定到充当全局命名空间的文件系统,这应该是可能的。但是,我还没有这个工作。

该映射由 tc-bpf 程序创建并固定到全局命名空间。由于是 tc-bpf 程序,map 的类型为 struct bpf_elf_map。这个 bpf 程序是通过 iproute2 加载的。

现在,我有一个应该访问此映射的 cgroup bpf 程序,但由于它是通过 user.c (libbpf) 或 bpftool 而不是 iproute 加载的,因此此处定义的映射不能是“bpf_elf_map”,而是结构bpf_map_def。所以在cgroup bpf程序中,同样的map被定义为struct bpf_map_def而不是struct bpf_elf_map。

可能正因为如此,当我转储地图(并且不共享预期的地图)时,cgroup 程序会获得一个新的 map_id,理想情况下,当 bpf 程序共享相同的地图时,这些 bpf 程序将具有与其唯一关联的相同 map_id prog_ids。

0 投票
1 回答
233 浏览

libvirt - 如何使用 libvirt 将 macvtap 接口传递给 lxc 容器

我已经创建了一个这样的 macvtap 界面:

我的 gitea 容器有一个 xml 模板,如下所示:

但是我应该在接口部分写什么来将创建的macvtap接口传递给容器,或者如果我们不能直接传递它,我应该写什么来重新创建接口。

提前感谢您的考虑。

0 投票
1 回答
325 浏览

ubuntu - wireguard 客户端和 openvpn 服务器无法遍历数据包

你好?我正在设置这个配置。
wireguard 服务器 (192.168.0.1) PROVIDER / VPS wireguard 客户端 (192.168.0.2) - ENS3 (10.0.0.2) ETHERNET - openvpn 服务器 (10.1.0.0/24, tun0 10.1.0.1)
所以,openvpn 客户端通过 wg0 连接到互联网的VPS。

拓扑子网
服务器 10.1.0.0 255.255.255.0
push "redirect-gateway autolocal bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"

root@VPS:~# ip route show
default via 10.0.0.1 dev ens3 proto dhcp src 10.0.0.2 metric 100
10.0.0.0/24 dev ens3 proto kernel scope link src 10.0.0.2
10.1.0.0/24 dev tun0 scope link src 10.1 .0.1
WIREGUARD_SERVER_NET/24 通过 10.0.0.1 开发 ens3
192.168.0.1 开发 wg0 范围链接

root@VPS:~# ip route add 8.8.8.8 dev wg0
root@VPS:~# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8):56 个数据字节
ping:发送数据包:所需密钥不可用

* 不敢相信,但是将8.8.8.8插入[Peer]的AllowedIPs,ping就可以正常工作了。

我试过这个:

但是,数据包不会从 10.1.0.1 通过 192.168.0.1 或 192.168.0.2 到达 Internet。
但是从 openvpn 客户端 ping 到 192.168.0.1。
Wireguard客户端之所以不是0.0.0.0,是因为是VPS导致外部连接丢失。
iproute2 适用于 openvpn 客户端,不适用于此wireguard 客户端。
如果有什么好的方法,请多多指教。

0 投票
1 回答
706 浏览

ebpf - 如何使用 iproute2 将 XDP 程序导入内核?

我正在使用“ip link”命令将 xdp 程序放入内核,在我的虚拟机中(内核版本:4.18)

像这样的命令:

但是在这个命令之后,错误说:

我应该怎么做才能解决这个问题?

0 投票
1 回答
63 浏览

tcp - TCP 推送数据包未从 tun 传递

我设置了简单的数据包拦截程序,使用两个 tun,设置如下:

并将输出重定向到程序,如下所示:

我启用ip_forward和禁用rp_filter. 接收到的数据包tun0被处理、修改并更新 ip/tcp 校验和。我什至可以正确拦截SYN -> ACK,SYN -> ACK通信的 tcp 握手部分,但在那之后,任何传入的数据包都会被正确拦截并修改并从 tun 发送出去,但它永远不会被传递到本地应用程序。

0 投票
0 回答
1388 浏览

docker - 添加到 Docker 网络 macvlan 的路由以连接本地和 VPN

我的目标是 docker 容器获得的 IP 与其托管的服务器 IP 不同,并且可以从 VPN 客户端访问

我的服务器托管 docker 配置:

服务器连接到 192.168.0.0/24 上的网络,网关在 192.168.0.10。

我还有另一台带有 ips 192.168.0.150 和 12.20.0.1(用于 VPN)的 OpenVPN 服务器。

每台远程连接到 VPN 的计算机都会在 12.20.0.0/24 网络上获得一个 ip


以前,我在 VirtualBox 上使用了 Ubuntu 虚拟机,并在每个虚拟机上添加了一条可从 VPN 访问的路由

这行得通!


现在我正在使用 docker 替换我的 VM 为了从 192.168.0.0/24 网络上的服务器获取不同的 IP,我创建了一个 docker network macvlan:

然后我创建一个容器测试:

(我使用特权添加路线,更好的主意?)

现在我尝试从两个位置ping ( ping 192.168.0.48 ) 我的容器:

  • 从 192.168.0.0/24 网络上的另一台服务器 OK
  • 来自 VPN 的客户端:KO

所以我想我需要添加我在虚拟机中添加的路由

尽管如此,我还是无法从我的 VPN 客户端计算机 ping

我究竟做错了什么?

谢谢,

0 投票
1 回答
577 浏览

yocto - 在 YOCTO 上启用 iproute2 包的 'tc'

我们正在尝试在 YOCTO(warrior dist.)上启用交通控制tctctc filter

错误:未找到 TC 分类器

这是我正在尝试的完整命令:

tc filter add dev ${interface} protocol ip parent 1:0 prio 1 u32 match ip dst ${board_ip} match ip dport ${dport} 0xffff flowid 1:${port_id}

在此之前,我发出一个tc qdisctc class命令都可以。

我正在使用的内核是 4.19.35-imx8mq+g82acfd1 并且它已构建(make modules_prepare all

提前致谢!纳达夫。

0 投票
1 回答
35 浏览

gsm - 配置 NetworkManager 以在蜂窝连接处于活动状态时通过 WiFi 路由本地 wlan 数据以进行调试

嗨,这是在 Raspbian buster 和 NetworkManager 1.10.0 上,但我认为主要是网络管理器问题。

我的应用程序具有 Wifi 和蜂窝网络连接。当我调试时,我使用 Wifi(通过 SSH 连接到我的计算机),但我希望应用程序将蜂窝网络用于 MQTT 和遥测数据。

我可以调整蜂窝连接的路由指标,使其优先级高于 WiFI,但调试用于我的计算机的数据会发生什么情况?我希望这仍然是通过 WiFi 进行的。路由是否回退到 192.168.xx 的 Wifi 接口我附上了我的默认 IP 路由的打印,两个连接都处于活动状态。

Wifi 和 ppp 均处于活动状态的 IP 路由

我是否需要进入我在 NM 的 Wifi 连接并添加类似于以下内容的路由:

目标网关 Genmask Flags Metric Ref Iface 192.168.0.0/16 192.168.0.1 0.0.0.0 UG 100 0 0 wlan0 192.168.0.0 192.168.0.0/24 255.255.255.0 U 100 0 0 wlan0

我只是在学习路由,所以请善待。提前致谢!!!

0 投票
1 回答
644 浏览

routes - 具有单个 SBC IP 的多个 SIP 中继 - FreePBX

帮我从 Telco 配置 3 个 SIP 中继(每个中继 200 个通道),其中所有 3 个 SIP 具有不同的出站呼叫者 ID,并且所有三个中继都需要通过单个专用/SBC IP (100.0.2.4) 路由

这是我的 IP 详细信息

我正在使用 FreePBX,Asterisk 15 和 Asterisk 17 - 我能够通过以下命令路由 100.0.2.4

我能够拨打和接听电话,但所有呼叫一次通过任何一个 NIC 路由,这意味着我一次最多可以实现 200 个呼叫,其中通过三个中继的总容量为 600。

帮助我以适当的技术方式实现这一目标

这是我与电信公司合作的 SIP 中继