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

Сообщения ICMP Host Unreachable приводят к появлению исходных пакетов марсианского происхождения

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

У нас есть межсетевой экран / маршрутизатор с двумя внешними интерфейсами и несколькими внутренними VLAN.

Особое поведение наблюдается, когда клиент (MAC f4:f5:d8:d2:f2:4c, IP 10.99.154.254 в этом примере) в нашей гостевой сети Wi-Fi VLAN 99 отправляет эхо-запрос ping на некоторый интернет-хост 8.8.8.8, который мы запрещаем.

Маршрутизатор отправляет обратно пакет ICMP о недоступности узла со своего vlan99 интерфейс (MAC 00:08:a2:0d:00:70, IP 10.99.0.2) клиенту, и в то же время мы видим марсианский пакет на внешнем интерфейсе eth-ext1:

tcpdump показывает это:

$ tcpdump -i vlan99 -vvvvn 'icmp and host 10.99.154.254'
11:59:21.555564 f4:f5:d8:d2:f2:4c > 00:08:a2:0d:00:70, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
    10.99.154.254 > 8.8.8.8: ICMP echo request, id 2303, seq 1, length 64
11:59:21.555651 00:08:a2:0d:00:70 > f4:f5:d8:d2:f2:4c, ethertype IPv4 (0x0800), length 126: (tos 0xc0, ttl 64, id 8585, offset 0, flags [none], proto ICMP (1), length 112)
    10.99.0.2 > 10.99.154.254: ICMP host 8.8.8.8 unreachable, length 92
    (tos 0x0, ttl 63, id 0, offset 0, flags [DF], proto ICMP (1), length 84)
    10.99.154.254 > 8.8.8.8: ICMP echo request, id 2303, seq 1, length 64

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

При этом в журнале ядра появляется запись:

Feb 21 11:59:21 ganymede kernel: IPv4: martian source 10.99.154.254 from 8.8.8.8, on dev eth-ext1
Feb 21 11:59:21 ganymede kernel: ll header: 00000000: 00 08 a2 0d 00 70 f4 f5 d8 d2 f2 4c 08 00        .....p.....L..

Информация канального уровня показывает, что этот Ethernet-фрейм пришел из клиентское устройство к маршрутизатор vlan99 интерфейс, что заставляет меня задаться вопросом, почему он выглядит как марсианский пакет на eth-ext1 с исходным адресом 8.8.8.8.

Мне пока не удалось получить трассировку пакета с марсианским источником, что заставляет меня задуматься, происходит ли ведение журнала марсианского источника на выходном интерфейсе до того, как tcpdump есть шанс это увидеть?

Я с удовольствием предоставлю дополнительную информацию по запросу (таблицы маршрутизации и т.п.) и буду признателен за любые указатели на то, что здесь происходит.

Ядро исправляет запрос ping до версии 8.8.8.8 сообщением icmp о недоступности и услужливо сообщает вам, что источник - марсианин.

Это пакет, который он помечает ...

11:59:21.555651 00:08:a2:0d:00:70 > f4:f5:d8:d2:f2:4c, ethertype IPv4 (0x0800), length 126: (tos 0xc0, ttl 64, id 8585, offset 0, flags [none], proto ICMP (1), length 112)
    10.99.0.2 > 10.99.154.254: ICMP host 8.8.8.8 unreachable, length 92

Как видно на канальном уровне ... MAC 00 08 a2 0d 00 70 to f4 f5 d8 d2 f2 4c 08 00.

Feb 21 11:59:21 ganymede kernel: ll header: 00000000: 00 08 a2 0d 00 70 f4 f5 d8 d2 f2 4c 08 00 

Марсианский источник - я полагаю, это объединяет тот факт, что он отвечает как прокси-сервер на 8.8.8.8 - отсюда не добраться.