标签: iproute

用于MPLS配置的iproute2命令

试图找出如何使用iproute2来管理Linux内核4.1中的静态标签交换MPLS路由.

我知道iproute2对MPLS的支持现在可能不完整[2].

任何人都可以了解iproute2-4.1.1目前能够做些什么?

这是我到目前为止所发现的:

文档/网络/ MPLS-sysctl.txt中

/ proc/sys/net/mpls/platform_labels/proc/sys/net/mpls/conf //输入

加载mpls模块

sudo modprobe mpls_router 
Run Code Online (Sandbox Code Playgroud)

查找sysctl支持

sysctl -a --pattern mpls 
net.mpls.conf.eth0.input = 0 
net.mpls.conf.eth1.input = 0 
net.mpls.conf.lo.input = 0 
net.mpls.platform_labels = 0 
Run Code Online (Sandbox Code Playgroud)

启用mpls支持

sudo sysctl -w net.mpls.conf.eth0.input=1 
sudo sysctl -w net.mpls.conf.eth1.input=1 
sudo sysctl -w net.mpls.platform_labels=1000 
Run Code Online (Sandbox Code Playgroud)

推???(如何添加前缀到推送动作?)

sudo ip route add 1.1.1.1/32 via mpls 100/200/300 dev eth0 
Run Code Online (Sandbox Code Playgroud)

交换???(如何添加标签交换动作?)

sudo ip -f mpls route add 10 via mpls 100/200/300 dev eth0 
Run Code Online (Sandbox Code Playgroud)

弹出??? (如何添加label-pop动作?)

???

节目???(如何显示标签交换路由?)

???

有人可以帮我吗 .提前致谢.

linux routing linux-kernel netlink iproute

11
推荐指数
1
解决办法
9437
查看次数

使用bash在Linux中获取子网掩码

我正在使用bash来获取该脚本的机器的IP地址:

_MyGW="$( ip route get 8.8.8.8 | awk 'N=3 {print $N}' )"
Run Code Online (Sandbox Code Playgroud)

现在我想尝试这种类型的子网掩码:

192.168.1.0/24 
Run Code Online (Sandbox Code Playgroud)

但我不知道我该怎么做.

linux bash networking iproute

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

什么可以防止频繁切换具有多个接口的机器的默认源ip

目标是在具有多个接口和实时ips的计算机上频繁更改默认传出源ip.

我根据其文档使用ip route replace default,让脚本在循环中运行一段时间.它改变了源IP一段时间,但随后所有对该机器的互联网访问都丢失了.必须从Web界面远程重新启动才能使任何工作正常

是否有任何可能阻止这种情况稳定运行的事情.我在多台服务器上试过这个?

以下是最低限度的示例

# extract all currently active source ips except loopback
IPs="$(ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 |
awk '{ print $1}')"

read -a ip_arr <<<$IPs

# extract all currently active mac / ethernet addresses
Int="$(ifconfig  | grep 'eth'| grep -v 'lo' | awk '{print $1}')"
read -a eth_arr <<<$Int

ip_len=${#ip_arr[@]}
eth_len=${#eth_arr[@]}

i=0;
e=0;

while(true); do

    #ip route replace 0.0.0.0 dev eth0:1 src 192.168.1.18
    route_cmd="ip route replace 0.0.0.0 dev …
Run Code Online (Sandbox Code Playgroud)

bash routing tcp-ip iproute

5
推荐指数
1
解决办法
142
查看次数

使用 ip route add 向多台设备添加组播路由

TLDR:有没有办法使用“ip route”为多个 NIC 添加多播路由?

我们有软件将绑定到不同 NICS 上不同 IP 地址的两个套接字连接到两个单独的多播组,例如,套接字 1 绑定到 192.168.0.2 并加入多播组 233.255.10.1,而套接字 2 绑定到 10.57.31.2 并加入到多播组 239.255.100.1。

我们目前正在使用 bash 脚本(Linux 内核 3.14.39)使用路由在两个网络接口上设置多播路由,例如

route add -net 224.0.0.0 netmask 240.0.0.0 eth0
route add -net 224.0.0.0 netmask 240.0.0.0 eth1
Run Code Online (Sandbox Code Playgroud)

并通过 route -n 验证

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
224.0.0.0       0.0.0.0         240.0.0.0       U     0      0        0 eth0
224.0.0.0       0.0.0.0         240.0.0.0       U     0      0        0 eth1
Run Code Online (Sandbox Code Playgroud)

我最近读到该路由已弃用/过时,我们应该改用 ip route,例如

ip route add 224.0.0.0/4 dev eth0
ip route add 224.0.0.0/4 dev …
Run Code Online (Sandbox Code Playgroud)

linux routing multicast iproute

5
推荐指数
0
解决办法
2684
查看次数

不同 ebpf 程序类型之间的映射共享

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

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

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

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

elf linux-kernel iproute bpf ebpf

5
推荐指数
1
解决办法
1178
查看次数

标签 统计

iproute ×5

linux ×3

routing ×3

bash ×2

linux-kernel ×2

bpf ×1

ebpf ×1

elf ×1

multicast ×1

netlink ×1

networking ×1

tcp-ip ×1