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
前もって感謝します。
私が見つけた最善の策は、/ etc/ppp/peers/...ファイルの「ユニット」オプションでした。このオプションは、インターフェイスpppXに名前を付ける整数です。ここで、Xは「ユニット」の後のintです。
最終的に、/ etc/network/interfacesでインターフェイスpppXに名前を付け、ピアファイルで「unit」を使用して、そのように名前が付けられるようにしました。
古いバージョンのpppd
はunit
オプションを提供しますが、@ 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では、インターフェース名はSIOCSLIFNAME
ioctl
で設定されます。)
これを行う最も簡単な方法は、/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)で使用可能な変数の完全なセットを確認できます。
これは、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に変更されました)。