Назад | Перейти на главную страницу

iptables для изоляции хоста виртуальной машины от vbridge

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

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

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

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

Хосту виртуальной машины не требуется ни одно из этих подключений, кроме возможности предоставить маршрутизатору доступ виртуальной машины к физическим портам - маршрутизатор виртуальной машины предоставляет шлюз и 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)

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


Когда я спросил в IRC-комнате #netfilter, кто-то упомянул, что «ROUTE» обесценился, и вместо этого использовал -mangle. Никогда бы не подумал, что для чего-то вроде этого понадобится покалечка.

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

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

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

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

Он и все остальное, что может попасть на эти интерфейсы, должно пройти через маршрутизатор виртуальной машины, чтобы достичь узла виртуальной машины.

Вот рисунок до и после того, что я имею в виду:

|-------|               |-------|
| 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      |   ||
    ||      |-------------------------------------------|   ||
    ||          ^       ^       ^       ^       ^           ||
    ||          |       |       |       |       |           ||
    ||          |       |       |       |       |           ||
    ||          |       |       |       |       |           ||
    ||          ,       ,       ,       ,       ,           ||
    ||        .*^*,   .*^*,   .*^*,   .*^*,   .*^*,         ||
    ||       (     ) (     ) (     ) (     ) (     )        ||
    ||       ((    ) ((    ) ((    ) ((    ) ((    )        ||
    ||        (  .)   (  .)   (  .)   (  .)   (  .)         ||
    ||         `~      `~      `~      `~      `~           ||
    ||                                                      ||
    ||                                                      ||
    ||======================================================||

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

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