Just nu i M3-nätverket
Gå till innehåll
henriko

Problem med att routa mellan två nät - Ubuntu Server 10.04

Rekommendera Poster

henriko

Jag har en Ubuntu Server 10.04 som står som filserver och router i ett mindre nätverk. Den har ett nätverkskort utåt mot omvärlden, och tre nätverkskort för olika interna nät.

 

Allt verkar fungera utom att maskiner i de olika interna näten inte kan nå varandra.

 

Jag vill framförallt att Windows-klienter på eth2 ska kunna nå ett par skrivare på eth1.

 

eth0 är kortet utåt omvärden, WAN.

eth1 är kortet mot ett vanligt LAN med stationära maskiner och skrivare i.

eth2 är kortet mot ett WLAN där några bärbara Windows-maskiner.

eth3 är oanvänt (och tänkt för "osäkra datorer")

 

Ok, så här ser konfigureringen av serverns nätverkskort ut:

cat /etc/network/interfaces

auto eth0
iface eth0 inet static
       address 192.168.9.2
       netmask 255.255.255.0
       network 192.168.9.0
       broadcast 192.168.9.255
       # dns-* options are implemented by the resolvconf package, if installed
       # dns-nameservers 195.67.199.8 195.67.199.9 195.67.199.10
       # dns-nameservers 192.168.10.1
       # dns-search localdomain
       gateway 192.168.9.1

auto eth1
iface eth1 inet static
       address 192.168.10.1
       netmask 255.255.255.0
       network 192.168.10.0
       broadcast 192.168.10.255
auto eth1:2
iface eth1:2 inet static
       address 192.168.10.2
       netmask 255.255.255.0
       network 192.168.10.0
       broadcast 192.168.10.255

auto eth2
iface eth2 inet static
       address 192.168.11.1
       netmask 255.255.255.0
       network 192.168.11.0
       broadcast 192.168.11.255

auto eth3
iface eth3 inet static
       address 192.168.12.1
       netmask 255.255.255.0
       network 192.168.12.0
       broadcast 192.168.12.255

(192.168.9.1 är vägen ut på Internet)

(Ja, eth1 har en extra ip-adress för att XP:s CIFS-hantering inte tål DNS och CNAME-alias. Fast det tror jag är inte har med saken att göra.)

 

Konigureringen av alla andra maskiner ser ut så här:

cat /etc/dhcp3/dhcpd.conf

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;

option domain-name "localdomain";

subnet 192.168.10.0 netmask 255.255.255.0 {
 option routers 192.168.10.1;
 option domain-name-servers 192.168.10.1;
 option broadcast-address 192.168.10.255;
 range 192.168.10.32 192.168.10.191;
}
subnet 192.168.11.0 netmask 255.255.255.0 {
 option routers 192.168.11.1;
 option domain-name-servers 192.168.11.1;
 option broadcast-address 192.168.11.255;
 range 192.168.11.32 192.168.11.191;
}
subnet 192.168.12.0 netmask 255.255.255.0 {
 option routers 192.168.12.1;
 option domain-name-servers 192.168.12.1;
 option broadcast-address 192.168.12.255;
 range 192.168.12.32 192.168.12.191;
}

 

Naturligtvis har jag slagit på "ip forwarding":

cat /proc/sys/net/ipv4/ip_forward

1

 

Och så här ser route-tabellen ut

route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.12.0    0.0.0.0         255.255.255.0   U     0      0        0 eth3
192.168.11.0    0.0.0.0         255.255.255.0   U     0      0        0 eth2
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.9.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.9.1     0.0.0.0         UG    100    0        0 eth0

 

Mitt brandväggs-skript ser ut så här:

echo -n "NAT Firewall configuration..."
echo $1

setup_nat()
{
modprobe iptable_nat
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -s 192.168.10.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -d 192.168.10.0/24 -m state --state ESTABLISHED,RELATED -i eth0 -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -s 192.168.11.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -d 192.168.11.0/24 -m state --state ESTABLISHED,RELATED -i eth0 -j ACCEPT

iptables -t nat -A POSTROUTING -s 192.168.12.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -s 192.168.12.0/24 -o eth0 -j ACCEPT
iptables -A FORWARD -d 192.168.12.0/24 -m state --state ESTABLISHED,RELATED -i eth0 -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A INPUT -i eth2 -j ACCEPT
}

reset_firewall()
{
iptables -F
iptables -X
iptables -t filter -F
iptables -t filter -X
iptables -t filter -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -Z
iptables -t raw -F
iptables -t raw -X
iptables -t raw -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
}

case "$1" in
       start)
               reset_firewall
               setup_nat
               ;;

       stop)
               reset_firewall
               ;;

       restart)
               reset_firewall
               setup_nat
               ;;

       *)
               echo '?'
               ;;
esac

och jag provat både med och utan mina brandväggsregler. (Både "sh /etc/init.d/firewall start" och "sh /etc/init.d/firewall stop".)

 

Läget nu är att jag från servern kan pinga "allt", inklusive tex skrivaren 192.168.10.9 och även surfa till den med lynx.

 

Men om jag från Windows-maskinen 192.168.11.32 försöker pinga eller surfa till 192.168.10.9 får jag inget svar. Men jag får svar från tex både 192.168.11.1 och 192.168.10.1, "samt resten av Internet".

 

Vad är det jag missat? Vad är det mer som behövs?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...