Это моя домашняя сеть, на которой я учусь.

Пожалуйста, смотрите подробную информацию о VLAN и правилах брандмауэров соответствующих зон в нижней части поста, так как его длина

Я успешно назначил 2 NIC (Management/DMZ) для каждого из 6 серверов Windows и использую свой ноутбук Windows в локальной сети для доступа к управлению RDP/Web-доступом для коммутатора / маршрутизатора и т.д. Я могу пропинговать каждый сервер из Windows Локальный компьютер на свои DMZ и IP управления и получить возврат.

Поэтому я добавил сервер Ubuntu 16 LTS несколько дней назад с той же конфигурацией, но не могу пропинговать оба IP-адреса с ноутбука Windows.

Вот мой файл /etc /network /interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.67.100
        netmask 255.255.255.0
#       network 192.168.67.0
#       broadcast 192.168.67.255
        gateway 192.168.67.253
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 192.168.67.253
        dns-search on.fake.network

# Management network interface
auto eth1
iface eth1 inet static
        address 192.168.7.100
        netmask 255.255.255.0
#       network 192.168.7.0
        broadcast 192.168.7.255

#persistent static routes
up route add -net 192.168.1.0/24 gw 192.168.7.253 dev eth1

Моя таблица маршрутов IP

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.67.253  0.0.0.0         UG    0      0        0 eth0
192.168.1.0     192.168.7.253   255.255.255.0   UG    0      0        0 eth1
192.168.7.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.67.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0

Так что с этим конфигом я могу пинговать 192.168.7.100, но не 192.168.67.100. Я убираю постоянный статический маршрут и его противоположность:/

Как я могу победить, это довольно легко в Windows, но мой тупик в Ubuntu

* ДОПОЛНИТЕЛЬНЫЕ ДЕТАЛИ *

Ubiqiti ERL3 роутер создает VLANS

VLAN 7 - Management (192.168.7.0) - Router interface (GW) IP is 192.168.7.253
VLAN 13 - LAN (192.168.1.0) - Router interface (GW) IP is 192.168.1.253
VLAN 67 - DMZ (192.168.67.0) - Router interface (GW) IP is 192.168.67.253

Windows ноутбук на LAN-соединение

VLAN 13 - LAN (192.168.1.15)

Сервер Ubuntu (через хост Hyper-V) имеет 2 сетевых адаптера

eth0 - VLAN 67 - DMZ (192.168.67.100)
eth1 - VLAN 7 - Management (192.168.7.100)

Пинг инициируется из локальной сети 192.168.1.15 для обоих DMZ/MGMT 192.168.67.100/192.168.7.100

Вот мои сжатые правила брандмауэра, относящиеся к этому сценарию, удаленные дополнения, такие как доступ по SSH/HTTP и т.д. И т.д.

Отметив, что «address-group mgmtfromlan» содержит несколько IP-адресов из локальной сети, включая 192.168.1.15 (ноутбук в локальной сети VLAN)

name lan-dmz {
    default-action drop
    enable-default-log
    rule 1 {
        action accept
        state {
            established enable
            related enable
        }
    }
    rule 2 {
        action drop
        log enable
        state {
            invalid enable
        }
    }
    rule 100 {
        action accept
        description "Allow ICMP"
        log enable
        protocol icmp
    }
}
name lan-mgmt {
    default-action drop
    enable-default-log
    rule 1 {
        action accept
        state {
            established enable
            related enable
        }
    }
    rule 2 {
        action drop
        log enable
        state {
            invalid enable
        }
    }
    rule 100 {
        action accept
        description "Allow ICMP"
        log enable
        protocol icmp
        source {
            group {
                address-group mgmtfromlan
            }
        }
    }
}
name dmz-lan {
    default-action drop
    enable-default-log
    rule 1 {
        action accept
        state {
            established enable
            related enable
        }
    }
    rule 2 {
        action drop
        log enable
        state {
            invalid enable
        }
    }
}
name mgmt-lan {
    default-action drop
    enable-default-log
    rule 1 {
        action accept
        state {
            established enable
            related enable
        }
    }
    rule 2 {
        action drop
        log enable
        state {
            invalid enable
        }
    }
    rule 100 {
        action accept
        description "Allow ICMP"
        log enable
        protocol icmp
    }
}

* ТАБЛИЦА МАРШРУТИЗАЦИИ НА WINDOWS LAPTOP 192.168.1.15 *

===========================================================================
Interface List
 15...b8 ca 3a d4 bb bc ......Intel(R) 82579LM Gigabit Network Connection #2
  5...3c a9 f4 03 73 ed ......Microsoft Wi-Fi Direct Virtual Adapter #2
 19...00 ff d4 0e 47 e9 ......TAP-Windows Adapter V9
  7...3c a9 f4 03 73 ec ......Intel(R) Centrino(R) Ultimate-N 6300 AGN #2
  1...........................Software Loopback Interface 1
 12...00 00 00 00 00 00 00 e0 Microsoft Teredo Tunneling Adapter
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0    192.168.1.253     192.168.1.15    291
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
      192.168.1.0    255.255.255.0         On-link      192.168.1.15    291
     192.168.1.15  255.255.255.255         On-link      192.168.1.15    291
    192.168.1.255  255.255.255.255         On-link      192.168.1.15    291
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link      192.168.1.15    291
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link      192.168.1.15    291
===========================================================================
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
          0.0.0.0          0.0.0.0    192.168.1.253  Default
          0.0.0.0          0.0.0.0    192.168.1.253  Default
