V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
测试工具
SmokePing
IPv6 访问测试
V2EX  ›  宽带症候群

如何为动态 IP 设置 1:1 NAT

  •  
  •   xiaofami · 3 天前 · 1559 次点击
    家里的网络可以通过 PPPoe 拨号获取多个外网 IP 地址。现在我想通过 1:1 NAT 将其中一个 IP 地址分配给内网中某台设备,使其完全暴露在外部网络。设置 1:1 NAT 一切顺利,经测试能得到 FullCone NAT 类型。不过 1:1 NAT 必须指定一个固定的 External IP,而通过 PPPoe 获取的地址是动态的,每次发生变化后都要重新设置规则。有没有办法绕过这种限制,比如说执行一个 cron 任务定期检查对应 WAN 口 IP,如果变化就自动更新规则,还是说有更好的解决办法?在设备上直接 PPPoe 拨号是可行的,但是为了管理方便我不想这么做 。。。 路由使用的是 pfSense。
    20 回复  |  直到 2018-01-16 22:23:41 +08:00
        1
    boywhp   3 天前
    感觉就是设置 DMZ 区,找找看有没有对应的设置项?
        2
    10467106   3 天前 via iPhone
    dmz 或 dnat
        3
    LGA1150   3 天前 via Android
    允许多拨?让终端再拨一次
        4
    mooncakejs   3 天前 via iPhone
    如果是 OP 之类,if up 脚本
        5
    lewiseek   3 天前 via Android
    能多线多拨吗,能的话上个交换机要单独获取 IP 的设备独立拨号不就行了
        6
    Tink   3 天前 via iPhone
    dmz
        7
    xiaofami   3 天前
    @boywhp @10467106 @Tink
    DMZ 貌似不行,我读到的文档说设置 DMZ 需要第三张网卡,我的 ESXI Host 机只有 2 张物理网卡,DMZ 即便设置好其他物理机也无法加入
    @LGA1150 @mooncakejs
    能多拨,终端也能独立拨号,不过感觉不如在路由端统一管理方便
        8
    LGA1150   3 天前 via Android
    @xiaofami
    SNAT 换成 MASQUERADE
        9
    qwvy2g   3 天前 via Android
    一对一 nat。
        10
    bazingaterry   3 天前 via iPhone
    利用 pppoe 的 hook ?
        11
    flynaj   3 天前 via Android
    ros 是有这个设置,你这个是不是已经没有更新的系统
        12
    bao3   3 天前
    应该是只要你有 **3** 个 interface 就可以,而不是三个物理网上。多数系统(*BSD/*linux)只是利用 interface 作逻辑区分用,而不是要求你有 **3** NIC。

    你再看一下你的文档,是 inteface 还是 NIC。
        13
    bao3   3 天前
    我 X,传说中 V2EX 说支持 markdown 呢,为毛我用的都不显示。。。
        14
    580a388da131   2 天前
    @bao3 回复不支持
        15
    terrancesiu   2 天前
    ros 容易,你说的 pfSense 没设置过。
        16
    msg7086   1 天前
    pfsense 本质上是 pf 编辑,你可以看看怎么写个脚本在拿到 ip 以后写 pf。
    而且你都走 ESXi 了,难道你的网卡是 pass through 的么,如果不是,那虚拟机上开虚拟的物理网卡不是分分钟。
        17
    skylancer   1 天前
    @xiaofami interface 和 adapter 分清楚好点...
        18
    xiaofami   1 天前
    @msg7086 我可能混淆了 DMZ 和 exposed host 的概念。一般家用路由器提供的“ DMZ ”功能,其实都是 exposed host ?如果没理解错,DMZ 的子网和 LAN 应该是不同的,而一般路由器提供的“ DMZ ”显然没有做到。
    另外对 DMZ 还有 2 点疑惑之处。一是如何加入 DMZ 区域。我的物理 NIC 没有直通,新建虚拟 NIC 没有问题,不过 ESXI Host 机外的物理设备貌似没办法接入。二是 DMZ 并没有解决 NAT 问题,还是需要做 1:1 map,于是又回到了问题的起点…
        19
    msg7086   1 天前
    @xiaofami 正好昨天在 tg 群里谈到这个问题。
    我查下来的资料是 DMZ 就是用 1:1NAT 实现的。
    也就是说,DMZ 是描述内网主机的,说的是电脑;而 1:1NAT 是描述网络连接方案的,说的是路由器。
    不知道我有没有理解错。

    你说的暴露主机,可能是 routing / bridge 到对应的主机吧,但是家庭网络也不支持 VLAN,应该是做不到的。
        20
    xiaofami   1 天前
    @msg7086 DMZ 是安全措施,NAT 是为了能够被公共访问到,两者经常一起使用,但并不能说 DMZ 是用 1:1 NAT 实现的。某论坛上看到的这段话解释得很清楚:

    The idea of a DMZ is that you have servers that need to be accessed from the internet, as we all know. The DMZ is a separate subnet that's logically outside of your inside LAN by applying security policies to what traffic can reach it. The bigger issue is servers get hacked. Now, if that server is in a DMZ, logic would indicate that you've also created rules in your firewall (which has DMZ and inside facing interfaces) NOT to allow any traffic to originate from that DMZ server and make connections to your inside LAN, protecting your inside LAN if that DMZ server gets compromised. If you put that server on your internal LAN and then NAT a public internet IP to it, people are connecting from the internet to that server in your LAN, and if they crack it they will have access to everything else on your inside LAN from that box. If it were in a DMZ and gets hacked, the firewall will block the hacker from making connections to the inside LAN from it.

    What Sosipater is saying about how you'll probably use NAT in your DMZ anyway because many people create a separate DMZ subnet and assign private, non-internet-routable IPs like 192.168.x.x to the servers in the DMZ. You then have to "NAT" whatever public internet IP, from your ISP, to that private IP assigned to the server. In this case, you're using BOTH a DMZ and NAT.

    Either way, if the server is going to be accessed from the Web, use a DMZ! Its a best practice and just the smart way to go. You already have a firewall. The only cost associated should be if you get payed OT or not... ;-)
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   798 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 57ms · UTC 18:11 · PVG 02:11 · LAX 10:11 · JFK 13:11
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1