AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1165467
Accepted
Crazy Polenta
Crazy Polenta
Asked: 2024-09-19 22:43:13 +0800 CST2024-09-19 22:43:13 +0800 CST 2024-09-19 22:43:13 +0800 CST

子网中的站点可以浏览互联网,但互相之间无法看到对方 (ip 路由 2 ISP)

  • 772

在我的路由器(ubuntu/NFTables)上,我配置了两个 WAN,每个 ISP 一个。

在当前配置下,我可以确保子网中的任何机器都可以根据 NFTables 中的规则使用第一个或第二个链接进行导航。

注意不是特定的LAN接口(任何LAN接口上的任何机器都可以根据NFTables中的规则浏览任意两个具有公网IP的链接)

一切正常,好的。

我现在面临的问题是子网上的机器应该互相看到,但它们甚至无法互相 ping 通。

有人知道我该如何修复它,以便除了保持这样的互联网浏览之外,我还可以让连接到 LAN1、LAN2、LAN3 和 LAN4 的机器能够相互通信?

以下是 netplan 配置:

network:
ethernets:
    wan1:
        addresses:
        - 111.31.111.2/28
        - 111.31.111.3/28
        - 111.31.111.4/28
        - 111.31.111.5/28
        - 111.31.111.6/28
        - 111.31.111.7/28
        - 111.31.111.8/28
        - 111.31.111.9/28
        - 111.31.111.10/28
        - 111.31.111.11/28
        - 111.31.111.12/28
        - 111.31.111.13/28
        - 111.31.111.14/28
        nameservers:
            addresses:
            - 8.8.8.8
            - 8.8.4.4
            search: []
        routes:
        - to: default
          via: 111.31.111.1
          metric: 100
        - to: default
          via: 111.31.111.1
          metric: 100
          table: 100
        routing-policy:
        - from: 192.168.10.0/24
          table: 100
        - from: 192.168.20.0/24
          table: 100
        - from: 192.168.30.0/24
          table: 100
        - from: 192.168.40.0/24
          table: 100
    wan2:
        addresses:
        - 222.63.222.10/29
        - 222.63.222.11/29
        - 222.63.222.12/29
        - 222.63.222.13/29
        - 222.63.222.14/29
        nameservers:
            addresses:
            - 8.8.8.8
            - 8.8.4.4
            search: []
        routes:
        - to: default
          via: 222.63.222.9
          metric: 200
        - to: default
          via: 222.63.222.9
          metric: 200
          table: 200
        routing-policy:
        - from: 192.168.10.0/24
          table: 200
        - from: 192.168.20.0/24
          table: 200
        - from: 192.168.30.0/24
          table: 200
        - from: 192.168.40.0/24
          table: 200
    lan1:
        addresses:
        - 192.168.10.1/24
    lan2:
        addresses:
        - 192.168.20.1/24
    lan3:
        addresses:
        - 192.168.30.1/24
    lan4:
        addresses:
        - 192.168.40.1/24
version: 2

下表和规则:

userrouter1@router1:~$ ip route
default via 111.31.111.1 dev wan1 proto static metric 100 
default via 222.63.222.9 dev wan2 proto static metric 200 
192.168.10.0/24 dev lan1 proto kernel scope link src 192.168.10.1 
192.168.40.0/24 dev lan4 proto kernel scope link src 192.168.40.1 
111.31.111.0/28 dev wan1 proto kernel scope link src 111.31.111.2 
222.63.222.8/29 dev wan2 proto kernel scope link src 222.63.222.10

userrouter1@router1:~$ ip rule
0:  from all lookup local
32756:  from 192.168.30.0/24 lookup 200 proto static
32757:  from 192.168.40.0/24 lookup 200 proto static
32758:  from 192.168.20.0/24 lookup 200 proto static
32759:  from 192.168.10.0/24 lookup 200 proto static
32760:  from 192.168.30.0/24 lookup 100 proto static
32761:  from 192.168.10.0/24 lookup 100 proto static
32762:  from 192.168.40.0/24 lookup 100 proto static
32763:  from 192.168.20.0/24 lookup 100 proto static
32766:  from all lookup main
32767:  from all lookup default

userrouter1@router1:~$ ip route show table 100
default via 111.31.111.1 dev wan1 proto static metric 100 

userrouter1@router1:~$ ip route show table 200
default via 222.63.222.9 dev wan2 proto static metric 200 

userrouter1@router1:~$ ip rule show table 100
32760:  from 192.168.30.0/24 lookup 100 proto static
32761:  from 192.168.10.0/24 lookup 100 proto static
32762:  from 192.168.40.0/24 lookup 100 proto static
32763:  from 192.168.20.0/24 lookup 100 proto static

userrouter1@router1:~$ ip rule show table 200
32756:  from 192.168.30.0/24 lookup 200 proto static
32757:  from 192.168.40.0/24 lookup 200 proto static
32758:  from 192.168.20.0/24 lookup 200 proto static
32759:  from 192.168.10.0/24 lookup 200 proto static

就目前情况而言,如果我在机器 192.168.10.10 上,我无法 PING 192.168.20.10,反之亦然...我需要解决这个问题,像这样维持到外部 IP 的导航。

有人能帮助我吗?

ubuntu
  • 1 1 个回答
  • 23 Views

1 个回答

  • Voted
  1. Best Answer
    u1686_grawity
    2024-09-19T22:58:42+08:002024-09-19T22:58:42+08:00

    您的自定义策略规则会导致表不包含主表所具有的任何“本地子网”路由。只有与所有内容匹配的默认路由,因此所有内容都会转到您的 ISP。

    您需要throw在每个表中添加(“进入下一个策略规则”)路由,

    ip -4 route add throw 192.168.0.0/16 table 100
    

    或者使用附加策略规则,在自定义表之前而不是之后在“主”中进行第二次查找(使用特殊选项以忽略默认路由)。

    ip -4 rule add pref 20 lookup main suppress_prefixlen 0
    
    • 0

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 如何在 Ubuntu 上挂载 LVM 分区?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve