재부팅 후 탭 인터페이스를 지속시키는 방법은 무엇입니까?


24

일부 작업에는 탭 인터페이스를 구성하고 소유권을 할당 해야합니다 . 그래서 수동으로하고 있습니다.

sudo tuntap -u <username>
sudo ifconfig tap0 up
sudo ip a a 192.168.1.1/24 dev tap0

또는 사용

ip tuntap add dev tap0 mode tap user <username>

이 명령을 쉘 스크립트에 추가하고 시작에 추가하지 않고 재부팅 후 탭 인터페이스 구성을 영구적으로 유지하는 방법

내가 생각한 것은 다음과 같이 / etc / network / interfaces를 통해 수행하는 것입니다 .

iface tap1 inet static
address 192.168.1.121
netmask 255.255.255.0
pre-up /usr/sbin/tunctl -u ajn -t tap1

그러나 어떤 이유로 든 작동하지 않습니다.

어떤 아이디어?

답변:


20

나는 내 삶에서 왜이 질문에 대해 투표를해야 하는지를 알 수 없습니다. 명확하고 정확하며 잘 정의 된 답변이 있습니다. 나는 그것을 upvoted했다.

tunctl과 같은 더 이상 사용되지 않는 유틸리티를 사용하고 있으므로 대신 ip 를 사용해야 합니다. / etc / network / interfaces 의 올바른 스탠자 는 다음과 같습니다.

    iface tap1 inet manual 
    pre-up ip tuntap add tap1 mode tap user root
    pre-up ip addr add 192.168.1.121/24 dev tap1
    up ip link set dev tap1 up
    post-up ip route del 192.168.1.0/24 dev tap1 
    post-up ip route add 192.168.1.121/32 dev tap1
    post-down ip link del dev tap1

당신의 실수는 manual 대신 static사용하는 것 입니다. 그 이유는 로컬 인터페이스를 자동으로 추가하려고 할 때 기본 인터페이스 (wlan0 / eth0)와 동일한 서브넷의 주소를 가상 인터페이스에 제공하려고하기 때문입니다.

    ip route add 192.168.1.0/24 dev tap1

그것은 그러한 경로가 이미 존재한다는 것을 발견하고 불평합니다. 정적 대신 수동 을 사용 하면이 경로를 삭제할 수 있습니다. 물론 쓸모가 없습니다.

또한 경로를 추가해야합니다

     ip route add 192.168.1.121/32 dev tap1

경로에 예외가 있음을 커널에 알리기 위해

     ip route add 192.168.1.0/24 dev eth0/wlan0 

그게 다야.


우분투 17.10에서 뭔가 작동하지 않습니다. 내 tun0이 생성되지 않았습니다-서비스 네트워킹 상태에 인터페이스 tun0가 존재하지 않는다고 표시됩니다. 다음은 인터페이스 파일입니다. gist.github.com/velis74/ab75a46893eaed8bd08b8c6292b2737a
velis

@velis 새로운 인터페이스는 tun0이 아니라 tap0 이라고 불리우 므로 찾을 수 없습니다. 제발 것을 통지 TUN 인터페이스는 근본적으로 다른 en.wikipedia.org/wiki/TUN/TAP 하나가 생성 하시겠습니까?
MariusMatutiae

예, tap0이라고합니다. 이 답변은 튜닝 장치가 아닌 탭 장치를 만드는 것입니다. 이것이 어떻게 내 실패의 원인이 될 수 있는지 알지 못합니다. 사전 추가 장치 명령은 명령 행에서 완벽하게 실행됩니다.
velis

내가 auto tap0스탠자를 놓친 것으로 밝혀졌습니다 . 요지는 그에 따라 업데이트되었습니다.
velis

0

몇 가지 추가 단계가 필요합니다.

  1. 새 라우팅 테이블 추가 / etc / iproute2 / rt_tables를 편집하여 새 라우팅 테이블을 추가하십시오. 라우팅 테이블을 "rt2"라고하고 기본 설정을 1로 설정하십시오.
    55     local
    254     main
    253     default
    0       unspec
    1       rt2
  1. 이전 답변에서 설명한대로 탭 인터페이스를 생성 한 다음 새 라우팅 테이블을 구성하고 라우팅 규칙을 설정해야합니다. / etc / network / interfaces에 추가하십시오 :
   #create a tap interface and make it persistent
    iface tap1 inet manual 
    pre-up ip tuntap add tap1 mode tap user root
    pre-up ip addr add 192.168.1.121/24 dev tap1
    up ip link set dev tap1 up
    post-up ip route del 192.168.1.0/24 dev tap1 
    post-up ip route add 192.168.1.121/32 dev tap1
    post-down ip link del dev tap1

    #configure the new routing table so that network 192.168.1.0 can be reached through the tap1 interface
    post-up ip route add 192.168.1.0/24 dev tap1 src 192.168.1.121 table rt2

    #set the default gateway to be 192.168.1.10
    post-up ip route add default via 192.168.1.10 dev tap1 table rt2

    #set rules so that traffic from and to 192.168.1.121 use the rt2 routing table 
    post-up ip rule add from 192.168.1.121/24 table rt2
    post-up ip rule add to 192.168.1.121/24 table rt2
sudo ifup tap1

그것을 테스트하려면 :

ip route list table rt2
ip rule show
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.