Растекание мыслью aka Введение.
В то время, когда космические корабли бороздят просторы Вселенной все пытаются попробовать прелести IPv6, мы попробуем научиться блокировать туннелирование IPv6 трафика через наш IPv4-only фаервол(ФВ). Либеральная Прогрессивная общественность может разразиться воплями на тему нашей закостенелости, но прежде чем с соглашаться с этими господами подумаем о том, что если у пользователя есть возможность пробросить туннель через ФВ, то все наши усилия по закручиванию гаек теряют смысл, т.к. фильтровать туннелированый трафик мы не можем. Так что «нет человечка — нет проблемы!»
Типы IPv6 туннелей.
GRE и IPsec.
Просто, для полноты картины, необходимо сказать, что IPv6 трафик можно тунелировать, как и в IPv4 через GRE и IPsec туннели. Инкапсулироваться IPv6 трафик будет в IPv6, что, очевидно, выходит за рамки нашей задачи, и поэтому дальнейшего разбирательства с этими туннелями не будет.
6in4 (a la Hurricane Electric)
Данный вид туннелей в Linux обозначается sit, а в Cisco ipv6ip:
ip tunnel add he0 mode sit remote 216.66.80.26 local 1.1.1.1 ttl 255
interface 1 ipv6 address 2001::1:1/64 tunnel source 1.1.1.1 tunnel destination 216.66.80.26 tunnel mode ipv6ip
Для данных туннелей характерно:
- оба конца туннеля должны иметь публично доступные (реальные,белые) IPv4 адреса
- в IPv4 заголовке пакета версия IP — 4
- в IPv4 заголовке пакета номер протокола (это там, где указывается TCP/UDP) — 41 (IPv6)
Если пользовательские компы пасутся в приватных адресах (RFC1918), либо если ФВ настроен правильно и блокирует всё, не только на вход в локальную сеть, но и на выход, то данный тип туннелирования будет блокирован.
IPv6 поверх IPv4 GRE-туннеля
Данный вид туннелей на в Cisco взводятся следующим образом:
interface 2 ipv6 address 2001::2:1/64 tunnel source 1.1.1.1 tunnel destination 216.66.80.26
отличие от 6in4 в том, что не указывается режим туннеля (tunnel mode). Номер протокола в IPv4 заголовке пакета — 47 (GRE)
6to4-туннель
Данный вид туннелей используется для автоматической трансляции IPv6/IPv4. На в Cisco взводятся следующим образом:
interface 3 ipv6 address 2002:a01:101::/128 tunnel source 10.1.1.1 tunnel mode ipv6ip 6to4
В данном случае указываются только локальные адреса. Адресов назначения не указываем. Ну и режим туннеля, разумеется, «ipv6ip 6to4». IPv6-адрес получается следующим образом:
- Фиксированный префикс 2002 конкатенируется с
- преобразованным IPv4-адресом: 10.1.1.1 → 0a.01.01.01 → 0a01:0101 → a01:101
ISATAP-туннель
Данный вид туннелей используется для автоматической трансляции IPv6/IPv4, аналогично 6to4. На в Cisco взводятся следующим образом:
interface 4 ipv6 address 2001:1002:111::/64 eui-64 tunnel source 10.1.1.2 tunnel mode ipv6ip ISATAP
Отличия от 6to4 следующие:
- Сетевая часть IPv6-адреса может быть любая (в отличие от выделенной 2002 для 6to4)
- Хостовая часть определяется автоматически на основе EUI-64 из IPv4-адреса.