iptables 用于将 VM 主机与 vbridge 隔离

iptables 用于将 VM 主机与 vbridge 隔离

我放弃了 Shorewall,因为它似乎对于这似乎要求的简单、不变的规则集来说有些过度了。

我在主机和每个 ISP 之间的机架中安装了 2 个堡垒防火墙。

主机包含一个受外壳限制的虚拟机,该虚拟机对 2 个 WAN 连接进行负载平衡并为多个网络提供路由。

由于它还托管网桥,因此 VM 主机在每个子网上都有一个 IP,将每个堡垒防火墙连接到 VM 路由器上各自的 WAN 端口。

除了能够为路由器 VM 提供对物理端口的访问之外,VM 主机不需要这些连接中的任何一个 - VM 路由器提供主机的网关和 DNS。

目标是定义规则,使 eth(n) 和 vmbr(n) 上的所有入站流量使用 VM-WAN-IP-foo 作为网关,并且 eth(n) 和 vmbr(n) 上的所有出站流量使用 bastion-fw-IP-bar 作为网关。

也适用于 eth(x) 和 vmbr(x)。


最初我以为我可以这样做:

iptables -A INPUT -i eth(n) -s 0.0.0.0/0 -d 0.0.0.0/0 -j ROUTE --gw foo(n)

iptables -A OUTPUT -o eth(n) -s 0.0.0.0/0 -d 0.0.0.0/0 -j ROUTE --gw bar(n)

iptables -A INPUT -i eth(x) -s 0.0.0.0/0 -d 0.0.0.0/0 -j ROUTE --gw foo(x)

iptables -A OUTPUT -o eth(x) -s 0.0.0.0/0 -d 0.0.0.0/0 -j ROUTE --gw bar(x)

但这并没有发生,所以我一定没有正确理解我在手册页中看到的内容。


当我在 #netfilter IRC 房间询问时,有人提到“ROUTE”已弃用,并改用 -mangle。我从未想到过,像这样的事情需要 mangling。

我是不是误以为这应该简单而直接?

我觉得有一种更简单的方法可以解决这个问题,只是我还不知道,也许有人可以启发我。

编辑:

换句话说,VM Host 托管这些连接点,但不允许使用它们。

它以及可能进入这些接口的任何其他东西都必须通过 VM 路由器才能到达 VM 主机。

以下是我所指的前后绘图:

