Linux GRE - IP-туннель против IP-ссылки
Может кто-нибудь объяснить, пожалуйста, разницу между linux ip tunnel и командой ip link, когда дело доходит до настройки туннелей (таких как GRE, IPIP или VXLAN)?
Я вижу, что я могу настроить туннель GRE, например, двумя способами:
- ip link добавить имя gre1 тип gre...
- ip tunnel добавить режим gre1 gre...
Есть ли разница между ними, когда дело касается созданных ресурсов Linux, производительности и т. Д.? Является ли один из способов старомодных?
Приветствия.
2 ответа
Обе команды iproute2 взаимодействуют с одним и тем же ядром, они не реализуют ничего, кроме только этого взаимодействия, что фактически означает, что вы не должны ожидать никакой разницы с точки зрения производительности.
Как видно из соответствующего коммита ip link
использует более свежий интерфейс ядра - rtnl_link
, в сравнении с ip tunnel
: "…
Доступ к нему осуществляется через команду "ip link". Предыдущий интерфейс настройки туннеля "ip tunnel" остается без изменений и должен быть сохранен для совместимости со старыми ядрами....
..."
(Извините за ввод ответа вместо того, что должно быть комментарием, комментарий будет слишком длинным, чтобы соответствовать...)
У меня был точно такой же вопрос, как и вы недавно, поэтому я прочитал исходный код iproute2
, Как говорит Пойдж, ip link
использует другой интерфейс, чем ip tunnel
, ip tunnel
использует ioctl SIOCGETTUNNEL
, SIOCADDTUNNEL
и т.д., пока ip link
использует rtnl_link
интерфейс.
Это немного меняет режим интерфейса:
$ sudo ip tunnel add ipiptun mode ipip local 10.3.3.3 remote 10.4.4.4 ttl 64 dev eno1
$ sudo ip link add ipiptun2 type ipip local 10.6.6.6 remote 10.7.7.7 ttl 64 dev eno1 #curiously the mode is any/ip here
ipiptun: ip/ip remote 10.4.4.4 local 10.3.3.3 dev eno1 ttl 64
ipiptun2: any/ip remote 10.7.7.7 local 10.6.6.6 dev eno1 ttl 64
Обратите внимание, что теперь существует еще более новый способ создания туннелей, который заключается в использовании облегченных туннелей маршрутов. Cf мой вопрос здесь, пытаясь понять их: Linux облегченные туннели