标签: iproute2

不知道下一跳的静态路由(linux)

我在 linux 路由器中有一个eth3接口,带有一个 adsl 调制解调器。此 adsl 调制解调器处于桥接模式,因此将公共 IP 分配给 eth3(例如 11.22.33.44),而我的服务器看不到该调制解调器。

我想通过 eth3定义到特定 IP (88.191.250.176)的静态路由,但我没有要设置的 nexthop:

ip route add 88.191.250.176 dev eth3
Run Code Online (Sandbox Code Playgroud)

被接受但不起作用(数据包永远不会出去)。

ip route add 88.191.250.176 via 11.22.33.44 dev eth3
Run Code Online (Sandbox Code Playgroud)

也不行

如果我将调制解调器设置为路由器模式,那么我就有了 linux 服务器的 NATed 地址 (192.168.1.2) 和 Adsl 路由器的 IP 地址 (192.168.1.1),我可以这样做:

ip route add 88.191.250.176 via 192.168.1.1 dev eth3
Run Code Online (Sandbox Code Playgroud)

行得通。

是否可以在桥接模式(第一种情况)下通过我的 adsl 调制解调器定义静态路由,而无需提供明确的下一跳?

networking linux routing bridge iproute2

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

Iproute2 工具与 conntrack 工具

我有一个 linux 盒子,它被设置为网络的防火墙/网关。只是想知道为什么 ss 和其他 iproute2 工具显示的比 iptables conntrack 少得多。是不是因为路由器功能只在内核中发生?

ss -na
Run Code Online (Sandbox Code Playgroud)

仅显示两个已建立的连接,其中作为

conntrack -L -n
Run Code Online (Sandbox Code Playgroud)

显示 18 个已建立的连接。

tcpip iptables iproute2 conntrack

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

Linux 上的传入(入口)流量整形 - bw 低于预期

我想限制 Linux box 的传入(下载)速度。

配置的盒子和流量源(HTTP服务器)都连接在同一个交换机上,如果没有配置整形,下载速度为30MBps

我根据http://lartc.org/lartc.html使用 tc

########## downlink #############
# slow downloads down to somewhat less than the real speed  to prevent 
# queuing at our ISP. Tune to see how high you can set it.
# ISPs tend to have *huge* queues to make sure big downloads are fast
#
# attach ingress policer:

/sbin/tc qdisc add dev $DEV handle ffff: ingress

# filter *everything* to it (0.0.0.0/0), drop everything that's
# coming in too fast: …
Run Code Online (Sandbox Code Playgroud)

linux traffic-shaping iproute2

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

限制 Ubuntu Linux 上的带宽

我处于必须模拟 P2P 环境的情况(对于我的计算机科学硕士论文)。为此,我将 Docker 与 Ubuntu 一起使用来创建一堆虚拟机,这些虚拟机将连接到 BitTorrent 网络中。然后我需要确保可以设置对等点的上传和下载速率,这不是我在客户端中执行的选项(因为客户端使用睡眠来模拟较低的带宽,这会导致峰值速度)。

因此,我正在尝试为每个容器执行此操作。老实说,只要它有效,我真的不在乎这是如何完成的,但是我尝试了不同的事情但没有运气。这些是我迄今为止尝试过的事情:

  1. Trickle Trickle 似乎在起作用,但出于某种原因,当我启动超过 5 个 Docker 容器时,Trickle 会使很多容器退出而不告诉我原因。我尝试了不同的设置,但是在配置方面你没有那么多旋钮可以转动,所以我认为在这种情况下不会选择 Trickle。
  2. Wondershaper 使用 Wondershaper 似乎有效,或者至少它限制了带宽。这里唯一的问题是在选项中设置的值与实际带宽之间似乎没有可以理解的相关性。当我设置下载 2048(应该是 kbits)时,实际下载范围在 550KB 到 900KB 之间,这看起来很奇怪。
  3. tc 使用 tc,就像许多人针对类似问题所建议的那样,确实限制了带宽,但无论我设置什么值,它总是给我相同的带宽(大约 15-20KB/s)。

我曾尝试遵循大量指南和示例,但每一个都没有奏效或如上所述。我在这里有点不知所措,所以如果有人知道上述示例应该工作的任何原因或有其他解决方案,那就太棒了。

我正在寻找的是一种限制单个 Linux 实例的方法,然后我应该能够使其适用于多个 Docker 容器。

- - - - - - - - 编辑 - - - - - - - -

我尝试了几个不同的 tc 命令,但其中一个是这样的

DEV=eth0
tc qdisc del dev $DEV root
tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 100mbit
tc …
Run Code Online (Sandbox Code Playgroud)

networking linux traffic-shaping tc iproute2

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

物理接口 MAC 而不是 macvlan MAC 作为 ARP 响应发送

在 Arch Linux ARM (Raspberry Pi) Kernel 4.4.37 上,我创建了一个 macvlan 例如

ip link add link eth0 mac0 type macvlan
Run Code Online (Sandbox Code Playgroud)

