Не поднимается GRE туннель

Здравствуйте!
решил поднять простенький GRE туннель между двумя виртуальными машинками, чтобы посмотреть как и с чем его едят. Нашёл статейку на хабре со шпаргалкой:
HOST1: ip link add grelan type gretap  local <IP1> remote <IP2>
HOST1: ip link set grelan up
HOST1: iptables -I INPUT -p gre -s <IP2> -j ACCEPT
HOST2: ip link add grelan type gretap local <IP2> remote <IP1>
HOST2: ip link set grelan up
HOST2: iptables -I INPUT -p gre -s <IP1> -j ACCEPT
и по шпаргалке (кроме iptables) наваял на двух виртуальных машинках:

R1: systemctl stop iptables #чтобы не мешал для чистоты эксперимента
R1: ip link add grelan type gretap  local 192.168.2.201 remote 192.168.2.202
R1: ip link set grelan up
#R1: iptables -I INPUT -p gre -s 192.168.2.202 -j ACCEPT
R2: systemctl stop iptables
R2: ip link add grelan type gretap local 192.168.2.202 remote 192.168.2.201
R2: ip link set grelan up
#R2: iptables -I INPUT -p gre -s 192.168.2.201 -j ACCEPT
потом добавил:
R1: ip addr add 192.168.10.1 dev grelan
R2: ip addr add 192.168.10.2 dev grelan
проверяем:
R1: ping 192.168.10.2 и тишина-а-а

смотрю что получилось:

[uzer@R1 ~]$ [b]ip addr[/b]
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:36:5c:07 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.201/24 brd 192.168.2.255 scope global ens3
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe36:5c07/64 scope link
       valid_lft forever preferred_lft forever
3: ens4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:fe:8d:e9 brd ff:ff:ff:ff:ff:ff
    inet 10.0.1.1/24 brd 10.0.1.255 scope global ens4
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fefe:8de9/64 scope link
       valid_lft forever preferred_lft forever
4: gre0@NONE: <NOARP> mtu 1476 qdisc noop state DOWN group default qlen 1000
    link/gre 0.0.0.0 brd 0.0.0.0
5: gretap0@NONE: <BROADCAST,MULTICAST> mtu 1462 qdisc noop state DOWN group default qlen 1000
    link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
6: grelan@NONE: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1462 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether 16:82:94:78:90:c0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.1/32 scope global grelan
       valid_lft forever preferred_lft forever
    inet6 fe80::1482:94ff:fe78:90c0/64 scope link
       valid_lft forever preferred_lft forever
[uzer@R1 ~]$ [b]ip route[/b]
default via 192.168.2.1 dev ens3
10.0.1.0/24 dev ens4 proto kernel scope link src 10.0.1.1
192.168.2.0/24 dev ens3 proto kernel scope link src 192.168.2.201
[uzer@R1 ~]$
на втором хосте R2 аналогичная картина.

Вот сижу думу думаю, где напортачил. Вроде простая задачка, но такая заковыристая получилась. Может у кого есть дельные мысли, почему туннель не работает по этой шпаргалке, что тут не так?
Навскидку сразу видно, в чём может быть проблема, но товарищ на хабре написал, что всё делается просто, только просто не выходит. Очевидно, что строк из шпаргалки недостаточно для запуска туннеля.
Попробуйте почитать Larts.

# lsmod | grep -i gre

# zcat /proc/config.gz > kernel_config.txt
Давайте по порядку, какая у вас на реальной машине ОС, какая виртуальная машина, без GRE связь между машинами по ip есть ?

удалил кусок текста. потому что запутался и выдал не верный совет :)

вообщем кроме

R1: ip addr add 192.168.10.1 dev grelan
R2: ip addr add 192.168.10.2 dev grelan

нужно еще добавить и запись в таблицу маршрутизации, потому что машина ничего не знает про 192.168.10.1 (у которой 192.168.10.2)
хотя для openvpn так делать не нужно, но может там при создании tun-интерфейса запись автоматически прописывается - проблем не было, не вникал :)

Итого:
1. Делаем с каждой машины пинг реального, не gre IP
2. если связь есть, на каждой машине делаем пинг grep IP и смотрим сниффером интерфейсы grelan ens3 и lo (на всякий случай) поочередно.
corner, killer1804 Спасибо!
виртуалки и хост на любимом арче.
тут дело действительно в маршрутизации и... в поведении системы на команду
ip addr add 192.168.10.1 dev grelan
Если не указать маску сети в команде, то маршрут в таблице маршрутизации автоматом не прописывается. Возможно это так же работает, вернее не работает, если указать адрес через маску /32 (ххх.ххх.ххх.ххх/32), что по сути означает тоже самое - только адрес хоста. Сейчас далеко от стенда, смогу точнее позже проверить.
Если как у автора в шпаргалке указать маску сети в команде:
ip addr add 192.168.10.1/24 dev grelan
то всё само прописывается и всё работает. Вот такие пироги с камнями, подводными.
 
Зарегистрироваться или войдите чтобы оставить сообщение.