Linux kutumu ip paketlerini iletmek için yönlendirici olarak nasıl ayarlayabilirim?


25

IP paket iletme hakkında bir ağ denemesi yapıyorum, ancak neden işe yaradığını bilmiyorum.

Her ikisi de statik IP adresi olan eth0 ve eth1 olmak üzere iki ağ arayüzüne sahip bir linux makinem var (eth0: 192.168.100.1, eth1: 192.168.101.2).

Amacım basit, sadece 192.168.100.0/24 alt ağındaki hedef olan eth1'den eth1'den eth0'a, ve 192.168.101.0/24 alt ağındaki hedef olan ip paketlerini eth0'dan yönlendirmek istiyorum.

IP yönlendirme özelliğini açtım:

sysctl -w net.ipv4.ip_forward=1

yönlendirme tablom şöyle:

# route -n
Kernel IP routing table
Destination     Gateway     Genmask        Flags Metric Ref   Use  Iface
192.168.100.0   0.0.0.0     255.255.255.0  U     0      0       0  eth0
192.168.101.0   0.0.0.0     255.255.255.0  U     0      0       0  eth1

Ancak, 192.168.100.25'ten 192.168.101.47'ye ping yapmaya çalıştığımda, çalışmıyor.

Yanıtlar:


23

Bu gibi bir komut kullanarak bir yönlendirme kuralı eklemelisiniz iptables:

modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -j ACCEPT

man iptablesdaha fazla ayrıntı için bkz . veya nasıl yapılır makaleleri için internette arama yapın, örneğin Linux tabanlı bir bilgisayarda NAT yönlendirici nasıl kurulur

İşte konuyu detaylı olarak tartışan Linux IP Masquerade NASIL .

Ayrıca FORWARDyukarıdaki ACCEPTkuralı geçersiz kılan başka hiçbir kuralın (örneğin zincirde) olmadığından emin olmalısınız . Varsa, muhtemelen silmek istersiniz.


Nedenini bilmiyorum ama hala çalışmıyor. Hem eklemiş iptables -A FORWARD -i eth0 -o eth1 -j ACCEPTve iptables -A FORWARD -i eth1 -o eth0 -j ACCEPTbenim tablolara. INPUT, OUTPUT ve FORWARD politikalarım hepsi bu ACCEPT.
Yishu Fang

Yanlış yapılandırılabilecek birçok şey var. Örneğin, ana makinenin IP adresi "dahili" ağdaki ana bilgisayarlarda "ağ geçidi IP" olarak belirtilmelidir, bu nedenle bir IP kendi "yerel" ağlarının kapsama alanında değilse paketlerin size gönderilmesi gerektiğini bilirler. ağ geçidi makinesi. Bu, ADSL yönlendiricinin LAN'daki ana bilgisayarlar için ağ geçidi olarak kaydedildiği normal kuruluma benzer
Sergey

Ben kullandığınızda traceroutebenim ana bilgisayarda, bu paket "router" (192.168.100.1) gider gösterir, ancak başka gitmez.
Yishu Fang

1
@UniMouS: MASQUERADE meselesini unutmuş gibiyim - Cevabımı düzenledim ve makalelere yeni bağlantılar ekledim.
Sergey

2

Hem 192.168.100.25 hem de 192.168.101.47’ye bir rota eklemeniz gerekir.

Yönlendirme sunucunuzda IP 192.168.100.1 ve 192.168.101.1 IP varsa, istemciye 192.168.100.25 eklersiniz.

ip route 192.168.101.0/24 via 192.1268.100.1

ve müşteride 192.168.101.47

ip route 192.168.100.0/24 via 192.168.101.1

(Bu sadece yönlendirme etkin, iptable yok ile çalışır).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.