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
    • 最新
    • 标签
主页 / unix / 问题 / 693748
Accepted
schweik
schweik
Asked: 2022-03-10 07:42:09 +0800 CST2022-03-10 07:42:09 +0800 CST 2022-03-10 07:42:09 +0800 CST

如何配置从两个子网到防火墙的静态路由

  • 772

好吧,一张图片千言万语。3 个私有子网:

                                                  +-----+    +-----+
                                                  | PC2 |    | PC3 |
                                       Linux      | .2  |    | .3  |
  __                                +----------+  +-----+    +-----+
 i  \                               |        .1|     |          |
 n   )     +-----+                  |    ------|-----+----------+-----
 t  (      |     |  192.168.0.0/24  |.1/     / |eth1  192.168.1.0/24
 e   > ----|FW .2|------------------| < LR  X  |
 r  (      |     |              eth0|  \     \ |eth2  192.168.2.0/24
 n   )     +-----+                  |    ------|-----+----------+-----
 e__/                               |        .1|     |          |
                                    +----------+  +-----+    +-----+
                                       Router     | .4  |    | .5  |
                                                  | PC4 |    | PC5 |
                                                  +-----+    +-----+

Linux路由器:

ifcace eth0 inet static
    address 192.168.0.1/24
    gateway 192.168.0.2
    dns-nameservers 8.8.8.8

ifcace eth1 inet static
    address 192.168.1.1/24

ifcace eth2 inet static
    address 192.168.2.1/24

PCx (..1.x):

ifcace eth0 inet static
    address 192.168.1.x/24
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8

PCx (..2.x):

ifcace eth0 inet static
    address 192.168.2.x/24
    gateway 192.168.2.1
    dns-nameservers 8.8.8.8

LR

# echo "1" > /proc/sys/net/ipv4/ip_forward
# ip route list
default via 192.168.0.2 dev eth0 onlink 
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.1 
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.1 
192.168.2.0/24 dev eth2  proto kernel  scope link  src 192.168.2.1 

Linux 路由器可以轻松 ping 到 FW 并与公共 Internet 通信。LR 也可以 ping 所有的 PC。PCx 可以 ping 到192.168.0.1地址但不能 ping 到 FW 192.168.0.2(主机不可达)

它不打算在 和 之间进行路由192.168.1.0/24,192.168.2.0/24但非常希望通过 FW 到达公共 Internet。我知道,可以用 iptables NAT 做一些事情,这意味着配置两个防火墙串联,但这不是我们需要的。首选简单的静态路由。

我用谷歌搜索了一个注释,设置“ip规则”可能会有所帮助,但不明白如何。

拜托,你能告诉我,什么该死的配置可以设置预期的路由?

ip route可能是强大的工具,但是一些带有示例的清晰教程应该非常有用。

linux configuration
  • 1 1 个回答
  • 79 Views

1 个回答

  • Voted
  1. Best Answer
    Jim L.
    2022-03-16T12:16:51+08:002022-03-16T12:16:51+08:00

    网络地址转换 (NAT) 并不特别关心本地 LAN IP 是什么。它只知道从外部接口转发到 Internet 的任何流量都必须在 IP 数据包中携带一个“发件人”地址,该地址与FW的外部接口上的公共 IP 相匹配。因此,您的图表没有理由不适用于传出流量。

    但是当流量回来时,再次携带FW外部接口的“To”IP地址,NAT会尽职尽责地将“To”地址转换为匹配NAT表中记录的原始192.168.X.0/24地址。这就是问题开始的地方。如果原始地址是 192.168.0.x/24,没问题,因为FW在那个网络上有一个接口,因此知道如何直接到达那些主机。

    但如果原始 IP 是 192.168.1.x 或 192.168.2.x,那么FW不知道这些 IP 在哪里。它在这两个网络上都没有接口,因此无法直接访问它们;并且FW不知道(除非您告诉它)这些 IP 应该被路由回LR,以便LR可以转发它们。

    该问题的解决方案是在FW上设置静态路由,告诉它将网络 192.168.1.0/24 和 192.168.2.0/24 的流量路由到哪里,即将两个网络路由到 192.168.0.1。

    鉴于您的评论说您可以在FW上使用 NAT 功能,但您不能更改其路由表,最简单的配置是将LR从充当路由器更改为充当网桥。回想一下,网桥连接同一网络广播域上的多个主机(通过学习每个桥接接口上的 MAC 地址),这与网络交换机的做法非常相似。

    如果将路由器LR重新配置为桥接LB(桥接eth0、eth1和eth2),全程使用192.168.0.x/24个IP,并将192.168.0.2设置为所有主机的默认网关,那么FW不会只转发NAT 流量输出,但当流量返回时,它将能够毫无问题地将其传送回 192.168.0.X 网络。

    • 1

相关问题

  • 有没有办法让 ls 只显示某些目录的隐藏文件?

  • 使用键盘快捷键启动/停止 systemd 服务 [关闭]

  • 需要一些系统调用

  • astyle 不会更改源文件格式

  • 通过标签将根文件系统传递给linux内核

Sidebar

Stats

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

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve