GRE-туннель между CISCO и Linux Ubuntu
Я уже несколько раз поднимал тему быстрых не зашифрованных туннелей между оборудованием Cisco. О преимуществах и недостатках данного вида связи я писать не буду, так как о причинах его создания я писал в теме с примерами туннелей на Cisco. На текущий момент встал вопрос о создании простого не зашифрованного туннеля между роутером Cisco и сервером на Linux Ubuntu Server. Сначала хотел поискать примеры в сети, но в примерах создавались сложные туннели с шифрованием на IKEv2 или L2TP+IPSec. Мне ничего подобного не нужно, так как передаваемые данные и так публичные. Собственно по этому я только покажу как поднять туннель между двумя точками. Если вас интересует роутинг между локальными сетями предприятия, то я могу в дальнейшем накидать примеры. Но для корпаративного объединения сетей необходмио смотреть в сторону шифрованных туннелей.
Автор: Chris McKenna (Thryduulf)
Легенда подключения Cisco:
- Белый IP-адрес: 172.16.0.100
- Адрес туннельного интерфейса: 192.168.255.6
- Маска подсети: 255.255.255.252
Легенда подключения Linux:
- Белый IP-адрес: 172.16.0.200
- Адрес туннельного интерфейса: 192.168.255.5
- Маска подсети: 255.255.255.252
Для начала создаим туннель со стороны Cisco. Это обычный GRE-туннель без шифрования.
gw-krsk>enable gw-krsk#configure terminal gw-krsk(config)#interface Tunnel2 gw-krsk(config-if)#ip address 192.168.255.6 255.255.255.252 gw-krsk(config-if)#tunnel source 172.16.0.100 gw-krsk(config-if)#tunnel destination 172.16.0.200 gw-krsk(config)#end gw-krsk#write
Далее создадим ответный туннель со стороны Linux Ubuntu.
root@ext-vpn:~# ip link add tun1 type gre local 172.16.0.200 remote 172.16.0.100 root@ext-vpn:~# ip link set tun1 up root@ext-vpn:~# iptables -I INPUT -p gre -s 172.16.0.100 -j ACCEPT root@ext-vpn:~# ip addr add 192.168.255.5/30 dev tun1
Не забываем о том, что созданные таким образом туннели в Линуксе исчезают после перезагрузки системы. Это я так, на всякий случай, чтобы не оказалось для вас неожиданностью. Чтобы сохранить эту настройку можно по старинке разместить эти комманды в файле: /etc/rc.local.
Если с Cisco всё предельно ясно, то в Убунте надо дать команду на пропуск GRE данных от нужного нам узла. Без этой комманды трафик будет просто уничтожаться на подходе к серверу. На большинстве VPS стоят правила всем-всё и по этому нет необходимости в этой комманде.
Если всё сделано правильно, то туннель поднимется и будет функционировать. Чтобы проверить работу туннеля надо пингануть адрес с противоположной стороны. Проверяем со стороны Linux Ubuntu.
И проверяем со стороны Cisco.
Таким образом мы убедились в том, что туннель доступен в обе стороны и функционирует.
Желаю вам успешного поднятия туннелей. И не забывайте, что данный туннель не имеет защиты от подмены и не зашифрован. Его следует применять для передачи публичных данных.
Отредактировано:2020-09-07 06:56:16