두 개의 네트워크 카드가 있는 컴퓨터가 있는데, 그 중 하나는이더 리움하나무선 랜.
- 무선 랜10.0.0.0/24에 위치
- 이더 리움192.168.0.0/16에 위치
커널 라우팅 테이블은 다음과 같습니다.
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 enp4s0f0
0.0.0.0 10.0.0.1 0.0.0.0 UG 600 0 0 wlp3s0
10.0.0.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp4s0f0
192.168.0.0 0.0.0.0 255.255.0.0 U 100 0 0 enp4s0f0
질문:
- 커널은 사용할 기본 gw를 선택합니까, 아니면 둘 다에 보냅니까?
- 선택한다면 어떻게 선택될 것인가?
- 선택에 영향을 미치거나 선택을 하게 만드는 가장 효과적인 방법은 무엇입니까?
답변1
이 경우 커널은 메트릭을 기반으로 선택됩니다. 즉, 낮은 메트릭이 우선합니다. (경로 선택은 경로 특이성, 관리 비용, 측정항목을 순서대로 기준으로 합니다. 두 개의 기본 게이트웨이의 특이성과 관리 비용은 동일합니다.)
선택을 변경하려면 가장 좋은 방법은 경로 메트릭을 변경하는 것입니다.
답변2
제가 이 글을 쓰는 이유는 각각 듀얼 네트워크 카드가 있고 각각 다음과 같이 구성된 서로 다른 두 대의 컴퓨터가 있기 때문입니다.
auto enp6s0
iface enp6s0 inet dhcp
address 192.168.20.36
netmask 255.255.255.0
gateway 192.168.20.1
auto enp7s0
iface enp7s0 inet static
address 10.10.10.3
netmask 255.255.255.0
gateway 192.168.20.1
둘 다 192.168.* LAN의 다른 컴퓨터와 10.10.*의 IOT 가젯에 연결할 수 있지만 둘 중 하나는 인터넷에 액세스할 수 없습니다.
정의된 정책이 없으며, Route 명령은 인터넷 연결이 없는 기본 게이트웨이가 10.10.* 네트워크와 연결된 네트워크 카드를 사용한다는 점을 제외하면 메트릭이 동일하다는 것을 보여줍니다.
분명히(경험상 보장할 수 없습니다!) 커널에 더 나은 옵션이 없으면 찾은 첫 번째 옵션을 사용합니다. /etc/network/interfaces에서 192.168.*에 대한 참조가 10.10.*에 대한 참조 앞에 나열되도록 /etc/network/interfaces를 편집하면 문제가 해결된 것으로 보입니다.
답변3
실험에 따르면 Linux는 마지막에 추가한 (동등한) 기본 게이트웨이를 사용하는 것 같습니다.