ΠΠΎΡΡΡΠΏΠ΅Π½ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ΅Π»ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ΅ΡΠΈ — 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