virtualbox "호스트 전용 네트워크" 인터페이스에 대한 if-up 스크립트

virtualbox "호스트 전용 네트워크" 인터페이스에 대한 if-up 스크립트

Virtualbox 호스트 전용 네트워크를 사용하고 있으며 vboxnet0 인터페이스가 있습니다.

호스트(Ubuntu 14)에는 일부 경로 직원, 여러 경로 테이블(기본 및 2개 추가), IP 규칙 세트 등이 있습니다.

호스트의 vbonxen0 인터페이스에 대한 라우팅 테이블을 변경하면 재부팅이 손실됩니다.

vboxnet0 인터페이스에 대해 ifup과 유사한 스크립트를 어떻게 만들 수 있습니까?

답변1

VirtualBox를 사용할 때 명심해야 할 몇 가지 사항이 있습니다.호스트 전용 네트워킹특히 모드(최소 V4.3.36)브리징옵션이 없고 수동이므로 나중에 구성하려면 사용자 지정 경로가 필요합니다.

  • vboxnet0장치 노드는~ 아니다부팅 후 자동으로 사용 가능(!) virtualbox가 자체 인스턴스를 불러오려고 할 때 방해할 수 있는
    수동으로 구성하는 경우를 제외하고 ./etc/network/interfaces
  • vbox(pci|netadp|netflt|drv) 모듈이 로드된 경우에도 사용할 수 없습니다.
  • 를 사용하면 vboxmanage hostonlyif create장치 노드만 추가되지만 아직 라우팅할 수 없는 DOWN 상태로 둡니다.
  • vboxnet0인터페이스가 활성화되어도 장치 상태는 알 수 없는 상태로 유지됩니다
    4: vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> ... state UNKNOWN ...
    .위로의 이벤트 /etc/network/interfaces또는 해당 상태에 도달하지 ifup않으므로 /etc/network/if-up.d/MYSCRIPT쓸모가 없습니다.
  • 호스트에서는 다음과 같습니다.오직첫 번째 VM 게스트 머신이 시작될 때 사용할 수 있고 사용할 준비가 되어 있습니다.

그 사이로 갈 수 있는 유일한 방법은가상박스지금까지 내가 찾은 VM의 시작은udev 규칙파일을 배치하여 예: 다음을 /etc/udev/rules.d/80-vboxnet사용:

KERNEL=="vboxnet0", SUBSYSTEM=="net", ACTION=="추가", RUN+="/bin/bash -c '/bin/sleep 1; /sbin/ip 경로 추가 xxxx dev vboxnet0'"

bash 인스턴스를 트리거합니다. 명령문을 규칙 파일에 직접 넣었지만 ip route ...다른 곳에서 스크립트를 불러와 거기에 추가 경로 구성을 넣는 것도 가능합니다.

답변2

3ronco의 답변VirtualBox가 이 문제를 어떻게 해결하는지에 대한 좋은 통찰력을 제공하지만 스크립트가 실행될 때 링크가 여전히 다운되었기 때문에 그의 Udev 솔루션이 Ubuntu 19.04에서 작동하지 않는다는 것을 발견했습니다.

인터페이스를 추가해 보았습니다.넷플랜그러나 거기에 구성된 고정 경로가 있는 경우 알 수 없는 이유로 경로가 무시되었습니다.

시스템에 networkd-dispatcher가 있는 경우 여기에 스크립트를 넣을 수 있습니다.

/etc/networkd-dispatcher/routable.d/99-vboxnetworks

내 것은 여기 있다:

#!/bin/bash

if [ $IFACE == vboxnet2 ]; then
   /sbin/ip route add fdnn:nnnn:nnnn:2::/64 via fdnn:nnnn:nnnn:1::2
   /sbin/ip route add fdnn:nnnn:nnnn:3::/64 via fdnn:nnnn:nnnn:1::3
fi

이제 인터페이스에 netplan에 항목이 없으면 이 스크립트가 실행되지 않는 것으로 나타났습니다. 광산에는 구문상 올바른 것으로 만들기 위해 무시된 라우팅 항목 중 하나가 포함되어 있습니다(아마도 이를 수행하는 더 깔끔한 방법이 있을 것입니다). 그래서 나는 가지고있다

/etc/netplan/01-mynet.yaml

함유:

network:
    ethernets:
            vboxnet2:
                    routes:
                            # These routes are ignored for reasons unknow,
                            # I have included them just so that vboxnet2 gets
                            # a mention here. Actual routes are added by
                            # /etc/networkd-dispatcher/routable.d/99-vboxnetworks
                            #
                            - to: fdnn:nnnn:nnnn:2::/64
                              via: fdnn:nnnn:nnnn:1::2

관련 정보