Calico Kubernetes the hard way v2 How tunl0 works

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску


Как работает IP-in-IP туннель в Calico

Это один из вариантов конфигурации Calico.
Эта статья появилась так-как настройка туннеля не очень-то очевидна.

Схема сети

  • Показаны только 2 ноды, для простоты.
  • 192.168.122.0/24 - физическая сеть



+----------------------------------------+                      +----------------------------------------+ 
| Host: worker1                          |                      | Host:  worker2                         |
|    +---------------------+             |                      |    +---------------------+             |
|    | POD1                |             |                      |    | POD2                |             |
|    |                     |             |                      |    |                     |             |
|    |  10.244.235.132/32  |             |                      |    |  10.244.189.171/32  |             |
|    +---eth0--------------+             |                      |    +---eth0--------------+             |
|         |                              |                      |         |                              |
|         |                              |                      |         |                              | 
|    caliXXXX                            |                      |    caliYYYY                            |
|     На этом интерфейсе НЕТ ip адреса   |                      |     На этом интерфейсе НЕТ ip адреса   |
|                                        |                      |                                        |
|  [ tunl0 ] 10.244.235.136/32           |                      |  [ tunl0 ] 10.244.189.71/32            |
|                                        |                      |                                        |
+--[ eth0  ]-----------------------------+                      +--[ eth0  ]-----------------------------+
    192.168.122.2/24                                                 192.168.122.3/24
      |                                                               |
      +---------------------------------------------------------------+


Настройки интерфейса tunl0

Если не особо вдумываться, то в настройке интерфейса (одинаковом на всех нодах, с одинаковыми настройками) нет ничего необычного

ip -d link show dev tunl0
2: tunl0@NONE: <NOARP,UP,LOWER_UP> mtu 1480 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0 promiscuity 0
    ipip remote any local any ttl inherit nopmtudisc addrgenmode eui64 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535

Однако, если смотреть внимательно то вызывает вопрос вот эта часть конфигурации

link/ipip 0.0.0.0 brd 0.0.0.0 promiscuity 0
ipip remote any local any 
<PRE>

Поясню: обычно <code>ipip</code> туннели представляют собой соединения точка-точка, при этом в настройках туннеля указываются адреса концов туннеля.<br>

Например классический туннель создается командой
<PRE>
ip tunnel add mytun mode ipip remote 251.4.92.217 local 240.101.83.2

IP адреса тут взяты "из головы" и приведены только для примера.

3: mytun@NONE: <POINTOPOINT,NOARP> mtu 1480 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ipip 240.101.83.2 peer 251.4.92.217 promiscuity 0
    ipip remote 251.4.92.217 local 240.101.83.2 ttl inherit pmtudisc numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535

Ссылки