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

Собственный IPv6: маршрутизация между eth0 и eth1

Я смиренно прошу вашей помощи с проблемой, которую я не могу решить самостоятельно.

У меня есть собственная ссылка IPv6 с назначенным 2001: db8: 14 :: / 48. Я запускаю Slackware на ядре 3.2.50-grsec. Сторона моего интернет-провайдера (мой gw по умолчанию для :: / 0) - 2001: db8: 14 :: 1. Я назначил 2001: db8: 14 :: 2 своему интерфейсу WAN (eth0), и он работает - я могу пинговать и получать доступ к различным службам в Интернете через IPv6. Я хотел бы, чтобы эта машина действовала как маршрутизатор для машин в LAN (eth1). Я развернул radvd, и все компьютеры (различные системы Win XP, Win 7 и Linux) успешно получили IPv6-адреса с 2001 года: db8: 14: a :: / 64 subnet. Я назначил 2001: db8: 14: a :: 1 интерфейсу локальной сети eth1. Теперь ... Я могу ping6 между всеми машинами внутри LAN. Я могу ping6 2001: db8: 14: a :: 1 с любого компьютера в локальной сети. Я не могу выполнить ping6 2001: db8: 14 :: 2 (eth0) с любого компьютера в локальной сети («Назначение недостижимо: адрес недоступен»). Я могу пинговать 2001: db8: 14 :: 2 из Интернета. Я не могу пинговать 2001: db8: 14: a :: 1 из Интернета.

Очевидно, что-то не так с пересылкой трафика между интерфейсами. Конечно, я установил для всех псевдофайлов / proc / sys / net / ipv6 / conf / * / forwarding значение «1». Мой маршрут по умолчанию установлен на ":: / 0 через 2001: db8: 14 :: 1 на dev eth0". У меня нет брандмауэра, и на всякий случай политика ip6tables по умолчанию для ПЕРЕДАЧИ (и всего остального) - ПРИНЯТЬ.

Что-то мне не хватает? Есть идеи, что может быть не так с маршрутизацией?

Я заметил одну конкретную проблему в вашей таблице маршрутизации. Он указывает 2001:db8:14::/48 как непосредственно прикрепленный к eth0. Это должно было быть /64. Но я не понимаю, как это могло объяснить симптомы.

Одна часть информации явно отсутствует. Маршрутизатор ISP должен быть настроен с адресом шлюза для 2001:db8:14::/48. Если этот адрес шлюза 2001:db8:14::2, маршрутизация должна работать правильно. Если это что-то еще, то пакеты извне не могут достичь ничего в вашей локальной сети, будет доступен только WAN-адрес маршрутизатора. Это объяснило бы, почему 2001:db8:14:a::1 недоступен снаружи. Но 2001:db8:14::2 все еще должен был быть доступен изнутри, что вызывает недоумение.

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

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