iptables изолировать VM Host от vbridge

Я бросил shorewall, потому что он казался излишним для простого, неизменного набора правил, к которому это, кажется, нужно.

У меня есть 2 бастионных брандмауэра в стойке между хостом и каждым провайдером.

Хост содержит виртуальную машину с привязкой к корпусу, которая балансирует нагрузку для двух WAN-соединений и обеспечивает маршрутизацию для нескольких сетей.

Поскольку он также является хостом мостов, у хоста виртуальной машины есть IP-адрес в каждой подсети, которая подключает каждый бастионный бастион к их собственному порту WAN на маршрутизаторе виртуальной машины.

Хосту виртуальной машины не требуется ни одно из этих соединений, кроме как для обеспечения доступа виртуальной машины маршрутизатора к физическим портам - маршрутизатор виртуальной машины предоставляет шлюз хоста и DNS.

Цель состоит в том, чтобы определить правила, которые заставляют весь входящий трафик на eth(n) и vmbr(n) использовать VM-WAN-IP-foo в качестве шлюза, а весь исходящий трафик на eth(n) и vmbr(n) использует bastion- FW-IP-бар в качестве шлюза.

Также для 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)

Но это не потребовало, поэтому я не должен правильно понимать, что я вижу на странице руководства.


Когда я спросил в IRC-комнате #netfilter, кто-то упомянул, что "ROUTE" устарел, и вместо него следует использовать -mangle. Я бы никогда не подумал, что калечить нужно для чего-то подобного.

Я ошибаюсь, что это должно быть просто и понятно?

У меня есть ощущение, что есть более простой способ сделать это, о котором я просто не знаю, может быть, кто-то может просветить меня.

РЕДАКТИРОВАТЬ:

Другими словами, хост VM размещает эти точки подключения, но не может их использовать.

И все, что может найти путь к этим интерфейсам, должно пройти через маршрутизатор 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      |   ||
    ||      |-------------------------------------------|   ||
    ||          ^       ^       ^       ^       ^           ||
    ||          |       |       |       |       |           ||
    ||          |       |       |       |       |           ||
    ||          |       |       |       |       |           ||
    ||          ,       ,       ,       ,       ,           ||
    ||        .*^*,   .*^*,   .*^*,   .*^*,   .*^*,         ||
    ||       (     ) (     ) (     ) (     ) (     )        ||
    ||       ((    ) ((    ) ((    ) ((    ) ((    )        ||
    ||        (  .)   (  .)   (  .)   (  .)   (  .)         ||
    ||         `~      `~      `~      `~      `~           ||
    ||                                                      ||
    ||                                                      ||
    ||======================================================||

2 ответа

Я не уверен, что вы действительно можете определить шлюз для входящего трафика.

Я могу ошибаться, но разве вы не делаете статический NAT? Попробуйте цель SNAT (она находится в таблице mangle).

Другие вопросы по тегам