Linux

命名 PPP 介面

  • May 28, 2018

我有兩個 PPP 對等點,dsl-line1 和 dsl-line2,它們在 Ubuntu(伺服器)Linux 上配置了 pppd。

它們由帶有 auto thingy 的 /etc/network/interfaces 文件啟動,但是每個 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 "xxxx@xxxx.xxx"

/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 並在對等文件中使用“單元”以確保它們以這種方式命名。

雖然舊版本pppd提供了unit@CallumA指出的選項:

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

… 更新的pppdLinux 版本(例如 2.4.7)已修補以提供ifname選項,允許您設置完全任意的介面名稱,例如ppp_tunnelormagic0等​​:

  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.)

引用自:https://unix.stackexchange.com/questions/145692