标签: iproute2

如何使用 iproute2 更改网络掩码?

使用 ifconfig 我们可以使用以下内容更改网络掩码:

ifconfig eth0 netmask <new netmask>
Run Code Online (Sandbox Code Playgroud)

我们如何使用命令 ip 来做到这一点?

我知道 ifconfig 已被弃用,这主要是为什么我想以 iproute2 方式进行操作。

我的目标是将我们当前的网络从 /24 即时扩展到 /21,而不会干扰我们服务器上运行的服务。作为目前的解决方法,我只是向 /21 添加一条新路由,最终计划的网络重启将使更改正式化。它有效,但我想知道是否有更好的方法。

谢谢,

linux linux-networking iproute2

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

在 iproute2 中设置默认路由接口

我有两台机器。一个运行arch linux,另一个运行fedora。arch 使用 iproute2。所以我需要从路由转换为 iproute2。此命令会将默认接口设置为 ppp0。

我已经搜索了文档,但我仍然没有任何线索。

如何在 iproute2 中做到这一点

route add default ppp0
Run Code Online (Sandbox Code Playgroud)

route iproute2

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

iptables 异步 NAT。预路由表后丢包

我有一台 Centos 服务器在我的网络中充当 NAT。该服务器有一个外部(后来的 ext1)接口和三个内部(后来的 int1、int2 和 int3)接口。出口流量通过 int1 来自用户,在 MASQUERADE 之后通过 ext1。入口流量来自 ext1、MASQUERADE,并根据静态路由通过 int2 或 int3。

                       | ext1
                       | x.x.x.x/24
             +---------|----------------------+
             |                                |
             |  Centos server  (NAT)          |
             |                                |
             +---|------|---------------|-----+
                 |      |               |
            int1 |      | int2          | int3
   10.30.1.10/24 |      | 10.30.2.10/24 | 10.30.3.10/24
                 ^      v               v
    10.30.1.1/24 |      | 10.30.2.1/24  | 10.30.3.1/24
             +---|------|---------------|-----+
             |   |      |               |     |
             |   |      v               v     |
             |   ^      -Traffic policer-     |
             |   |_____________ |             |
             |                  |             |
             +------------------|-------------+ …
Run Code Online (Sandbox Code Playgroud)

nat iptables ip-routing iproute2

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

iptables 丢弃负面的 DNS 响应

如何在 Linux 中删除传入的负面 DNS 响应?(我想要超时)我正在考虑创建一个 iptables 规则:

iptables -I INPUT -p udp --sport 53 -m u32 ...
Run Code Online (Sandbox Code Playgroud)

来自wireshark:

000E start of IP Packet (fixed, at first, I wrote 0010)
0022 start of UDP Packet
002A start of DNS message
002C  Flags
        .... .... .... 0000 = Reply code: No error (0)
        .... .... .... 0011 = Reply code: No such name (3)
Run Code Online (Sandbox Code Playgroud)

我认为 -m u32 的偏移量是从 ip 标头计算的。还减去 2 得到 32 位。

