Π Π΅Π»ΠΈΠ· сСтСвого ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π° NetworkManager 1.40.0

ДоступСн ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· интСрфСйса для упрощСния настройки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² сСти — NetworkManager 1.40.0. ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ VPN (Libreswan, OpenConnect, Openswan, SSTP ΠΈ Π΄Ρ€.) Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… собствСнных Ρ†ΠΈΠΊΠ»ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π° NetworkManager 1.40:

  • Π’ интСрфСйсС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки nmcli Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ„Π»Π°Π³ «—offline», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ соСдинСний Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ keyfile Π±Π΅Π· обращСния ΠΊ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌΡƒ процСссу NetworkManager. Π’ частности, ΠΏΡ€ΠΈ создании, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ привязанных ΠΊ сСтСвому интСрфСйсу настроСк, ΠΊΠΎΠΌΠ°Π½Π΄Π° «nmcli connection» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· обращаСтся ΠΊ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌΡƒ процСссу NetworkManager Ρ‡Π΅Ρ€Π΅Π· D-Bus. НапримСр, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «nmcli —offline connection add …» ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° nmcli Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌΡƒ процСссу запрос Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ профиля соСдинСния, Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π² stdout ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ настроСк Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ keyfile, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ nmcli Π² скриптах для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ измСнСния ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ΠΉ соСдинСний. Для Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ созданный ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /etc/NetworkManager/system-connections. # НастраиваСм сохранСниС Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΡ€Π°Π²Π°ΠΌΠΈ «600» (доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρƒ). umask 077 # Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ keyfile. nmcli —offline connection add type ethernet con-name my-profile \ | tee /etc/NetworkManager/system-connections/my-profile.nmconnection # ИзмСняСм ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ nmcli —offline connection modify connection.mptcp-flags enabled,signal \ < /etc/NetworkManager/system-connections/my-profile.nmconnection \ | tee /etc/NetworkManager/system-connections/my-profile.nmconnection~ mv /etc/NetworkManager/system-connections/my-profile.nmconnection~ \ /etc/NetworkManager/system-connections/my-profile.nmconnection # ПослС пСрСзаписи профиля Π½Π° дискС ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ настройки NetworkManager nmcli connection reload
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° MPTCP (Multipath TCP), Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TCP для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ TCP-соСдинСния с доставкой ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ нСскольким ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π½Ρ‹Π΅ сСтСвыС интСрфСйсы, привязанныС ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ IP-адрСсам. NetworkManager Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ IP-адрСсами, анонсируСмыми ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠ°Ρ… MPTCP, Π² Ρ‚ΠΎΠΌ числС Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ адрСса автоматичСски, ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°Π΅Ρ‚ процСсс mptcpd. NetworkManager Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ MPTCP Π² ядрС Ρ‡Π΅Ρ€Π΅Π· выставлСниС sysctl /proc/sys/net/mptcp/enabled ΠΈ настройку ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΈ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ «ip mptcp limits». Для управлСния ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ MPTCP ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ свойство «connection.mptcp-flags», Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ MPTCP ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ назначСния адрСсов (signal, subflow, backup, fullmesh). По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ MPTCP Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² NetworkManager автоматичСски, Ссли Π² ядрС выставлСн sysctl /proc/sys/net/mptcp/enabled.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° запись ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² привязки IP-адрСсов для DHCP (DHCP lease) Π² Ρ„Π°ΠΉΠ» /run/NetworkManager/devices/$IFINDEX (информация сохраняСтся Π² сСкциях [dhcp4] ΠΈ [dhcp6]), Ρ‡Ρ‚ΠΎ позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ привязки Ρ‡Π΅Ρ€Π΅Π· простоС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π±Π΅Π· обращСния ΠΊ D-Bus ΠΈΠ»ΠΈ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «nmcli -f all device show eth0».
  • Π’ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ соСдинСния Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ipv4.link-local для привязки Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΊΠΎΠ² IPv4 с ΠΈΠ½Ρ‚Ρ€Π°Π½Π΅Ρ‚ адрСсами 169.254.0.0/16 (IPv4LL, Link-local). Π Π°Π½Π΅Π΅ адрСса IPv4LL ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π»ΠΈΠ±ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ (ipv4.method=link-local), Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· DHCP.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «ipv6.mtu» для настройки MTU (Maximum Transmission Unit) для IPv6.
  • Π£Π΄Π°Π»Ρ‘Π½ ΠΊΠΎΠ΄ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° DHCPv4, основанной Π½Π° ΠΊΠΎΠ΄Π΅ ΠΈΠ· systemd. Π’ качСствС DHCP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π΄Π°Π²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ рСализация n-dhcp4 ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π° nettools.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ пСрСзапуск DHCP ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ MAC-адрСса Π½Π° устройствС.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru