建立橋接介面

建立橋接介面

我正在開發一台 Linux 機器。我想要這樣的東西。

網路--->wlan0---->eth0-->其他伺服器。

wlan0 和 eth0 介面都位於同一個 Linux 機器內。我正在使用 dhcp,它將 192.168.3.21 等分配給我的 wlan0 介面。我將靜態 IP 分配給我的 eth0 接口,例如 192.168.3.101,將 192.168.3.102 分配給其他伺服器。現在,我想從網路(192.168.3.XX) ping 到位址為 192.168.3.102 的其他伺服器和位址為 192.168.3.101 的 eth0。我無法這樣做。

我甚至無法從我的 Linux 機器上 ping 通 192.168.3.102 處的其他伺服器。

我已透過「echo 1 > /proc/sys/net/ipv4/ip_forward」命令啟用了 ip 轉送。

我也使用以下命令來啟用 nat 轉發。

iptables -A FORWARD -i wlan0 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

我仍然無法 ping 通。

請讓我知道我缺少什麼。任何幫助將不勝感激。

這是 iptables-save 的輸出:-

# Generated by iptables-save v1.6.0 on Mon Feb 19 10:17:54 2018
*raw
:PREROUTING ACCEPT [481:39595]
:OUTPUT ACCEPT [325:24634]
COMMIT
# Completed on Mon Feb 19 10:17:54 2018
# Generated by iptables-save v1.6.0 on Mon Feb 19 10:17:54 2018
*nat
:PREROUTING ACCEPT [1:229]
:INPUT ACCEPT [1:229]
:OUTPUT ACCEPT [1:76]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o wlan0 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Mon Feb 19 10:17:54 2018
# Generated by iptables-save v1.6.0 on Mon Feb 19 10:17:54 2018
*mangle
:PREROUTING ACCEPT [482:39927]
:INPUT ACCEPT [474:38801]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [325:24634]
:POSTROUTING ACCEPT [325:24634]
COMMIT
# Completed on Mon Feb 19 10:17:54 2018
# Generated by iptables-save v1.6.0 on Mon Feb 19 10:17:54 2018
*filter
:INPUT ACCEPT [63:6229]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:76]
-A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Mon Feb 19 10:17:54 2018

這是我的 ip 路由輸出:-

預設透過 192.168.0.1 dev wlan0 metric 10 192.168.0.0/24 dev wlan0 原型核心範圍連結 src 192.168.0.190 192.168.0.0/24 dev ethsrc 核心原型範圍

答案1

如果你想擁有一個路由器如果有兩個接口,它們需要位於不同的子網路中(例如 192.168.0.0/24 與 192.168.5.0/24 是分開的)。你這裡有衝突,在你的 中可見ip route,它不會起作用。

如果要在兩個介面上使用相同的子網,那麼它不是路由器,而是雙埠交換機,通常稱為

  • 您可以建立一個橋接介面並在那裡分配一個 IP(可能透過 DHCP)。
  • wlan0 和 eth0 應該保留沒有 IP 位址,它們成為網橋的透明成員。

答案2

要連接兩個不同的網絡,需要使用如下所示的網橋:

建立橋接介面

brctl addbr br0

將介面加入網橋

brctl addif eth0

brctl addif wan0

介面的 IP 為零。

ifconfig eth0 0.0.0.0 promisc up

ifconfig wan0 0.0.0.0 promisc up

啟用橋接介面

ifconfig br0 10.0.1.1 netmask 255.255.255.0 broadcast 10.0.1.255 

相關內容