然后 macvlan 虚拟 NIC 出现在列表中,因此我为其分配了一个 IP 地址,并将链接状态设置为 up。(顺便说一句,我曾尝试与模式bridgevepaprivate)。

然后我可以从我的 Windows 客户端 ping IP,但是当我检查 Windows 中的 ARP 缓存 ( arp -a) 时,它们显示的 MAC 地址与主(物理)网络适配器相同,而不是新创建的 macvlan MAC 地址。

我确保清除 ARP 缓存,尝试使用客户端以前从未见过的 IP 地址等,但它始终显示错误的 MAC。

当我为 macvlan MAC 地址创建到 Windows 客户端的静态 ARP 条目并 ping 相关 IP 地址时,tcpdump 显示进入 macvlan 接口的回显请求,并且它在主(物理)接口上不显示任何内容,并且我在我的 Windows 客户端上收到了 ping 响应(一旦我记得设置 iptables 规则以允许流量!)

清除客户端上的 …

linux mac-address linux-networking iproute2

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

高级路由问题

我有 2 个使用 2 个 ADSL 路由器的 Internet 链接,我需要为 192.168.0.0/24 网络提供 Internet 访问权限。

我必须根据端口号、协议……在 Linux 路由器上使用 iproute2 和 iptables 来路由传出流量。

这是我的网络:

     (ISP-1)                              (ISP-2)
Dynamic public IP                    Dynamic public IP 
        |                                    |
+---------------+                    +---------------+
|ADSL Router (1)|                    |ADSL Router (2)|
+---------------+                    +---------------+
        |                                    |
   192.168.1.1                          192.168.2.1
        |                                    |
        |                                    |
        |                                    |
        |        +------------------+        |
        |        |                  |        |
   192.168.1.2 --|eth1          eth2|-- 192.168.2.2
                 |                  |
                 |   Linux Router   |
                 |                  |
                 |       eth0       |
                 +------------------+
                          |
                     192.168.0.1
                          |
                          |
                    Local Network: …
Run Code Online (Sandbox Code Playgroud)

nat iptables iproute2

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

具有未编号接口的 IPv6 路由 - 超出范围错误

我已经设置了一条从家里到远程主机的未编号的 L2tp 隧道。在尝试 ping ipv6.google.com 时,我收到了超出范围的错误,我知道在一段时间之前,不应该以这种方式使用链接本地地址,但现在有了未编号的接口,这应该是可能的。

两台机器都运行最新的 debian jessie,但具有更新的内核4.6.0-0.bpo.1-amd64

隧道:

~> sudo ip l2tp show tunnel
   Tunnel 386, encap IP
   From 192.168.88.254 to remote_host
   Peer tunnel 381
Run Code Online (Sandbox Code Playgroud)

地址和路由:

首页 ~> ip -6 地址

5: l2tpeth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1492 state UNKNOWN qlen 1000
    inet6 fe80::8427:7dff:fea4:939b/64 scope link
       valid_lft forever preferred_lft forever
~> ip -6 route
local ::1 dev lo  proto kernel  metric 256
fe80::/64 dev vnet0  proto kernel  metric 256
fe80::/64 dev l2tpeth0  proto kernel  metric 1024
default via fe80::f94e:693a:aa66:e79b …
Run Code Online (Sandbox Code Playgroud)

linux ipv6 iproute2

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

如何创建永久的Linux网络命名空间

我知道该ip netns add xxx命令可用于创建 Linux 网络命名空间,但它不是永久性的,这意味着服务器重新启动后创建的命名空间将消失。

那么我怎样才能创建一个可以在服务器重启后仍然存在的永久的呢?

linux-networking iproute2 network-namespace

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

iproute2:具有多个网络和多个网关的路由

我有一个运行 Ubuntu 10.04 的 Linux 机器,具有三个接口:eth0eth1eth2。我计划将其用作由两个不同 ISP 分配的 4 个公共子网的 WAN 路由器。以下是子网(我已将 ISP 分配的子网转换为 C 类私有子网):

ISP 1   
WAN 192.168.0.176/30 gateway 192.168.0.177   
LAN 192.168.3.192/29

ISP 2   
WAN 192.168.6.208/30 gateway 192.168.6.209  
LAN 192.168.9.216/29
Run Code Online (Sandbox Code Playgroud)

/30子网面向各自的 ISP,/29子网面向我的 LAN 交换机。

这是将 IP 分配给接口的方式:

LAN interface 
eth0 192.168.3.193/29
eth0:0 192.168.9.217/29

ISP 1 interface
eth1 192.168.0.178/30

ISP 2 interface
eth2 192.168.6.210/30
Run Code Online (Sandbox Code Playgroud)

我想在各自分配的 ISP/30/29子网之间分别路由流量。如果流量来自一个 ISP 的/30网络,则应将其路由到该 ISP 的/29网络,反之亦然。我不介意源自一个 ISP /29 …

static-routes routing iproute2

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

ICMP禁止和ICMP不可达有什么区别?

如果我想禁止响应网络的路由,我应该使用 ip route add unreachable 209.10.26.51or 吗ip route add prohibit 209.10.26.51

networking local-area-network route iproute2

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