Mam ubuntu 9.04 x86 w wersji serwer, na komputerze który pełni rolę domowego routera.
Dotychczas miałem tam dwie karty sieciowe przewodowe:
- eth0 interfejs sieci lokalnej 192.168.3.0/24
- eth1 interfejs łączący ze światem, adres IP uzyskiwany przez DHCP.
Wszystko pięknie mi działało, aż postanowiłem sobie rozszerzyć moją maszynę o możliwości routera bezprzewodowego. Zakupiłem kartę na chipsecie atherosa, zainstalowałem linux-restricted modules, dodałem moduł ath5k do modules/blacklist i odblokowałem madwifi tamże. System znalazł kartę, karta zadziałała, do tego miejsca wszystko było ok. Aby nie komplikować sobie życia tworzeniem drugiej sieci, postanowiłem zrobić mostek pomiędzy interfejsami eth0 i ath0.
Zainstalowałem bridge-utils, przeedytowałem /etc/network/interfaces, zmieniłem reguły w iptables, kazałem serwerowi DHCP nasłuchiwać na nowym interfejsie br0. Po restarcie wszystko odbyło się bez problemów, z jednym małym "ale". Jakkolwiek zarówno komputery łączące się przewodowo jaki i te łączące bezprzewodowo otrzymują pełną konfigurację sieci przez DHCP i mają dostęp do internetu, o tyle próba pingowania komputera łączącego się przewodowo z tym łączącym się bezprzewodowo kończy się fiaskiem. Maszyny łączące się bezprzewodowo (przez interfejs ath0) i te łączące się przewodowo (przez eth0) nie widzą się nawzajem, mimo że są w tej samej sieci, a karty tworzą mostek.
Poniżej załączam moją konfigurację:
1. /etc/network/interfaces
Kod: Zaznacz cały
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The wireless network interface
auto ath0
iface ath0 inet manual
wireless-mode master
wireless-essid WronieGniazdo
wireless-channel 1
wireless-key ********
# The bridge
auto br0
iface br0 inet static
address 192.168.3.1
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
bridge-ports eth0 ath0
# The wired network interface
auto eth1
iface eth1 inet dhcp
pre-up /sbin/iptables-restore < /etc/iptables/iptables.conf
Kod: Zaznacz cały
ddns-update-style interim;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.2 192.168.3.27;
option domain-name-servers 192.168.3.1, 217.113.224.35, 217.113.224.36;
option routers 192.168.3.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.3.255;
host komp_01 {
hardware ethernet 00:17:31:7B:C6:26;
fixed-address 192.168.3.7;
}
host komp_02 {
hardware ethernet 52:54:05:F7:15:F9;
fixed-address 192.168.3.10;
}
host komp_03 {
hardware ethernet 00:18:F3:DF:A8:BF;
fixed-address 192.168.3.2;
}
host komp_04 {
hardware ethernet 00:A0:D1:47:58:88;
fixed-address 192.168.3.12;
}
}
Kod: Zaznacz cały
# Generated by iptables-save v1.4.1.1 on Sun Nov 1 12:24:10 2009
*nat
:PREROUTING ACCEPT [186990:45941769]
:POSTROUTING ACCEPT [30027:2181641]
:OUTPUT ACCEPT [31643:2687911]
-A PREROUTING -i eth1 -p tcp -m tcp --dport 4662 -j DNAT --to-destination 192.168.3.7:4662
-A PREROUTING -i eth1 -p udp -m udp --dport 4672 -j DNAT --to-destination 192.168.3.7:4672
-A PREROUTING -i eth1 -p tcp -m tcp --dport 4664 -j DNAT --to-destination 192.168.3.2:4662
-A PREROUTING -i eth1 -p udp -m udp --dport 4674 -j DNAT --to-destination 192.168.3.2:4672
-A PREROUTING -i eth1 -p tcp -m tcp --dport 4666 -j DNAT --to-destination 192.168.3.10:4662
-A PREROUTING -i eth1 -p udp -m udp --dport 4676 -j DNAT --to-destination 192.168.3.10:4672
-A POSTROUTING -s 192.168.3.0/24 -j MASQUERADE
COMMIT
# Completed on Sun Nov 1 12:24:10 2009
# Generated by iptables-save v1.4.1.1 on Sun Nov 1 12:24:11 2009
*filter
:INPUT DROP [125916:42178249]
:FORWARD DROP [6312:924302]
:OUTPUT ACCEPT [145836:76360562]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20:21 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 53 -m state --state NEW -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 631 -m state --state NEW -j ACCEPT
-A INPUT -p udp -m udp --dport 631 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3690 -m state --state NEW -j ACCEPT
-A INPUT -p udp -m udp --dport 3690 -m state --state NEW -j ACCEPT
-A INPUT -p udp -m udp --dport 5353 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 6881:6889 -m state --state NEW -j ACCEPT
-A INPUT -s 192.168.3.0/24 -p tcp -m tcp --dport 8118 -m state --state NEW -j ACCEPT
-A INPUT -s 192.168.3.0/24 -p udp -m udp --dport 8118 -m state --state NEW -j ACCEPT
-A INPUT -s 192.168.3.0/24 -p tcp -m tcp --dport 9100 -m state --state NEW -j ACCEPT
-A INPUT -s 192.168.3.0/24 -p udp -m udp --dport 9100 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9999 -m state --state NEW -j ACCEPT
-A INPUT -p udp -m udp --dport 9999 -m state --state NEW -j ACCEPT
-A FORWARD -o lo -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -s 192.168.3.0/24 -i br0 -o eth1 -j ACCEPT
-A FORWARD -d 192.168.3.0/24 -i eth1 -o br0 -j ACCEPT
-A FORWARD -d 192.168.3.2/32 -i eth1 -p tcp -m tcp --dport 4662 -j ACCEPT
-A FORWARD -d 192.168.3.2/32 -i eth1 -p udp -m udp --dport 4672 -j ACCEPT
-A FORWARD -d 192.168.3.7/32 -i eth1 -p tcp -m tcp --dport 4662 -j ACCEPT
-A FORWARD -d 192.168.3.7/32 -i eth1 -p udp -m udp --dport 4672 -j ACCEPT
-A FORWARD -d 192.168.3.10/32 -i eth1 -p tcp -m tcp --dport 4662 -j ACCEPT
-A FORWARD -d 192.168.3.10/32 -i eth1 -p udp -m udp --dport 4672 -j ACCEPT
COMMIT
# Completed on Sun Nov 1 12:24:11 2009
Kod: Zaznacz cały
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.3.0 * 255.255.255.0 U 0 0 0 br0
10.11.200.0 * 255.255.248.0 U 0 0 0 eth1
default 10.11.200.1 0.0.0.0 UG 100 0 0 eth1
Byłbym bardzo wdzięczny za pomoc i ew. sugestie dotyczące mojej konfiguracji. Wszelkie sugestie nie związane ściśle z moim pytaniem a dotyczące możliwych ulepszeń albo poprawek w moich regułach iptables i/lub konfiguracji DHCP również bardzo mile widziane.