기본 네트워크 인터페이스에 장애가 발생한 경우 다른 네트워크 인터페이스를 사용하여 인터넷에 액세스

기본 네트워크 인터페이스에 장애가 발생한 경우 다른 네트워크 인터페이스를 사용하여 인터넷에 액세스

3G 모뎀과 이더넷 인터페이스(eth0)가 있는 Ubuntu 18.04 LTS를 실행하는 임베디드 시스템이 있습니다.

두 인터페이스 모두 인터넷에 대한 액세스를 제공합니다.

이더넷 인터페이스가 인터넷에 접속할 수 없는 경우(네트워크 케이블 분리) 시스템이 항상 인터넷에 접속할 수 있도록 기본 게이트웨이를 3G 모뎀 중 하나로 자동 설정하고 싶습니다.

이제 테스트 목적과 단순화를 위해 3G 모뎀을 다른 이더넷 인터페이스(다른 네트워크에 연결된 USB 이더넷 어댑터 - 인터페이스 enxd037458b96e3)로 교체했으며 eth0의 이더넷 연결이 끊어지면(4포트 기가비트에 케이블로 연결됨) 라우터) 기본 게이트웨이가 사라지고 USB 이더넷 인터페이스가 활성화되어 있는 동안 인터넷에 액세스할 수 없습니다(IP 주소는 eth0과 마찬가지로 DHCP를 통해 자동으로 할당됩니다).

이 경우 Route 명령의 출력은 다음과 같습니다.

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 uap0
192.168.137.0   0.0.0.0         255.255.255.0   U     0      0        0 enxd037458b96e3

그리고 eth0이 시작되거나 재개될 때:

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.30.102  0.0.0.0         UG    0      0        0 eth0
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 uap0
192.168.30.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.137.0   0.0.0.0         255.255.255.0   U     0      0        0 enxd037458b96e3

아래는 /etc/network/interfaces의 내용입니다.

# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto  lo
iface lo inet loopback

iface eth0 inet dhcp
#   post-up route add default via [gateway-ip-address] dev eth0

# interface usb eth
allow-hotplug   enxd037458b96e3
iface enxd037458b96e3 inet dhcp

# auto  wlan0
allow-hotplug  wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

auto uap0 
# allow-hotplug uap0
iface uap0 inet static
      address   192.168.2.10
      netmask   255.255.255.0
      broadcast 192.168.2.255
      post-up    /etc/rc.apstart || true
#     post-up    /bin/uaputl.exe sys_cfg_80211d country DE || true
#     post-up    /bin/uaputl.exe sys_config /etc/uapTest.conf || true
#     post-up    /bin/uaputl.exe bss_start || true
      post-down  /bin/uaputl.exe bss_stop
      post-down  /bin/uaputl.exe sys_reset
#     post-up    /sbin/ifconfig uap0 192.168.0.2
    

  

업데이트: eth0 인터페이스와 달리 USB 이더넷 어댑터에서 케이블을 분리하면 라우팅에 항상 마지막 기본 게이트웨이가 표시됩니다. eth0 인터페이스를 사용하면 기본 게이트웨이가 사라지고 케이블을 연결할 때까지 복원되지 않습니다.

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.137.1   0.0.0.0         UG    0      0        0 enxd037458b96e3
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 uap0
192.168.30.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.137.0   0.0.0.0         255.255.255.0   U     0      0        0 enxd037458b96e3

답변1

이 질문과 유사합니다:https://askubuntu.com/questions/948453/internet-connection-stops-after-one-interface-is-down-in-ubuntu-serverNetworkManager를 사용하여 연결(3G도 마찬가지)을 관리하겠습니다.

그러나 가장 낮은 메트릭을 가진 인터페이스가 인터넷 액세스를 잃으면 시스템은 더 이상 인터넷에 액세스할 수 없으며 더 높은 메트릭을 가진 인터페이스는 인터넷에 연결되어 있습니다(예: 3G 모뎀). 인터넷 인터페이스의 연결되지 않은 표시기를 수동으로 늘려야 합니다.

인터페이스 바인딩이 내장된 새 시스템 이미지를 요청할 수 있는지 알아보겠습니다.

그렇지 않으면 메트릭이 가장 낮은 기본 경로가 인터넷에 연결되어 있는지 여부를 모니터링하고 NetworkManager를 제어할 수 있는 서비스를 작성할 수 있습니다.

관련 정보