내 질문의 요약 버전은 다음과 같습니다. gateway
네트워크 인터페이스 파일의 매개변수 설정이 네트워크 인터페이스에 영향을 주지 않는 이유는 무엇입니까?
또는 post-up
명령이 실패한 곳에서 작동하는 이유는 무엇 gateway
이며 gateway
설정 매개변수는 정확히 무엇을 수행해야 합니까?
내 문제에 대한 자세한 설명은 다음과 같습니다.
/etc/network/interfaces
Debian을 실행하는 VirtualBox VM에서 다음 네트워크 인터페이스 프로필( )을 고려하십시오.
# /etc/network/interfaces
# Original file
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface (NAT)
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
# Host-only interface (vboxnet0)
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.56.2
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
gateway 192.168.56.1
머신을 시작하고 실행하면 route -n
다음과 같은 결과가 나타납니다.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
놀랍게도 이 인터페이스에는 192.168.56.0/24 네트워크용 게이트웨이가 설정되어 있지 않습니다 eth1
.
이제 다음 대체 구성 파일을 고려하십시오.
# /etc/network/interfaces
# Modified file
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface (NAT)
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
# Host-only interface (vboxnet0)
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.56.2
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255
# gateway 192.168.56.1
post-up route add default gw 192.168.56.1
pre-down route del default gw 192.168.56.1
이 구성으로 컴퓨터를 다시 시작하고 실행하면 route -n
다음과 같은 결과가 나타납니다.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.56.1 0.0.0.0 UG 0 0 0 eth1
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
따라서 결과적으로 post-up
기본 게이트웨이를 설정하는 / 메소드는 작동하지만 매개변수 자체를 사용하는 것은 작동하지 않습니다. 내가 여기서 무엇을 놓치고 있는 걸까요?pre-down
gateway
답변1
매뉴얼에서( man interfaces
):
gateway address
Default gateway (dotted quad)
따라서gateway
기본정적 라우팅이 아닌 라우팅. 정적 경로는 기본 게이트웨이를 사용하도록 설계되지 않은 네트워크 트래픽에 사용됩니다. 기본 게이트웨이는 로컬 네트워크로 향하지 않고 라우팅 테이블에 기본 경로가 지정되지 않은 모든 트래픽에 사용됩니다. DHCP 인터페이스 eth0
받기기본게이트웨이. 그 후에는 지정 정적 eth1
경로를 사용할 수 있습니다 post-up route add default gw
.
추가 자료:
두 개의 네트워크 인터페이스에서 별도의 네트워크 트래픽
다음을 시도해 보세요.
echo '200 hostonly' >> /etc/iproute2/rt_tables
편집하다 /etc/network/interfaces
.
# The loopback network interface
auto lo
iface lo inet loopback
# The VirtualBox NAT interface.
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
# The VirtualBox host-only interface.
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.56.2
netmask 255.255.255.0
post-up ip route add 192.168.56.0/24 dev eth1 src 192.168.56.1 table hostonly
post-up ip route add default via 192.168.56.1 dev eth1 table hostonly
post-up ip rule add from 192.168.56.2/32 table hostonly
post-up ip rule add to 192.168.56.2/32 table hostonly
재부팅하고 어떻게 보이는지 확인하세요.
답변2
네트워크 관점에서 보면 기본 게이트웨이(최후의 게이트웨이라고도 함)가 아닌 네트워크 게이트웨이가 다음 홉으로 사용됩니다. 첫 번째 Route -n 명령(접미사 없음)에서 10.0.2.2가 마지막 게이트웨이로 표시됩니다. 컴퓨터가 라우팅 테이블에 없는 네트워크를 요청하면 알 수 없는 네트워크 트래픽을 해당 주소로 전달합니다. 인터페이스 설정의 게이트웨이 설정은 해당 네트워크의 트래픽에 대한 다음 홉입니다. 그러나 인터페이스가 해당 네트워크에 직접 연결되어 있으므로 트래픽을 전달하는 데 게이트웨이가 필요하지 않습니다. 네트워크는 항상 알려져 있으며 해당 네트워크의 장치로 향하는 트래픽은 해당 장치로 직접 전달됩니다. 사후 명령은 최후의 수단으로 두 개의 게이트웨이를 생성하고 있습니다(이는 바람직하지 않습니다). 192.168.56.1을 실제 최후의 수단으로 사용하려면 기본 경로를 추가하는 대신 교체해야 합니다.
답변3
이것이 약간의 자극을 주었다
라우팅 테이블은 모든 인터페이스 간에 연결이 라우팅되는 방식에 대한 정보를 제공합니다.
인터페이스의 기본 경로는 다른 목적으로 사용되며 전체 시스템이 아닌 해당 인터페이스에만 적용됩니다.
네트워크 인터페이스가 하나만 있는 경우 이것이 유일한 기본 게이트웨이이므로 자동으로 기본 경로로 설정됩니다.
라우팅 테이블은 아래에서 위로 작동하므로 맨 위의 기본 게이트웨이가 연결을 시도하는 데 사용되는 마지막 경로가 됩니다.