我需要做什麼才能將我的電腦設定為預設網關?

我需要做什麼才能將我的電腦設定為預設網關?

我們正在嘗試將一個帶有雙 LAN 卡(比方說外部和內部)的盒子放在一起,其中內部 LAN 卡應該充當其所連接的網路上的預設閘道。

這個盒子運行的是 Ubuntu。該框的基本目的是獲取內部網路上產生的訊息,對它們進行一些處理,然後將它們從外部 LAN 卡轉發到伺服器。內部網路完全隔離,只需一個常規交換器將內部 LAN 卡與其他兩個盒子連接起來。

這些其他盒子要么拋出多播訊息(內部 LAN 卡正在偵聽),要么發送針對不在該內部網路上的伺服器的單播訊息。因此,我們需要內網卡作為預設網關,然後將這些單播訊息傳送到該網關,然後雙網卡盒上的程式碼可以攔截這些訊息並將其轉發到伺服器。

問題: 1. 如何將網路卡設定為預設閘道(Ubuntu 上是否需要進行一些設定)? 2. 一旦我們完成了這個設置,監聽介面來攔截傳入的訊息是不是很簡單?

任何幫助(正確方向的指示)將不勝感激。

謝謝。

答案1

您無需在 NIC 上進行任何特殊配置即可將其設為預設網關。您只需將內部 LAN 中的機器配置為使用此 NIC IP 作為預設閘道即可。

若要在兩個子網路之間路由封包,您需要使用下列命令啟用 IPv4 轉送:

# echo 1 > /proc/sys/net/ipv4/ip_forward     (as root)

若要使其永久生效,請編輯該文件/etc/sysctl.conf並取消註解該行:

net.ipv4.ip_forward=1

對於封包攔截,可以用C/C++編寫程式。您可以使用 libpcap 取得到達內部 NIC 的流量並執行您需要執行的任何處理。我無法提供更多詳細信息,因為我不知道您想要執行的處理類型。

相關內容