我在 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 调制解调器定义静态路由,而无需提供明确的下一跳?
我有一个 linux 盒子,它被设置为网络的防火墙/网关。只是想知道为什么 ss 和其他 iproute2 工具显示的比 iptables conntrack 少得多。是不是因为路由器功能只在内核中发生?
ss -na
Run Code Online (Sandbox Code Playgroud)
仅显示两个已建立的连接,其中作为
conntrack -L -n
Run Code Online (Sandbox Code Playgroud)
显示 18 个已建立的连接。
我想限制 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) 我处于必须模拟 P2P 环境的情况(对于我的计算机科学硕士论文)。为此,我将 Docker 与 Ubuntu 一起使用来创建一堆虚拟机,这些虚拟机将连接到 BitTorrent 网络中。然后我需要确保可以设置对等点的上传和下载速率,这不是我在客户端中执行的选项(因为客户端使用睡眠来模拟较低的带宽,这会导致峰值速度)。
因此,我正在尝试为每个容器执行此操作。老实说,只要它有效,我真的不在乎这是如何完成的,但是我尝试了不同的事情但没有运气。这些是我迄今为止尝试过的事情:
我曾尝试遵循大量指南和示例,但每一个都没有奏效或如上所述。我在这里有点不知所措,所以如果有人知道上述示例应该工作的任何原因或有其他解决方案,那就太棒了。
我正在寻找的是一种限制单个 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) 在 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。(顺便说一句,我曾尝试与模式bridge,vepa和private)。
然后我可以从我的 Windows 客户端 ping IP,但是当我检查 Windows 中的 ARP 缓存 ( arp -a) 时,它们显示的 MAC 地址与主(物理)网络适配器相同,而不是新创建的 macvlan MAC 地址。
我确保清除 ARP 缓存,尝试使用客户端以前从未见过的 IP 地址等,但它始终显示错误的 MAC。
当我为 macvlan MAC 地址创建到 Windows 客户端的静态 ARP 条目并 ping 相关 IP 地址时,tcpdump 显示进入 macvlan 接口的回显请求,并且它在主(物理)接口上不显示任何内容,并且我在我的 Windows 客户端上收到了 ping 响应(一旦我记得设置 iptables 规则以允许流量!)
清除客户端上的 …
我有 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) 我已经设置了一条从家里到远程主机的未编号的 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) 我知道该ip netns add xxx命令可用于创建 Linux 网络命名空间,但它不是永久性的,这意味着服务器重新启动后创建的命名空间将消失。
那么我怎样才能创建一个可以在服务器重启后仍然存在的永久的呢?
我有一个运行 Ubuntu 10.04 的 Linux 机器,具有三个接口:eth0、eth1和eth2。我计划将其用作由两个不同 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 …
如果我想禁止响应网络的路由,我应该使用
ip route add unreachable 209.10.26.51or 吗ip route add prohibit 209.10.26.51?