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