Создание Gre-туннеля в openwrt.
Чтобы создать gre-туннель, можно использовать стандартные утилиты linux. Для примера, есть два устройства. Устройство А с локальным ip-адресом 192.168.1.100 и устройство Б с локальным ip-адресом 192.168.1.101.
На устройстве А выполняем последовательность команд для создания gre-туннеля в openwrt:
ip tunnel add hosta mode gre remote 192.168.1.101 local 192.168.1.100 ttl 255 ip link set hosta up ip addr add 10.0.1.1/24 dev hosta
На устройстве Б выполняем последовательность команд для создания gre-туннеля:
ip tunnel add hostb mode gre remote 192.168.1.100 local 192.168.1.101 ttl 255 ip link set hostb up ip addr add 10.0.1.2/24 dev hostb
Смотрим вывод ifconfig:
# ifconfig hostb hostb Link encap:UNSPEC HWaddr C0-A8-01-65-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.0.1.2 P-t-P:10.0.1.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MTU:1476 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Gre-интерфейс создан. Проверяем работоспособность gre-туннеля в openwrt:
# ping 10.0.1.1 PING 10.0.1.1 (10.0.1.1) 56(84) bytes of data. 64 bytes from 10.0.1.1: icmp_req=1 ttl=64 time=0.246 ms 64 bytes from 10.0.1.1: icmp_req=2 ttl=64 time=0.229 ms 64 bytes from 10.0.1.1: icmp_req=3 ttl=64 time=0.208 ms
Создание ipip-туннеля в openwrt.
На устройстве А выполняем последовательность команд для создания ipip туннеля в openwrt:
ip tunnel add ipipA mode ipip remote 192.168.1.101 local 192.168.1.100 ip link set ipipA up ip addr add 10.0.1.1/24 dev ipipA
На устройстве Б выполняем последовательность команд для создания ipip туннеля:
ip tunnel add ipipB mode ipip remote 192.168.1.100 local 192.168.1.101 ip link set ipipB up ip addr add 10.0.1.2/24 dev ipipB
Смотрим вывод ifconfig:
# ifconfig ipipB ipipB Link encap:UNSPEC HWaddr C0-A8-01-65-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.0.1.2 P-t-P:10.0.1.2 Mask:255.255.255.0 UP POINTOPOINT RUNNING NOARP MTU:1480 Metric:1 RX packets:3 errors:0 dropped:0 overruns:0 frame:0 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:252 (252.0 B) TX bytes:192 (192.0 B)
Ipip-интерфейс создан. Проверяем работоспособность ipip-туннеля в openwrt:
# ping 10.0.1.1 PING 10.0.1.1 (10.0.1.1) 56(84) bytes of data. 64 bytes from 10.0.1.1: icmp_req=1 ttl=64 time=0.288 ms 64 bytes from 10.0.1.1: icmp_req=2 ttl=64 time=0.230 ms 64 bytes from 10.0.1.1: icmp_req=3 ttl=64 time=0.228 ms
В openwrt можно создать gre-туннель стандартным методом через редактирование
файла /etc/config/network
Для этого нужно установить пакеты: gre, kmod-gre
Далее на устройстве А в файл добавляем секцию с настройкой gre-туннеля:
config interface hosta option proto gre option zone tunnels option peeraddr 192.168.1.101 option tunlink 'eth0' config interface hosta_addr option proto static option ifname @hosta option ipaddr 10.0.1.1 option netmask 255.255.255.0
На устройстве Б в файл добавляем аналогичную секцию с настройкой gre-туннеля:
config interface hostb option proto gre option zone tunnels option peeraddr 192.168.1.100 option tunlink 'eth0' config interface hostb_addr option proto static option ifname @hostb option ipaddr 10.0.1.2 option netmask 255.255.255.0
Перезагружаемся и смотрим вывод команды ifconfig:
# ifconfig gre-hostb gre-hostb Link encap:UNSPEC HWaddr C0-A8-01-65-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.0.1.2 P-t-P:10.0.1.2 Mask:255.255.255.0 UP POINTOPOINT RUNNING NOARP MTU:1280 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Gre-интерфейс успешно создался.
Проверим работоспособность gre-туннеля в openwrt:
# ping 10.0.1.1 PING 10.0.1.1 (10.0.1.1) 56(84) bytes of data. 64 bytes from 10.0.1.1: icmp_req=1 ttl=64 time=0.243 ms 64 bytes from 10.0.1.1: icmp_req=2 ttl=64 time=0.214 ms 64 bytes from 10.0.1.1: icmp_req=3 ttl=64 time=0.197 ms