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 / 问题 / 42741
Accepted
Torandi
Torandi
Asked: 2009-07-20 10:20:50 +0800 CST2009-07-20 10:20:50 +0800 CST 2009-07-20 10:20:50 +0800 CST

为多个外部 IP 配置 DD-WRT?

  • 772

我有一个运行 DD-WRT 固件和四个外部 IP 的 Broadcom BCM5352 路由器。在我家里的网络配置中,我首先有一个路由器,然后是一个连接到路由器的交换机(以避免多根电缆穿过整个公寓。

服务器连接到交换机,如果可能,我想给该服务器一个不同的外部 ip(即告诉路由器将所有流量路由到指定的外部 ip 到服务器,反之亦然)。我没有静态 IP,我的 ISP 只提供 DHCP。

那么有没有办法配置这个?固件支持 iptables,所以如果可以用 iptables 完成,那就是一个解决方案。可以使用 pf,该功能称为双向 nat 映射(1:1 映射)。

router linux iptables
  • 4 4 个回答
  • 4617 Views

4 个回答

  • Voted
  1. Best Answer
    user13587
    2009-07-20T21:06:12+08:002009-07-20T21:06:12+08:00

    首先,正如另一个人在上面提到的 - 我从未听说过 ISP 使用 DHCP 提供多个 IP。你可能想检查一下。

    这些都不是 DD-WRT 特定的:

    ...如果他们真的把它全部交给 DHCP,那么您将需要在一个接口卡上使用多个 MAC,或者您需要将 4 个 NIC 全部插入一个交换机,然后再将其插入您的 ISP 路由器。这就是 b/c DHCP 服务器将继续为您提供相同的 IP,不管它是否都在同一个 MAC 上。我不认为 Linux 无论如何都要在同一个 NIC 上做多个 MAC。

    在此之后,它很容易:
    - 为每个你想要的 IP 使用 'ip addr XXXX dev eth0 (或你在那边使用的任何 NIC)。

    您需要像往常一样在 iptables 中设置 NAT

    然后,您需要配置 DNAT(端口转发)以将传入流量定向到服务器。您将设置这些规则以转发到服务器的内部 IP...

    如果您希望该服务器始终来自该 IP,那么您还需要使用 SNAT 来执行此操作,并且您需要在 mangle 表中标记数据包,然后为此设置一个“ip rule”命令。

    我们在这里的路由器上完成所有这些......

    2    80 DNAT       tcp  --  eth2   *       0.0.0.0/0            x.x.x.74        tcp dpt:53 to:10.10.x.5:53 
    0     0 DNAT       udp  --  eth2   *       0.0.0.0/0            x.x.x.74        udp dpt:53 to:10.10.x.5:53 
    1197 60064 DNAT       all  --  eth2   *       0.0.0.0/0            x.x.x.73        to:10.10.x.9 
    
    Chain POSTROUTING(策略接受 2686 个数据包,403K 字节)
     pkts bytes target prot opt in out source destination         
    14613 903K SNAT 全部 -- * eth0 0.0.0.0/0 0.0.0.0/0 到:xx.xx75
        0 0 SNAT all -- * eth2 10.10.x.98 0.0.0.0/0 to:xxx.xxxx.69
      178 11500 SNAT 全部 -- * eth2 10.10.x.8 0.0.0.0/0 到:xx.xx.219.xx
        0 0 SNAT all -- * eth2 10.10.x.9 0.0.0.0/0 to:xxx.xxx.xx.xx
        1 60 SNAT 全部 -- * eth2 10.10.x.18 0.0.0.0/0 到:xx.xx70
        0 0 SNAT all -- * eth2 10.10.x.5 0.0.0.0/0 to:xxx74
    14327 871K SNAT 全部 -- * eth2 0.0.0.0/0 0.0.0.0/0 到:xxx66
    

    这是 iproute2 规则的样子:

    0:从所有本地查找
    18:从所有 fwmark 0x4 查找 T1
    19:从所有 fwmark 0x3 查找 T1
    20:从所有查找主
    21:来自 xxx0/20 查找电缆
    22:从 xxx64/27 查找 T1
    1000:从所有查找 110
    2000:从所有查找主要
    32766:来自所有查找主
    32767:从所有查找默认值
    
    和 mangle 表 - 这使得某些机器首先使用这些规则,因此它们退出正确的 IP/接口:
    
    链 PREROUTING(策略接受 1921K 数据包,1149M 字节)
     pkts bytes target prot opt in out source destination         
       10 1304 MARK tcp -- eth1 * 10.10.x.18 0.0.0.0/0 tcp dpt:25 MARK 设置 0x3
        0 0 标记 tcp -- eth1 * 10.10.x.9 0.0.0.0/0 tcp dpts:1719:1720 标记设置 0x4
        0 0 MARK tcp -- eth1 * 10.10.x.9 0.0.0.0/0 tcp spts:60100:60200 MARK 设置 0x4
        0 0 标记 udp -- eth1 * 10.10.x.9 0.0.0.0/0 udp spts:60100:60200 标记设置 0x4
    

    请注意我们如何将 TCP 25 标记为始终走出特定路线。如果您没有将邮件发送到许多接收 SMTP 服务器上的 MX 记录所述的 IP,那么您的邮件将被退回。

    • 2
  2. davr
    2009-07-20T11:31:06+08:002009-07-20T11:31:06+08:00

    是的,可以使用 iptables,但是您需要从您的 ISP 分配两个 IP。我 99% 确定唯一的方法是使用静态 IP,我从未听说过 ISP 通过 DHCP 提供两个 IP。

    • 0
  3. Oskar Duveborn
    2009-07-20T11:59:12+08:002009-07-20T11:59:12+08:00

    我认为您可以使用 iptables 来做到这一点,但这会有点困难,我不记得了,但我很久以前就研究过这个问题,有人向我展示了一些带有动态 IP 的示例。然后我切换到了几个虚拟服务器防火墙实例,所以每个外部动态 (dhcp) ip 都有一个 - 全部通过单个外部主机 NIC(是的,它们现在运行 Microsoft ISA,但这并不重要)。这似乎更容易,出于某种原因,我喜欢在通用服务器操作系统上运行我的防火墙和 NAT 路由器;)

    瑞典的许多 ISP 通过 DHCP 分发多个公共动态 IP - 5 是一个非常常见的默认值,尽管并非所有人都这样做。这样一来,您就不需要对 NAT 的恐怖进行猛烈抨击来支持家中的多个主机......尽管我猜消费者级边缘防火墙通常无法处理......

    • 0
  4. lanrat
    2009-07-20T20:13:04+08:002009-07-20T20:13:04+08:00

    你搜索过 DD-WRT 论坛吗?在这里
    ,我在路由器上运行 DD-WRT,并有一个分配 5 个 DHCP IP 的 ISP。但是,我采取了一条不同且更简单的路线。我让我的互联网连接直接进入一个交换机,然后插入我的服务器和我的 DD-WRT 路由器。每个设备都有自己的 DHCP IP,就好像它在自己的网络连接上一样。但是,我仍然可以以 100Mbps(我的交换机的速度)与我的互联网连接速度的速度与我的服务器交谈。

    另一种选择是将您的服务器连接到您的路由器并使其成为 DMZ 服务器,这将产生类似的效果,但您的路由器和服务器将共享一个 IP。

    第四种也是更复杂的方法是在您的服务器中使用 2 个 NIC,并让您的服务器在其传出连接上添加一个虚拟接口,并将该虚拟接口桥接到您的路由器。然后两个设备都有自己的IP。(在这种情况下,服务器将执行您所说的您希望路由器执行的操作)

    • 0

相关问题

  • 多操作系统环境的首选电子邮件客户端

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

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

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +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