标签: ip-routing

如何防止多个 eBGP 路由器的非对称路由?

我有 2 个路由器向不同的提供商宣布一个 /22 子网(一个提供商连接到 2 个路由器中的每一个)。我已将 /22 分成两个 /23,以在每个路由器上宣布一个 /23 加上 /22(提供商将采用更具体的路线)。这允许我进行故障转移并将流量保持在 /23 内进出同一提供商。

有什么其他方法可以让我只用两个路由器宣布 /22 并且让来自路由器后面网络上服务器的数据包从它们进来的同一路由器返回?

编辑:

我遇到的主要问题是最终用户和客户抱怨最多的问题,即最少跳数路由有时不是“最佳”路由。就我而言,我知道提供商 B 可能对 X 国家有更好的延迟。但是当数据包从提供者 B 进来时,它们可能会从提供者 A 或提供者 B 出去。反过来也是如此。如果我从提供商 A 向 X 个国家发送数据包,即使它可能有更多的回跳,该数据包也可能来自提供商 B(该国家/地区可能具有更高的延迟、数据包丢失等)

routing bgp ip-routing quagga

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

简单的 Quagga BGP 路由器

我们正在尝试设置一个 Gentoo Linux 机器来为我们的互联网连接运行 Quagga BGP 路由器。我们尝试了很多方法,但是我们尝试的所有方法都导致 Quagga 报告没有可用的 BGP 网络并且它永远不会连接到邻居路由器。我认为重新开始将是我们最好的选择,所以我们的问题是:

我们需要使用什么配置 (bgpd.conf/zebra.conf) 才能使以下设置正常工作:(
请注意:我只是选择了几个随机的 Google IP 范围,这些不是真正的 IP 地址)

  • 路由器IP:74.125.53.103/29
  • 路由器 AS:9283
  • 公共 IP 范围:209.85.171.0/24(这些是我们使用的公共 IP 地址,它们通过上面列出的路由器运行)
  • 邻居IP:74.125.53.104/29
  • 邻居 AS:9283

我们目前有这个设置并通过运行 DD-WRT 固件的 Linksys 家用路由器运行。它像冠军一样工作,但负担开始变得太大了。我们已经考虑了路由器的几种选择,出于各种原因,我不会讨论,运行我们自己定制的路由器似乎是最受欢迎的选择。

预先感谢您的帮助,我们一直在努力解决这个问题!

linux router gentoo bgp ip-routing

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

帮助我理解 cisco 路由器的“ip route”命令

我只是无法绕过它。

例如:

替代文字

我希望最左侧的路由器能够 ping 左侧的计算机,反之亦然。

我将在哪里设置 ip 路由以及到什么地址。我觉得我只是猜测,并没有真正理解这个概念。

图片来自 Cisco Packettracer。

cisco router ip-routing

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

如何将流量从专用网络路由到 openvpn 子网(并返回)

我在 Linode 有几台服务器。我正在尝试设置它们,以便在其中一台机器上使用 VPN,然后可以使用私有 linode 网络访问所有其他机器。对私有服务(SSH 等)的公共访问将仅限于具有 VPN 访问权限的人。

注意:我还没有在这些服务器上运行防火墙

root@internal:~# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  
Run Code Online (Sandbox Code Playgroud)

内部服务器(运行 openvpn 服务器)

eth0      Link encap:Ethernet  HWaddr f2:3c:91:db:68:b4  
          inet addr:23.239.17.12  Bcast:23.239.17.255  Mask:255.255.255.0
          inet6 addr: 2600:3c02::f03c:91ff:fedb:68b4/64 Scope:Global
          inet6 addr: fe80::f03c:91ff:fedb:68b4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:80780 errors:0 dropped:0 overruns:0 frame:0
          TX packets:102812 errors:0 …
Run Code Online (Sandbox Code Playgroud)

openvpn ip-routing

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

同一子网上的多个接口之间无法通信

我在一台机器上有多个以太网接口,全部位于同一子网上。通常,它们被设置为在单独的虚拟机上运行,​​并且我了解 Linux 所施加的限制,如此处所述但我的任务是尝试使其在一台主机上运行。我已经能够配置它们,使进出主机的流量通过正确的设备进行引导。我无法做的是从一台设备与另一台设备进行通信。以下是我到目前为止配置设备所做的操作:

设置静态IP地址:

ip addr add 192.168.1.124 dev eth0
ip addr add 192.168.1.125 dev eth1
ip addr add 192.168.1.126 dev eth2
...
Run Code Online (Sandbox Code Playgroud)

启用arp过滤:

sysctl -w net.ipv4.conf.all.arp_filter=1
Run Code Online (Sandbox Code Playgroud)

实现基于源的路由如下:

将以下内容附加到/etc/iproute2/rt_tables

1     eth0
2     eth1
3     eth2
...
Run Code Online (Sandbox Code Playgroud)

将默认路由添加到表中

ip route add default via 192.168.1.11 table eth0
ip route add default via 192.168.1.11 table eth1
ip route add default via 192.168.1.11 table eth2
...
Run Code Online (Sandbox Code Playgroud)

根据源IP添加通过特定设备的子网路由

ip route add 192.168.1.0/24 dev eth0 src 192.168.1.124 table eth0
ip route add 192.168.1.0/24 …
Run Code Online (Sandbox Code Playgroud)

networking linux ip-routing interface

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

运营商级 NAT 概念:IP 禁令

鉴于 6 提供更高的吞吐量,我想至少为无线位部署使用 IPV6 的无线广域网。我正在探索 CGN 的概念,立即让我印象深刻的是责任。

假设您为 14 个公寓使用一个 IP 地址。现在假设 apt 1 中的 Ronnie 和 apt 2 中的 Jerry 玩游戏。他们连接到不同计算机上的公共游戏服务器。Ronnie 做了一些顽皮的事情,管理员按照正常情况彻底禁止了他的 IP 地址。尽管没有做错什么,现在杰瑞不能玩。

鉴于即使是专业网站也实施 IP 禁令,可以肯定地说,您既不能信任管理员 A) 专门阻止帐户和 B) 响应通用客户票证(取决于网站)

实际上有没有办法解决这个问题,或者这只是使用运营商级 NAT 的成本?

(我完全知道 IPV6 正变得风靡一时,但如果没有某种隧道,用户将无法访问许多网站。那时我仍然需要公共 IPV4 地址。)

nat internet ip-routing isp ipv4

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

将流量路由到同一网络上的两个 NIC

我在 Scaleway 上有几个 linux 测试盒,每个都有 2 个 NIC,它们都连接到同一个网络,10.0.0.0/8但每个都有自己的网关。

我希望能够同时使用 NIC(eth0/eth1)及其 IP 进行通信。因此,如果应用程序绑定到 IP .187,则应使用 dev eth0。如果应用程序绑定到 IP .189,则应使用 eth1。

现在只有 IP 为 .187 的接口 eth0 正在响应请求。任何请求。(这就是我使用 ping 和 ssh 进行测试的原因)。但是,如果我将默认路由从 eth0 更改为 eth1(ip .189),则传出流量将通过 eth1 正确路由,在这种情况下,eth0 将不可用。

那么如何配置盒子,这样两个接口都可以使用。

给定的

Box 1:
eth0_ip = 10.5.68.187/31
eth0_gw = 10.5.68.186

eth1_ip = 10.5.68.189/31
eth1_gw = 10.5.68.188
Run Code Online (Sandbox Code Playgroud)

方法

根据我的研究,herehere我创建了一个 bash 脚本,该脚本应该添加带有表的静态路由,以便可以同时使用两个网卡。

#/bin/bash
# My Vars with IP and GW for eth0
eth0_ip=$(ip -o -4 addr list eth0 | …
Run Code Online (Sandbox Code Playgroud)

networking routing ip-routing linux-networking iproute

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

观察到(接受的)ICMP 重定向多长时间,我该如何缩短该时间?

如果 Linux 主机接收并接受 ICMP 重定向(accept_redirects=1在有问题的接口上),该路由被缓存和观察多长时间?我可以降低那个时间吗?

我之所以这么问,是因为我有许多系统被虚假路由毒害,这些路由很可能源于不幸的 ICMP 重定向:

$ ip route get 10.2.2.2 10.2.2.2 via 10.2.2.2 dev eth0 src 10.1.1.2 cache <redirected>

并且他们根本没有忘记重定向,即使在收到最后一个 ICMP 重定向后超过 12 小时!我必须手动ip route flush cache删除条目并恢复正确的路线:

$ ip route get 10.2.2.2 10.2.2.2 via 10.1.1.1 dev eth0 src 10.1.1.2 cache

我知道首先发送、接收和接受 ICMP 重定向的方式和原因,这个问题与此无关。


我认为这与问题无关,但这里有一些细节:

我们有一个内部网络,比如说 10.1.0.0/16。其中一台机器 10.1.1.1 是 OpenVPN 服务器,远程客户端在 10.2.0.0/16 内获得分配的地址。其他内部机器有一个静态路由 10.0.0.0/8 --> 10.1.1.1。它故意比 10.2.0.0/16 更宽,因为 VPN 服务器将来可能会服务更多的客户端。

不幸的是,我们的配置管理将更广泛的静态路由 10/8-->10.1.1.1 也推送到 VPN 服务器本身,它被建立为 10/8-->eth0。这种不必要的路线通常没有任何效果。

在正常情况下,此设置工作正常。但后来发生了这样的事情:

  • VPN 服务器 10.1.1.1 重新启动
  • 其他一些内部主机(比如 …

networking linux routing icmp ip-routing

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

RedHat 7:SIOCDELRT:没有这样的过程

[user@telco-aa1]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 ens192
10.15.55.0      0.0.0.0         255.255.255.0   U     100    0        0 ens256
new-dc1         10.120.88.1     255.255.255.255 UGH   100    0        0 ens161
10.120.88.0     0.0.0.0         255.255.248.0   U     100    0        0 ens161
10.120.100.0    0.0.0.0         255.255.255.0   U     100    0        0 ens192
192.168.202.0   0.0.0.0         255.255.255.0   U     100    0        0 ens224
[user@telco-aa1]#


[user@telco-aa1]# route del 10.120.100.0 ens192
SIOCDELRT: No such process
[user@telco-aa1]#

[user@telco-aa1]# ip r s
default via 10.120.100.1 …
Run Code Online (Sandbox Code Playgroud)

static-routes redhat routing ip-routing

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

Ubuntu 默认为 IPv6,应该默认为 IPv4

具有内核 4.4 的 Ubuntu 16.04.5 曾经按预期工作:IPv4 是默认值。自从更改为内核 (hwe) 4.15 以来,它默认使用 IPv6。

它通过 Tunnelbroker 提供 IPv6,由路由器广播。

现在默认为 IPv6:curl ifconfig.co返回计算机的 IPv6。仅curl -4 ifconfig.co返回所需的 IPv4 地址。(curl -6 ifconfig.co如预期返回 IPv6)

$ ip rule list
0:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default

$ ip -6 rule list
0:      from all lookup local
32766:  from all lookup main

$ ip route list
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0  proto kernel …
Run Code Online (Sandbox Code Playgroud)

routing ip ipv6 ip-routing ipv4

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