web-dev-qa-db-ja.com

ネーミングPPPインターフェース

Ubuntu(サーバー)Linuxでpppdを使用して構成された2つのPPPピア、dsl-line1とdsl-line2があります。

これらは/ etc/network/interfacesファイルによってautothingyで表示されますが、各PPP接続はpppXという名前を選択します。Xはどちらが最初に表示されるかによって異なります。

Dsl-line1が「dsl0」のような名前になり、dsl-line2が「dsl1」のような名前になるようにして、それぞれのファイアウォールルールをより簡単に作成し、ルーティングを設定できるようにします(同様に)構成が簡単になるように)。

私の質問は、pppdのインターフェースに名前を付けるにはどうすればよいですか?

/ etc/ppp/peers/dsl-line1(dsl-line2は、デフォルトルートが削除され、イーサネットインターフェイスが異なることを除けば、基本的に同じです)

noipdefault
defaultroute
replacedefaultroute
hide-password
#lcp-echo-interval 30
#lcp-echo-failure 4
lcp-echo-interval 10
lcp-echo-failure 3
noauth
persist
#mtu 1492
#persist
#maxfail 0
#holdoff 20
plugin rp-pppoe.so eth1
user "[email protected]"

/ etc/network/interfaces(line1の部分も、2は非常に似ています)

auto dsl0
iface dsl0 inet ppp
    pre-up /sbin/ifconfig eth1 up # line maintained by pppoeconf
    post-up /bin/sh /home/callum/ppp0_up.sh # Route everything
    post-up /bin/sh /etc/miniupnpd/ppp0_up.sh # Start miniupnpd (if not alr$
    provider dsl-line1

前もって感謝します。

3
CallumA

私が見つけた最善の策は、/ etc/ppp/peers/...ファイルの「ユニット」オプションでした。このオプションは、インターフェイスpppXに名前を付ける整数です。ここで、Xは「ユニット」の後のintです。

最終的に、/ etc/network/interfacesでインターフェイスpppXに名前を付け、ピアファイルで「unit」を使用して、そのように名前が付けられるようにしました。

3
CallumA

古いバージョンのpppdunitオプションを提供しますが、@ CallumA 指摘

   unit num
          Sets the ppp unit number (for a ppp0 or ppp1 etc interface
          name) for outbound connections.

…Linux用のpppdの最新バージョン(例:2.4.7)には、ifnameオプションを提供するようにパッチが適用されています。これにより、ppp_tunnelなどの完全に任意のインターフェイス名を設定できます。またはmagic0など:

   ifname string
          Set the ppp interface name for outbound connections.
          If the interface name is already in use, or if the name 
          cannot be used for any other reason, pppd will terminate.

コメントで指摘されているように、ifnameオプションはLinux固有です。私の推測では、すべてのオペレーティングシステムが任意のインターフェイス名を設定できるわけではないため、アップストリームにマージされていないようです。 ( Linuxでは、インターフェース名はSIOCSLIFNAMEioctl で設定されます。)

5
Dan

これを行う最も簡単な方法は、/etc/ppp/ip-up.d/<script name>にスクリプトを作成することです。

例は次のとおりです。

#!/bin/sh -e
# only apply this when a connection to dsl10 has occurred
if [ "X$CALL_FILE" != "Xoptus" ]; then
     exit 0
fi

echo $CALL_FILE is using the ppp device $IFNAME

SCRIPTSセクションのpppd(8)で使用可能な変数の完全なセットを確認できます。

0
akumria

これは、ppp0のpppoe接続の名前をeth0に変更する完全な例です(スクリプトの互換性のため)。

/ etc/network/interfacesを編集し、ppp接続(ここではdsl-providerという名前)を次のように設定します。

auto dsl-provider
iface dsl-provider inet ppp
pre-up /bin/ip link set eth0 down
pre-up /bin/ip link set eth0 name eth99
pre-up /bin/ip link set eth99 up # line maintained by pppoeconf
provider dsl-provider

/ etc/ppp/peers/dsl-providerに以下を追加します。

plugin rp-pppoe.so eth99
ifname eth0

これで、起動時にppp0デバイスはeth0と呼ばれます(古いeth0の名前はeth99に変更されました)。

0
A.Badger