๋คํธ์ํฌ ๋งค๊ฐ๋ณ์ ์ค์ ์ ๋จ์ํํ๊ธฐ ์ํด ์ธํฐํ์ด์ค์ ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค(NetworkManager 1.40.0)๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. VPN ์ง์์ฉ ํ๋ฌ๊ทธ์ธ(Libreswan, OpenConnect, Openswan, SSTP ๋ฑ)์ ์์ฒด ๊ฐ๋ฐ ์ฃผ๊ธฐ์ ์ผ๋ถ๋ก ๊ฐ๋ฐ๋์์ต๋๋ค.
NetworkManager 1.40์ ์ฃผ์ ํ์ ์ฌํญ:
- nmcli ๋ช ๋ น์ค ์ธํฐํ์ด์ค๋ ๋ฐฑ๊ทธ๋ผ์ด๋ NetworkManager ํ๋ก์ธ์ค์ ์ก์ธ์คํ์ง ์๊ณ ๋ ํค ํ์ผ ํ์์ผ๋ก ์ฐ๊ฒฐ ํ๋กํ์ ์ฒ๋ฆฌํ ์ ์๋ "--offline" ํ๋๊ทธ๋ฅผ ๊ตฌํํฉ๋๋ค. ํนํ, ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ ๊ด๋ จ๋ ์ค์ ์ ์์ฑ, ํ์, ์ญ์ ๋ฐ ๋ณ๊ฒฝํ ๋ ์ด์ D-Bus๋ฅผ ํตํด ๋ฐฑ๊ทธ๋ผ์ด๋ NetworkManager ํ๋ก์ธ์ค์ ์ก์ธ์คํ์ง ์๊ณ ๋ "nmcli ์ฐ๊ฒฐ" ๋ช ๋ น์ ์คํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, "nmcli โoffline Connection add ..." ๋ช ๋ น์ ์คํํ ๋ nmcli ์ ํธ๋ฆฌํฐ๋ ์ฐ๊ฒฐ ํ๋กํ์ ์ถ๊ฐํ๋ผ๋ ์์ฒญ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค์ ๋ณด๋ด์ง ์๊ณ ํค ํ์ผ ํ์์ ํด๋น ์ค์ ๋ธ๋ก์ stdout์ ์ง์ ์ถ๋ ฅํฉ๋๋ค. ์คํฌ๋ฆฝํธ์์ nmcli๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๊ฒฐ ํ๋กํ์ ์์ฑํ๊ณ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ํ์ฑํํ๋ ค๋ฉด ์์ฑ๋ ํ๋กํ์ /etc/NetworkManager/system-connections ๋๋ ํฐ๋ฆฌ์ ์ ์ฅํ ์ ์์ต๋๋ค. # "600" ๊ถํ์ผ๋ก ํ์ผ ์ ์ฅ์ ๊ตฌ์ฑํฉ๋๋ค(์์ ์๋ง ์ฌ์ฉ ๊ฐ๋ฅ). umask 077 # ํคํ์ผ ํ์์ผ๋ก ํ๋กํ์ ์์ฑํฉ๋๋ค. nmcli --์คํ๋ผ์ธ ์ฐ๊ฒฐ ์ถ๊ฐ ์ ํ ์ด๋๋ท con-name my-profile \ | tee /etc/NetworkManager/system-connections/my-profile.nmconnection # ํ๋กํ ๋ณ๊ฒฝ nmcli โ์คํ๋ผ์ธ ์ฐ๊ฒฐ ์์ Connection.mptcp-flags ํ์ฑํ, ์ ํธ \ < /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 ์ฐ๊ฒฐ ๋ค์ ๋ก๋
- MPTCP(๋ค์ค ๊ฒฝ๋ก TCP)์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. MPTCP(๋ค์ค ๊ฒฝ๋ก TCP)๋ ์๋ก ๋ค๋ฅธ IP ์ฃผ์์ ์ฐ๊ฒฐ๋ ์๋ก ๋ค๋ฅธ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ฌ๋ฌ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋์์ ํจํท์ ์ ๋ฌํ๋ TCP ์ฐ๊ฒฐ ์์ ์ ๊ตฌ์ฑํ๊ธฐ ์ํ TCP ํ๋กํ ์ฝ์ ํ์ฅ์ ๋๋ค. ์ด์ NetworkManager๋ mptcpd ํ๋ก์ธ์ค๊ฐ ์ํํ๋ ๋ฐฉ์๊ณผ ์ ์ฌํ๊ฒ ์ด๋ฌํ ์ฃผ์๋ฅผ ์๋์ผ๋ก ๊ตฌ์ฑํ๋ ๊ฒ์ ํฌํจํ์ฌ ์ถ๊ฐ MPTCP ํ๋ฆ์ ๊ด๊ณ ๋๊ฑฐ๋ ์ฌ์ฉ๋๋ IP ์ฃผ์๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. NetworkManager๋ ๋ํ sysctl /proc/sys/net/mptcp/enabled๋ฅผ ์ค์ ํ๊ณ "ip mptcp ์ ํ" ๋ช ๋ น์ผ๋ก ์ง์ ๋ ์ ํ์ ์ค์ ํ์ฌ ์ปค๋์์ MPTCP ํ์ฑํ๋ฅผ ์ง์ํฉ๋๋ค. MPTCP ์ฒ๋ฆฌ๋ฅผ ์ ์ดํ๊ธฐ ์ํด MPTCP๋ฅผ ํ์ฑํํ๊ณ ์ฃผ์ ํ ๋น ๋งค๊ฐ๋ณ์(์ ํธ, ํ์ ํ๋ฆ, ๋ฐฑ์ , ํ๋ฉ์)๋ฅผ ์ ํํ ์ ์๋ ์๋ก์ด ์์ฑ "connection.mptcp-flags"๊ฐ ์ ์๋์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก sysctl /proc/sys/net/mptcp/enabled๊ฐ ์ปค๋์ ์ค์ ๋ ๊ฒฝ์ฐ MPTCP๋ NetworkManager์์ ์๋์ผ๋ก ํ์ฑํ๋ฉ๋๋ค.
- DHCP(DHCP ์๋)์ ๋ํ IP ์ฃผ์ ๋ฐ์ธ๋ฉ ๋งค๊ฐ๋ณ์๋ฅผ /run/NetworkManager/devices/$IFINDEX ํ์ผ์ ์ธ ์ ์์ต๋๋ค(์ ๋ณด๋ [dhcp4] ๋ฐ [dhcp6] ์น์ ์ ์ ์ฅ๋จ). ์ด๋ฅผ ํตํด ๊ฐ๋จํ ๋ฐ์ธ๋ฉ์ ๊ฒฐ์ ํ ์ ์์ต๋๋ค. D-Bus์ ์ก์ธ์คํ์ง ์๊ณ ํ์ผ์ ์ฝ๊ฑฐ๋ "nmcli -f all device show eth0" ๋ช ๋ น์ ์คํํฉ๋๋ค.
- ๋ก์ปฌ IPv4 ๋งํฌ๋ฅผ ์ธํธ๋ผ๋ท ์ฃผ์ 4/169.254.0.0(IPv16LL, ๋งํฌ-๋ก์ปฌ)์ ๋ฐ์ธ๋ฉํ๊ธฐ ์ํด ipv4.link-local ๋งค๊ฐ๋ณ์๊ฐ ์ฐ๊ฒฐ ํ๋กํ์ ์ถ๊ฐ๋์์ต๋๋ค. ์ด์ ์๋ IPv4LL ์ฃผ์๋ฅผ ์๋์ผ๋ก ์ง์ ํ๊ฑฐ๋(ipv4.method=link-local) DHCP๋ฅผ ํตํด ์ป์ ์ ์์์ต๋๋ค.
- IPv6์ ๋ํ MTU(์ต๋ ์ ์ก ๋จ์)๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด "ipv6.mtu" ๋งค๊ฐ๋ณ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- systemd์ ์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ๋์ง ์๋ DHCPv4 ํด๋ผ์ด์ธํธ ๊ตฌํ์์ ์ฝ๋๋ฅผ ์ ๊ฑฐํ์ต๋๋ค. nettools ํจํค์ง์ n-dhcp4 ๊ตฌํ์ ์ค๋ซ๋์ DHCP ํด๋ผ์ด์ธํธ๋ก ์ฌ์ฉ๋์ด ์์ต๋๋ค.
- ์ฅ์น์ MAC ์ฃผ์๊ฐ ๋ณ๊ฒฝ๋๋ฉด DHCP ๋ค์ ์์์ ํ์ฑํํ์ต๋๋ค.
์ถ์ฒ : opennet.ru