더미 링크를 추가하고, 링크에 일부 주소를 추가하고, 링크에 일부 경로를 추가하는 스크립트(질문 하단)가 있습니다.
ip link
, ip addr
및 명령이 지속되도록 하려면 어떻게 해야 합니까 ip route
?
저는 Debian Stretch를 사용하고 있으며 NetworkManager가 설치되어 있습니다.
아이디어 1:
이 파일을 넣으면 /etc/network/if-up.d/
컴퓨터가 시작될 때 호출될 수 있습니다. /etc/NetworkManager/dispatcher.d/01ifupdown
이 디렉토리를 가리키는 것 같습니다.
고쳐 쓰다:해봤는데 좋은 생각이 아니네요
아이디어 2:
이 파일을 다른 구성 언어로 변환하여 에 넣어야 할 수도 있지만 /etc/network/interfaces.d/
지금까지 이 파일을 구성한 예에서는 장치가 존재한다고 가정합니다. 아직 동등한 것을 찾지 못했습니다 ip link add mocknet type dummy
.
파일은 auto
줄 시작 부분에 있는 키워드를 사용하여 물리적 인터페이스( auto mocknet
)를 식별하지만 mocknet
아직 존재하지 않습니다.
작업 스크립트
ip link add mocknet type dummy
ip addr add 10.10.1.1/24 dev mocknet
ip addr add 10.10.2.1/24 dev mocknet
ip addr add 10.10.3.1/24 dev mocknet
ip addr add 10.10.4.1/24 dev mocknet
ip addr add 10.10.5.1/24 dev mocknet
ip addr add 10.10.6.1/24 dev mocknet
ip addr add 10.10.7.1/24 dev mocknet
ip addr add 10.10.8.1/24 dev mocknet
ip addr add 10.10.9.1/24 dev mocknet
ip link set mocknet up
ip route del 10.10.1.0/24
ip route del 10.10.2.0/24
ip route del 10.10.3.0/24
ip route del 10.10.4.0/24
ip route del 10.10.5.0/24
ip route del 10.10.6.0/24
ip route del 10.10.7.0/24
ip route del 10.10.8.0/24
ip route del 10.10.9.0/24
ip route add 10.10.1.0/24 dev mocknet proto kernel scope link src 10.10.1.1 metric 6000
ip route add 10.10.2.0/24 dev mocknet proto kernel scope link src 10.10.2.1 metric 6000
ip route add 10.10.3.0/24 dev mocknet proto kernel scope link src 10.10.3.1 metric 6000
ip route add 10.10.4.0/24 dev mocknet proto kernel scope link src 10.10.4.1 metric 6000
ip route add 10.10.5.0/24 dev mocknet proto kernel scope link src 10.10.5.1 metric 6000
ip route add 10.10.6.0/24 dev mocknet proto kernel scope link src 10.10.6.1 metric 6000
ip route add 10.10.7.0/24 dev mocknet proto kernel scope link src 10.10.7.1 metric 6000
ip route add 10.10.8.0/24 dev mocknet proto kernel scope link src 10.10.8.1 metric 6000
ip route add 10.10.9.0/24 dev mocknet proto kernel scope link src 10.10.9.1 metric 6000
답변1
아이디어 2맞다. 게다가 이 간단한 스크립트를 올바른 파일로 변환하는 것도 어렵지 않습니다. 여기서 한 가지 놀라운 점은 이것이 ip link set mocknet up
자동이라는 것입니다. man interfaces
좋은 정보를 제공합니다. 작업 문서는 다음과 같습니다.
/etc/network/interfaces.d/mocknet
:
# Mocknet:
# A mock network meant to replace parts of the real one if they don't exist.
#
# We are creating a network sink called mocknet. It's a dummy, so data sent to
# this is ignored. This is useful for when we want to run the simulation without
# all other machines connected. If a machine doesn't exist, then this prevents
# that packet from being sent to the default route and spamming the LAN.
auto mocknet
iface mocknet inet manual
#
# This creates the dummy interface. Dummy means that data sent here will be
# ignored.
pre-up /bin/ip link add mocknet type dummy
#
# Here we add all of the IP adresses that we might have as host on the FFS.
# This guarantees that we can bind to these addresses for Rx and helps us make
# a route for Tx
up /bin/ip addr add 10.10.1.1/24 dev mocknet
up /bin/ip addr add 10.10.2.1/24 dev mocknet
up /bin/ip addr add 10.10.3.1/24 dev mocknet
up /bin/ip addr add 10.10.4.1/24 dev mocknet
up /bin/ip addr add 10.10.5.1/24 dev mocknet
up /bin/ip addr add 10.10.6.1/24 dev mocknet
up /bin/ip addr add 10.10.7.1/24 dev mocknet
up /bin/ip addr add 10.10.8.1/24 dev mocknet
up /bin/ip addr add 10.10.9.1/24 dev mocknet
#
# The previous line created some default routes. Those routes are super high
# priority (metric=0) so they override real connections if they exist. We
# don't want that so here we need to delete the default routes and then add
# good versions. Now if a packet is sent to something in this ip range it goes
# to mocknet. `metric 6000` sets the route priority super low (a bigger
# number is lower priority so if it conflicts with a real device, that real
# device will take priority and data will be sent and not ignored.
post-up /bin/ip route del 10.10.1.0/24 && /bin/ip route add 10.10.1.0/24 dev mocknet proto kernel scope link src 10.10.1.1 metric 6000
post-up /bin/ip route del 10.10.2.0/24 && /bin/ip route add 10.10.2.0/24 dev mocknet proto kernel scope link src 10.10.2.1 metric 6000
post-up /bin/ip route del 10.10.3.0/24 && /bin/ip route add 10.10.3.0/24 dev mocknet proto kernel scope link src 10.10.3.1 metric 6000
post-up /bin/ip route del 10.10.4.0/24 && /bin/ip route add 10.10.4.0/24 dev mocknet proto kernel scope link src 10.10.4.1 metric 6000
post-up /bin/ip route del 10.10.5.0/24 && /bin/ip route add 10.10.5.0/24 dev mocknet proto kernel scope link src 10.10.5.1 metric 6000
post-up /bin/ip route del 10.10.6.0/24 && /bin/ip route add 10.10.6.0/24 dev mocknet proto kernel scope link src 10.10.6.1 metric 6000
post-up /bin/ip route del 10.10.7.0/24 && /bin/ip route add 10.10.7.0/24 dev mocknet proto kernel scope link src 10.10.7.1 metric 6000
post-up /bin/ip route del 10.10.8.0/24 && /bin/ip route add 10.10.8.0/24 dev mocknet proto kernel scope link src 10.10.8.1 metric 6000
post-up /bin/ip route del 10.10.9.0/24 && /bin/ip route add 10.10.9.0/24 dev mocknet proto kernel scope link src 10.10.9.1 metric 6000
#
# This cleans up the interface so it doesn't fail if we try to
# systemctl restart networking.
post-down /bin/ip link del mocknet
/bin/ip
이것이 "올바른" 방법인지 는 확실하지 않지만 모든 것이 작동하는 것 같습니다./sbin/ip