|-------|               |-------|
| ISP-A |<--|           | ISP-B |<--|
|-------|   |           |-------|   |
            |                       |
            V                       V
        |-----------|           |-----------|
        | BASTION-A |<--|       | BASTION-B |<--|
        |-----------|   |       |-----------|   |
                        |                       |
                        |                       |           
                        |                       |
         VM Host        |                       |           
            |           |                       |
            |           |                       |
           \|/          |                       |
            V           |                       |
                        |                       |           
    ||=================\|/=====================\|/==========||
    ||              |---V---|               |---V---|       ||
    ||              |       |<----\   /---->|       |       ||
    ||              |       |      \ /      |       |       ||
    ||              | eth(n)|       V       |eth(x) |       ||
    ||              |       |       |       |       |       ||
    ||              |       |<--|   |   |-->|       |       ||
    ||              |-------|   |   |   |   |-------|       ||
    ||                          |   |   |                   ||
    ||                          |   |   |                   ||
    ||                          |   |   |                   ||
    ||              |-------|   |   |   |   |-------|       ||
    ||              |       |<--|   |   |-->|       |       ||
    ||              |       |       |       |       |       ||
    ||              |vmbr(n)|       |       |vmbr(x)|       ||
    ||              |       |       |       |       |       ||
    ||          |-->|       |<--|   |   |-->|       |<--|   ||
    ||          |   |-------|   |   |   |   |-------|   |   ||
    ||          |               |   |   |               |   ||
    ||          |               |   |   |               |   ||
    ||          |               |   |   |               |   ||
    ||          |               |   |   |               |   ||
    ||          |               |   |   |               |   ||
    ||          |               |   |   |               |   ||
    ||          |              /   / \   \              |   ||
    ||          |             V   V   V   V         |---|   ||
    ||          |           |---------------|       |       ||
    ||          |           |               |       |       ||
    ||          |           |               |       |       ||
    ||          |       |-->|    VM Host    |       |       ||
    ||          |       |   |               |       |       ||
    ||          |       |   |               |       |       ||
    ||          |       |   |---------------|       |       ||
    ||          |       |                           |       ||
    ||          |       |                           |       ||
    ||          V       V                           V       ||
    ||      |-------------------------------------------|   ||
    ||      |  WAN     LAN                         WAN  |   ||
    ||      |                                           |   ||
    ||      |                     VM Router             |   ||
    ||      |                                           |   ||
    ||      |                                           |   ||
    ||      |                                           |   ||
    ||      |  LAN     LAN     LAN     LAN     SAN      |   ||
    ||      |-------------------------------------------|   ||
    ||          ^       ^       ^       ^       ^           ||
    ||          |       |       |       |       |           ||
    ||          |       |       |       |       |           ||
    ||          |       |       |       |       |           ||
    ||          ,       ,       ,       ,       ,           ||
    ||        .*^*,   .*^*,   .*^*,   .*^*,   .*^*,         ||
    ||       (     ) (     ) (     ) (     ) (     )        ||
    ||       ((    ) ((    ) ((    ) ((    ) ((    )        ||
    ||        (  .)   (  .)   (  .)   (  .)   (  .)         ||
    ||         `~      `~      `~      `~      `~           ||
    ||                                                      ||
    ||                                                      ||
    ||======================================================||











|-------|               |-------|
| ISP-A |<--|           | ISP-B |<--|
|-------|   |           |-------|   |
            |                       |
            V                       V
        |-----------|           |-----------|
        | BASTION-A |<--|       | BASTION-B |<--|
        |-----------|   |       |-----------|   |
                        |                       |
                        |                       |           
                        |                       |
         VM Host        |                       |           
            |           |                       |
            |           |                       |
           \|/          |                       |
            V           |                       |
                        |                       |           
    ||=================\|/=====================\|/==========||
    ||              |---V---|               |---V---|       ||
    ||              |       |<----\   /---->|       |       ||
    ||              |       |      \ /      |       |       ||
    ||              | eth(n)|       V       |eth(x) |       ||
    ||              |       |       |       |       |       ||
    ||              |       |<--|   |   |-->|       |       ||
    ||              |-------|   |   |   |   |-------|       ||
    ||                          |   |   |                   ||
    ||                          |   |   |                   ||
    ||                          |   |   |                   ||
    ||              |-------|   |   |   |   |-------|       ||
    ||              |       |<--|   |   |-->|       |       ||
    ||              |       |       |       |       |       ||
    ||              |vmbr(n)|       |       |vmbr(x)|       ||
    ||              |       |       |       |       |       ||
    ||          |-->|       |<--|   |   |-->|       |<--|   ||
    ||          |   |-------|   |   |   |   |-------|   |   ||
    ||          |               |   |   |               |   ||
    ||          |     //============================//  |   ||
    ||          |    //                            //   |   ||
    ||          |   //  IP Tables Says: 'Detour'  //    |   ||
    ||          |  //                            //     |   ||
    ||          | //============================//      |   ||
    ||          |              /   / \   \              |   ||
    ||          |             V   V   V   V         |---|   ||
    ||          |           |---------------|       |       ||
    ||          |           |               |       |       ||
    ||          |           |               |       |       ||
    ||          |       |-->|    VM Host    |       |       ||
    ||          |       |   |               |       |       ||
    ||          |       |   |               |       |       ||
    ||          |       |   |---------------|       |       ||
    ||          |       |                           |       ||
    ||          |       |                           |       ||
    ||          V       V                           V       ||
    ||      |-------------------------------------------|   ||
    ||      |  WAN     LAN                         WAN  |   ||
    ||      |                                           |   ||
    ||      |                     VM Router             |   ||
    ||      |                                           |   ||
    ||      |                                           |   ||
    ||      |                                           |   ||
    ||      |  LAN     LAN     LAN     LAN     SAN      |   ||
    ||      |-------------------------------------------|   ||
    ||          ^       ^       ^       ^       ^           ||
    ||          |       |       |       |       |           ||
    ||          |       |       |       |       |           ||
    ||          |       |       |       |       |           ||
    ||          ,       ,       ,       ,       ,           ||
    ||        .*^*,   .*^*,   .*^*,   .*^*,   .*^*,         ||
    ||       (     ) (     ) (     ) (     ) (     )        ||
    ||       ((    ) ((    ) ((    ) ((    ) ((    )        ||
    ||        (  .)   (  .)   (  .)   (  .)   (  .)         ||
    ||         `~      `~      `~      `~      `~           ||
    ||                                                      ||
    ||                                                      ||
    ||======================================================||

答案1

我可能错了,但你不是基本上在做静态 NAT 吗?尝试 SNAT 目标(它在 mangle 表中)。

答案2

我不确定您是否真的可以为入站流量定义网关。

相关内容