我有兩台機器,它們之間透過串行方式建立 ppp 連接。它們還透過乙太網路介面連接到單獨的 LAN。我希望能夠在這兩個乙太網路之間進行通訊。
這些網路可能位於也可能不位於不同的子網路。所有 IP 都是靜態分配的,因此不涉及 DHCP。
粗略的拓樸如下;
eth ppp(tty) eth
network1 <----> box1 <-----> box2 <-----> network2
這可以透過簡單的命令來實現嗎 ip route
?
答案1
最好將 net1 和 net2 作為獨立的子網,具有不同的 IP 位址前綴和獨立的廣播網域。
在這種情況下,每個“盒子”中有兩個接口,您所擁有的實際上是最簡單的 IP 路由器。(只需將“ppp”介面視為連接兩個路由器的第三個網絡,具有自己的私有 IP 前綴。)
每個路由器已經知道如何到達直接連接的網路(當您在介面上設定 IP 位址時,它會從「子網路遮罩」或「前綴長度」取得此資訊)。他們仍然需要遠端網路的路由。
在框 1 上,透過 <IP 位址 of box2.ppp> 新增到 <network2> 的路由。
在框 2 上,透過 <IP 位址 of box1.ppp> 新增到 <network1> 的路由。
(也可以不編號 ppp 介面並透過介面設定路由,例如使用關鍵字dev ppp0
而不是via <addr>
在 Linux 上。可能不建議。)
但更重要的是,設備之內這些網路必須知道它們應該使用 box1 和 box2 作為通往對方網路的網關。 (他們不必使用 box1 和 box2 作為預設網關, 然而。如果兩個網路已經有自己的預設網關,請改為透過 box1/box2 設定路由。
如果 net1 和 net2 之間的連結必須在乙太網路層透明(例如,如果您傳送非 IP 流量),則裝置不能是路由器 – 它們需要充當路由器橋樑。在兩個介面之間配置橋接很容易;然而,問題在於「常規」PPP 僅承載網路層流量,而不承載原始乙太網路幀。
因此,對於橋接,您需要乙太網路的特殊 PPP 模式;或者可能是基於 PPP 的 MPLS(我確信存在);或創建一個隧道,例如“gretap”或“erspan”在上面IP 網路(有一些開銷)。所有選項都是可能的,但需要知道 box1 和 box2 支援什麼 - 與路由不同,路由是路由器的核心功能。