$ echo $(( 0x002C - 0x000E - 2 …
Run Code Online (Sandbox Code Playgroud)

domain-name-system linux iptables iproute2

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

systemd-networkd 相当于“ip 规则添加...”

基本上标题说明了一切,相当于

ip rule add from 10.10.0.10/32 table 2
ip rule add to 10.10.0.10/32 table 2
Run Code Online (Sandbox Code Playgroud)

在 systemd-networkd 中?

我试图设置类似

[Route]
Destination 10.10.0.10/32
Table=2
Run Code Online (Sandbox Code Playgroud)

但这并不能解决问题,联机帮助页没有提及这方面的任何内容。

networking iproute2 systemd

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

Ping 在带网桥的 TAP 接口上不起作用

我正在尝试了解 linux 桥接和本地 ip 规则,

我的 linux 笔记本电脑上有以下拓扑。

               br0 
     ___________|__________
     |                    |    
  |tap0                  tap1|
  |________Application_______| 
Run Code Online (Sandbox Code Playgroud)

上面的应用程序正在创建 2 个 tap 接口 tap0 和 tap1

我创建了桥接器并将抽头接口插入桥接器:

brctl addif br0 tap0
brctl addif br0 tap1
Run Code Online (Sandbox Code Playgroud)

为了 ping 工作,我需要向接口添加 ip 地址,所以我添加192.168.13.1 to tap0192.168.13.2 to tap1

对于这两个接口,应用程序从一个接口读取并写入另一个接口。

现在,如果我运行“ping 192.168.13.2 -I tap0”

PING 192.168.13.2 (192.168.13.2) from 192.168.13.1 tap0: 56(84) bytes of data.
From 192.168.13.1 icmp_seq=1 Destination Host Unreachable
Run Code Online (Sandbox Code Playgroud)

tcpdump 显示 arp 无法解析,所以我添加了静态 ARP 条目:

arp -i tap0 -s 192.168.13.1 62:34:58:e7:8a:3a
arp -i tap1 …
Run Code Online (Sandbox Code Playgroud)

linux routing bridge iproute2 policy-routing

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

无需 ifenslave 命令即可更改 Linux 网络绑定接口的活动从属设备

Linux 支持多个以太网网络接口的绑定,以实现额外的可靠性或负载平衡。

绑定驱动程序过去是通过命令配置的,该命令已被弃用(由iproute2工具包中的命令ifenslave取代),因此已从内核源代码中删除。ipifenslave

已弃用命令的一个特殊功能(我找不到现代等效命令)是更改绑定接口的活动从属设备(假设绑定接口在该模式下运行active-backup)。

例如,以下命令将eth0网卡设置为bond0接口的活动从属:

ifenslave -c bond0 eth0
ifenslave --change-active bond0 eth0
Run Code Online (Sandbox Code Playgroud)

有没有办法使用iproute2ip工具包中的命令或通过 sysfs 更改 Linux 绑定接口的活动从属设备?

linux bonding linux-networking iproute2

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

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

在现有子网上创建新子网

我有三台服务器,目前有 ips 192.168.1.1、192.168.1.2 和 192.168.1.3。他们可以看到对方并互相交谈。我想在 192.168.1.x 之上创建第二个子网,即 10.170.xx

我可以为三台服务器 10.170.0.1、10.170.0.2 和 10.170.0.3 中的每台分配 ips,使用ip addr add 10.170.0.1 dev eth0. 我遇到的问题是如何进行路由。我无法通过 10.170.xx 网络 ping 任何服务器。我相信我需要创建一些点对点桥梁,但我不知道如何开始。有任何想法吗?

networking debian iproute2

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

使用 iproute2 删除接口上的所有 IP

我有一个这样设置的界面

ip addr add 192.168.1.1/24 dev eth0
ip addr add 192.168.1.2/24 dev eth0
ip addr add 192.168.1.3/24 dev eth0
Run Code Online (Sandbox Code Playgroud)

等等。

有没有一种简单的方法可以删除我添加的所有 IP 而不做

ip addr del 192.168.1.1/24 dev eth0
ip addr del 192.168.1.2/24 dev eth0
ip addr del 192.168.1.3/24 dev eth0
Run Code Online (Sandbox Code Playgroud)

或做类似的事情

ips=`ip addr show dev eth0 | grep -oe '192\.168\1\.[0-2][0-9]{1,2}'`
for ii in $ips; do
   ip addr del $ii dev eth0
done
Run Code Online (Sandbox Code Playgroud)

必须有一种更优雅的方式来做到这一点。

iproute2

0
推荐指数
1
解决办法
3081
查看次数

使用 iproute2 转储所有表的所有路由

我想保存所有路由表的所有路由。

我有这个脚本:

#!/bin/bash

DUMP=dump.log

for i in `seq 0 255`;
do
    routes="`ip route show table ${i}`"
    if [ ! -z "${routes}" ];then
        echo "table: ${i}" >> ${DUMP}
        echo "${routes}" >> ${DUMP}
        echo "" >> ${DUMP}
    fi
done
Run Code Online (Sandbox Code Playgroud)

我对这个脚本的问题是:

  1. 它迭代所有表,并假设唯一有效的表号是 0-255,这是一个有效的假设吗?
  2. 是否有一个简单的 1 班轮来获取所有桌子的所有路线?

谢谢

bash iproute2

0
推荐指数
1
解决办法
1381
查看次数