๐ก ๋ณธ ๋ฌธ์๋ '๋ฆฌ๋ ์ค ๋ผ์ฐํ ์ค์ '์ ๋ํด ์ ๋ฆฌํด๋์ ๊ธ์ ๋๋ค.
์ด๋ ๋ผ์ฐํ ์ ๋ํด ์ค๋ช ํ๊ณ ๋ผ์ฐํ ํ ์ด๋ธ ์ค์ ๋ฐ ํน์ ๋ชฉ์ ์ง๊น์ง ๋ผ์ฐํ ๊ฒฝ๋ก๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ๊น์ง ๋ค๋ค์์ผ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
1. ๋ผ์ฐํ (Routing)์ด๋?
๋ผ์ฐํ ์ด๋? ํ ๋คํธ์ํฌ์์ ๋ค๋ฅธ ๋คํธ์ํฌ๋ก ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ํ์ํ์ฌ ์ง์ ํ ํ ๋คํธ์ํฌ ์์ ํธ์คํธ์๊ฒ ํจํท๋ค์ ์ ๋ฌํ๋ ๊ณผ์ ์ ๋งํฉ๋๋ค. ๋ฆฌ๋ ์ค ์์คํ ์ ๋ฏธ๋ฆฌ ์ค์ ๋์ด ์๋ ๋ผ์ฐํ ํ ์ด๋ธ์ด๋ผ๋ ์ง๋๋ฅผ ๋ณด๊ณ ํจํท์ ์ด๋ค ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ๊ฑฐ์ณ ๋ชฉ์ ์ง๋ก ๋ณด๋ผ์ง ๊ฒฐ์ ํฉ๋๋ค.
2. ๋ฆฌ๋ ์ค ๋ผ์ฐํ ์ค์
2.1 ๋ผ์ฐํ ํ ์ด๋ธ ํ์ธ
route ๋ช ๋ น์ด๋ฅผ ํตํด ํ์ฌ ์์คํ ์ ์ค์ ๋ ๋ผ์ฐํ ํ ์ด๋ธ์ ํ์ธํ ์ ์์ต๋๋ค.
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
- Destination: ๋ชฉ์ ์ง
- Gateway: ์ธ๋ถ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ๊ฒ์ดํธ์จ์ด ์ฃผ์
- Genmask: ๋ชฉ์ ์ง ๋คํธ์ํฌ์ ๋ท๋ง์คํฌ ์ฃผ์. "255.255.255.255"๋ก ์ง์ ๋์ด ์์ผ๋ฉด ๋ชฉ์ ์ง ํธ์คํธ์ ์ฃผ์, 0.0.0.0์ผ๋ก ์ง์ ๋์ด ์์ผ๋ฉด ๊ธฐ๋ณธ ๊ฒ์ดํธ์จ์ด ์ฃผ์๋ฅผ ์๋ฏธํ๋ค.
- Flags: ํด๋น ๊ฒฝ๋ก์ ๋ํ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ๋ ๊ธฐํธ.
- U(up): ์ด ๊ฒฝ๋ก๊ฐ ์ด์์๋ ์ํ
- H(host): ๋ชฉ์ ์ง๊ฐ ํธ์คํธ ์ฃผ์๋ผ๋ ๋ป
- G(gateway): ๊ฒ์ดํธ์จ์ด๋ฅผ ํฅํ๋ ๊ฒฝ๋ก๋ฅผ ์๋ฏธ
- Metric: ๋ชฉ์ ์ง ๋คํธ์ํฌ๊น์ง์ ๊ฑฐ๋ฆฌ
- Ref: ๊ฒฝ๋ก๋ฅผ ์ฐธ์กฐํ ํ์
- Use: ๊ฒฝ๋ก๋ฅผ ํ์ํ ํ์
- Iface: ์ฌ์ฉํ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์ด๋ฉฐ, ifconfig๋ฅผ ํตํด ํ์ธ๊ฐ๋ฅ
์ด ์์คํ ์์๋ 192.168.1.1๋ถํฐ 192.168.1.254๊น์ง ํฅํ๋ ํจํท์ enp0s3 ์ผ๋ก ๋ณด๋ผ ์ ์์ง๋ง, ๊ทธ ์ธ์ ๋ค๋ฅธ ๊ณณ์ผ๋ก๋ ํจํท์ ์ ๋ฌํ ์ ์์ต๋๋ค.
2.2 ๋ผ์ฐํ ํ ์ด๋ธ ๋ณ๊ฒฝ ๋ฐ ํ์ธ
2.2.1 ๊ธฐ๋ณธ gateway ์ถ๊ฐ ๋ฐ ํ์ธ
์๋ ๋ช ๋ น์ด๋ก ๊ธฐ๋ณธ gateway IP๋ฅผ ์ถ๊ฐํด๋ด ์๋ค.
$ sudo route add default gw 192.168.1.1
route ๋ช ๋ น์ ํตํด ์ถ๊ฐ๋ default gateway๋ฅผ ํ์ธํฉ๋๋ค.
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 0 0 0 enp0s3
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
route ๋ช ๋ น์ด๋ฅผ ํตํด ํ์ธํ๋ฉด IP๊ฐ์ด "_gateway"์ ๊ฐ์ด Domain Name์ผ๋ก ์ถ๋ ฅ๋๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, ๋ฆฌ๋ ์ค์์๋ "route -n" ๋ช ๋ น์ด๋ก IP์ฃผ์๋ฅผ ํ์ธ๊ฐ๋ฅํฉ๋๋ค.
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 enp0s3
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
๋ฐ๋ ๋ผ์ฐํ ํ ์ด๋ธ์ ์ดํด๋ณด๋ฉด 192.168.1.0 ๋คํธ์ํฌ๊ฐ ์๋ ๋ค๋ฅธ ๋คํธ์ํฌ๋ก ๋๊ฐ๋ ํจํท์ ๋ชจ๋ default๋ก ์ง์ ๋์ด ์๋ 192.168.1.1๋ก enp0s3 ์ ํตํด ๋ณด๋ด๊ฒ ๋ฉ๋๋ค.
2.2.1 ๋ผ์ฐํ ์ ๋ณด ์ถ๊ฐ ๋ฐ ํ์ธ
123.45.123.0, 234.56.234.0 ์ผ๋ก ํจํท์ ๋ณด๋ผ๋๋ 192.168.1.1 gw๋ก ๋ณด๋ด์ผ ๋๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค.
$ sudo route -n add -net 123.45.123.0 netmask 255.255.255.0 gw 192.168.1.1
$ sudo route -n add -net 234.56.234.0 netmask 255.255.255.0 gw 192.168.1.1
๋ผ์ฐํ ํ ์ด๋ธ์ ๋ค์ ์กฐํํด ๋ณด์์๋ ์๋์ ๊ฐ์ด ์ถ๊ฐ๋๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 enp0s3
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s3
123.45.123.0 192.168.1.1 255.255.255.0 UG 0 0 0 enp0s3
234.56.234.0 192.168.1.1 255.255.255.0 UG 0 0 0 enp0s3
2.3 ๋ผ์ฐํ ๊ฒฝ๋ก ์ถ์ (feat. traceroute)
traceroute๋ ๋ผ์ฐํ ํ ์ด๋ธ ์ค์ ํ ๋ชฉ์ ์ง๊น์ง ์ ์์ ์ผ๋ก ํจํท์ด ์ ์ก๋๋์ง ๋คํธ์ํฌ ๊ฒฝ๋ก๋ฅผ ์ถ์ ํ ์ ์๋ ๋ช ๋ น์ด๋ก ์ค๋ฌด์์ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค.
$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
192.168.45.1 (192.168.45.1) 12.223 ms 3.673 ms 3.571 ms
...
์ฐธ๊ณ
- ๋ผ์ฐํ (Routing)์ด๋?, ๋ฆฌ๋ ์ค ๋ผ์ฐํ ์ค์ : https://bumday.tistory.com/42
- [Linux] ๋ผ์ฐํฐ(route) ๊ธฐ๋ณธ ๊ฐ๋ ์ดํดํ๊ธฐ: https://graycha.tistory.com/147