===========================================================================

IPv6 Route Table
===========================================================================
Active Routes:
 If Metric Network Destination      Gateway
  1    331 ::1/128                  On-link
  1    331 ff00::/8                 On-link
===========================================================================
Persistent Routes:
  None

заранее спасибо

2 ответа2

0

При заданном по умолчанию маршруте виртуальная машина Ubuntu получает пакет по eth1 (из 192.168.1.15: ping 192.168.7.100). Это будет либо:

  • отбросить пакет из-за фильтрации обратного пути: пакет получен на интерфейсе, где нет маршрута к источнику этого пакета.
  • ответ через eth0, потому что 192.168.1.15 соответствует маршруту по умолчанию через 192.168.1.253 на eth0

Поведение зависит от значений /proc/sys/net/ipv4/conf/{all,eth1}/rp_filter , но по умолчанию используется drop: all/rp_filter = 1 и eth1/rp_filter = 1

В случае, если он не отброшен: маршрутизатор ERL3 видит ответный пакет от 192.168.1.7.100, который должен быть в lan-mgmt, но проходит от lan-dmz. В зависимости от настроек, возможно описанных в конфигурации вашего роутера, которую вы написали, но этого я не знаю:

  • будет сбрасывать его, более или менее по той же причине, по которой ubuntu удаляет его, когда включен rp_filter: маршрут для него находится в другом месте
  • все равно приму это.

Давайте рассмотрим, что ERL3 принимает это. Тогда "исправить" просто: понизить безопасность в Ubuntu, отключив фильтрацию обратного пути:

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter

ссылка: https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt (rp_filter)

(как это работает, eth0 остается защищенным, но это не имеет значения здесь)

Попробуйте сначала, если это работает, проблема решена. Попробуйте заменить оба echo 0 на echo 2 только для eth1 (свободный режим). Но учтите, что это все еще проблема: асимметричная маршрутизация может создать другие проблемы, особенно с брандмауэром.

Если маршрутизатор ERL3 тоже фильтрует (то есть: выше не работал): ubuntu должен знать о существовании 192.168.1.0/24 для обоих интерфейсов и использовать настройки table и rule для правильной маршрутизации. Немного сложно объяснить все почему, в дополнение к тому, как, вот ссылка, это не совсем для этого случая, но может основываться главным образом (что я сделал здесь):

ссылка: http://lartc.org/howto/lartc.rpdb.multiple-links.html

Я выбрал произвольные таблицы 7 и 67, чтобы соответствовать 192.168.7.0/24 и 192.168.67.0/24. Начните с пустых маршрутов (кроме автоматически создаваемых локальных локальных маршрутов) и:

ip route add 192.168.67.0/24 dev eth0 src 192.168.67.100 table 67
ip route add default via 192.168.67.253 table 67
ip route add 192.168.7.0/24 dev eth1 src 192.168.7.100 table 7
ip route add 192.168.1.0/24 via 192.168.7.253 table 7 #enable only LAN to have a route to access MGMT. Feel free to replace 192.168.1.0/24 with default, you have a firewall too.

Я не знаю, действительно ли это требуется, но это в документации, так что ...:

ip route add 192.168.7.0/24 dev eth1 src 192.168.7.100
ip route add 192.168.67.0/24 dev eth0 src 192.168.67.100

Ваш маршрут по умолчанию остается тем же, и здесь в синтаксисе ip route :

ip route add default via 192.168.67.253

И действительно важная часть, которая говорит, чтобы использовать правильный интерфейс:

ip rule add from 192.168.67.100 table 67
ip rule add from 192.168.7.100 table 7

Последнее замечание: убедитесь, что Ubuntu не маршрутизирует, иначе скомпрометированный хост DMZ может попытаться управлять другим с помощью Ubuntu:

echo 0 > /proc/sys/net/ipv4/conf/default/forwarding
echo 0 > /proc/sys/net/ipv4/conf/all/forwarding
0

Ваш статический маршрут переопределяет шлюз по умолчанию.

Когда маршрут существует, весь трафик до 192.168.1.x проходит через eth1 с использованием 192.168.7.253 в качестве шлюза.

Когда маршрут не существует, весь трафик до 192.168.1.x проходит через eth0 с использованием 192.168.67.253 в качестве шлюза.

Путь от вашего компьютера до сервера в порядке, но обратный путь принимает другой маршрут в зависимости от того, какой интерфейс вы пинговали. Это называется асимметричной маршрутизацией и обычно не допускается устройствами безопасности. Вероятно, он заблокирован на вашем брандмауэре. По сути, обратный трафик, проходящий по другому маршруту, является "не связанным" и нераспознанным трафиком, поэтому он отбрасывается.

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

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

Посмотрите, помогут ли эти сообщения: https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System

https://askubuntu.com/questions/310355/networking-with-multiple-nics

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .