Этот тип тоннелирования доступен в Linux уже давно. Для его работы требуются два модуля ядра: ipip.o и new_tunnel.o.
Допустим у вас есть три сети: внутренние сети A и B, и промежуточная сеть C (например, Internet). Итак, сеть A:
сеть 10.0.1.0 маска 255.255.255.0 маршрутизатор 10.0.1.1Адрес маршрутизатора в сети С -- 172.16.17.18.
сеть B:
сеть 10.0.2.0 маска 255.255.255.0 маршрутизатор 10.0.2.1Адрес маршрутизатора в сети С -- 172.19.20.21.
Мы полагаем, что сеть C передает пакеты от A к B и наоборот. Такой сетью может служить даже Internet.
Теперь, что нам нужно сделать?
Убедитесь, что все необходимые модули загружены:
insmod ipip.o insmod new_tunnel.oТеперь на маршрутизаторе сети A выполните:
ifconfig tunl0 10.0.1.1 pointopoint 172.19.20.21 route add -net 10.0.2.0 netmask 255.255.255.0 dev tunl0А на маршрутизаторе сети B:
ifconfig tunl0 10.0.2.1 pointopoint 172.16.17.18 route add -net 10.0.1.0 netmask 255.255.255.0 dev tunl0Когда вам нужно будет "разрушить" тоннель, выполните:
ifconfig tunl0 downВот и все. Через тоннель IP в IP нельзя передавать широковещательные пакеты или пакеты IPv6. Вы можете только соединить 2 сети IPv4, которые в обычной ситуации не могли бы работать друг с другом. При нынешнем положении вещей, совместимость этого кода доходит до ядер версии 1.3. Насколько я знаю, тоннелирование Linux IP-в-IP не работает с другими операционными системами и маршрутизаторами. Очень простое решение, если оно вам подходит -- используйте его, если вам нужно больше -- используйте GRE.
Назад | В начало документа | Вперед |
GRE и другие тоннели. | К началу раздела | GRE тоннели. |