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

Проблема с маршрутизацией с iproute2, двумя шлюзами и двумя сетевыми интерфейсами

Я пытаюсь настроить брандмауэр iptables уровня 3 с двумя интерфейсами.

Мой брандмауэр имеет два физических интерфейса: eno0, подключенный к шлюзу моего провайдера, и eno1, подключенный к шлюзу моей локальной сети.

Настройка сети описана ниже:

ISP gateway: aaa.aaa.127.17
            |
            |
            | subnet: aaa.aaa.127.16/30
            |
            |
            | eno0: aaa.aaa.127.18
-----------------------------
|                           |
|       my firewall         |
|                           |
-----------------------------
            | eno1: 172.20.4.1
            |
            |
            | subnet: 172.20.4.0/30
            |
            |
            | 172.20.4.2
-----------------------------
|                           |
|     my local gateway      |
|                           |
-----------------------------
             | bbb.bbb.137.1
             |
             |
             | subnet: bbb.bbb.137.0/24
             |
             | 
 Laptop: bbb.bbb.137.20

(aaa.aaa.127.16 / 30 и bbb.bbb.137.1 / 24 - общедоступные диапазоны IP-адресов)

Я пытаюсь (безуспешно) получить доступ в Интернет со своего ноутбука. В настоящее время у меня нет правил фильтрации в iptables. Итак, проблема заключается в настройке маршрутизации.

Я добавил 1 rt2 в конце /etc/iproute2/rt_tables, и вот соответствующая часть моего / etc / network / interfaces:

auto eno0
iface eno0 inet static
    address aaa.aaa.127.18
    netmask 255.255.255.252
    gateway aaa.aaa.127.17

auto eno1
iface eno1 inet static
    address 172.20.4.1
    netmask 255.255.255.252
    post-up ip route add 172.20.4.0/30 dev eno1 src 172.20.4.1 table rt2
    post-up ip route add bbb.bbb.137.0/24 dev eno1 src 172.20.4.1 table rt2
    post-up ip route add default via 172.20.4.2 dev eno1 table rt2
    post-up ip rule add from 172.20.4.1/32 table rt2
    post-up ip rule add to 172.20.4.1/32 table rt2

На моем локальном шлюзе у меня есть статический маршрут, который перенаправляет весь трафик на 172.20.4.1 (если IP-адрес назначения отсутствует в таблице ARP).

Через брандмауэр я могу пинговать:

Однако проблема в том, что я не могу пропинговать свой ноутбук (bbb.bbb.137.20) через брандмауэр.

С ноутбука я могу пинговать свой локальный шлюз, но не брандмауэр. Со своего локального шлюза я могу пинговать свой брандмауэр, но не Google.

Похоже, мой брандмауэр не знает, как направлять трафик на bbb.bbb.137.0 / 24. Что мне не хватает?

Любая помощь приветствуется.

В конце концов я понял это. Я изменил часть /etc/network/interfaces и это сработало:

auto eno0
iface eno0 inet static
    address aaa.aaa.127.18
    netmask 255.255.255.252
    gateway aaa.aaa.127.17

auto eno1
iface eno1 inet static
    address 172.20.4.1
    netmask 255.255.255.252
    post-up ip route add bbb.bbb.137.0/24 via 172.20.4.2
    post-up ip route add 10.0.0.0/8 via 172.20.4.2
    post-up ip route add 192.168.0.0/16 via 172.20.4.2
    post-up ip route add 172.16.0.0/12 via 172.20.4.2

Также нет необходимости менять /etc/iproute2/rt_tables.