skusenosti so SuSe (long)

Pavel Janík ml. Pavel na Janik.cz
Pátek Prosinec 1 20:37:51 CET 2000


   From: Jan Satko <satko na quanto.nr.sanet.sk>
   Date: Fri, 1 Dec 2000 09:38:29 +0100 (CET)

Přeji příjemný večer,

   > Vcera som mal to potesenie robit so SuSe tusim 7.0.

to jsem rád, já mám zrovna to potěšení pracovat se SuSE Linuxem 7.0 teď :-)

   > 1. Mam spravenu dobru routovaciu tabulku. V jadre je zapnuty forwarding.
   > Ale system neroutuje. Zacne routovat az ked aplikujem script pre
   > firewall(dodany). Ten nastavi nejake pravidla cez ipchains.
   > Preto sa pytam ci je nutne mat nieco v ipchains, aby mi system routoval.
   > Naposledy som routoval este s rh4.2.
   > Podotknem ze pravidla v ipchains boli vsetky na ACCEPT a boli prazdne.

Možná byste nám mohl poskytnout i pár dalších informací, např. verzi jádra,
kterou používáte, hodnotu proměnné IP_FORWARD v souboru /etc/rc.config,
případně si ověřte, zda opravdu máte povolený forwarding
(/proc/sys/net/ipv4/ip_forward obsahuje 1).

Obecně SuSE Linux 7.0 nastavuje forwardování podle proměnné IP_FORWARD ze
souboru /etc/rc.config. Poídvejte se do skriptu /sbin/init.d/boot:

,----[ /sbin/init.d/boot ]
| . /etc/rc.config
| ...
| #
| # Enable IP forwarding ?
| #
| if test -e /proc/sys/net/ipv4/ip_forward -a -n "$IP_FORWARD" ; then
|     case $IP_FORWARD in
|       yes)
|         echo -n "Enabling IP forwarding"
|         echo "1" > /proc/sys/net/ipv4/ip_forward
|       ;;
|       *)
|         echo -n "Disabling IP forwarding"
|         echo "0" > /proc/sys/net/ipv4/ip_forward
|       ;;
|     esac
|     rc_status -v -r
| fi
`----

Tento skript tedy automaticky nastavuje obsah souboru
/proc/sys/net/ipv4/ip_forward při bootu, kdy je volán.

Jinou otázkou je ale SuSEfirewall (RPM balík firewals). Tento skript
obsahuje vlastní mechanismus pro nastavení forwardování paketů mezi
interfaci. V konfiguračním souboru SuSEfirewall je mimo jiné obsaženo:

,----[ /etc/rc.config.d/firewall.rc.config ]
| #
| # 5.)
| # Should routing between the internet, dmz and internal network be activated?
| # REQUIRES: FW_DEV_INT or FW_DEV_DMZ
| #
| # You need only set this to yes, if you either want to masquerade internal
| # machines or allow access to the dmz (or internal machines, but this is not
| # a good idea). This option supersedes IP_FORWARD from /etc/rc.config!
| #
| # Setting this option one alone doesn't do anything. Either activate
| # massquerading with FW_MASQUERADE below if you want to masquerade your
| # internal network to the internet, or configure FW_FORWARD_TCP and/or
| # FW_FORWARD_UDP to define what is allowed to be forwarded!
| #
| # Choice: "yes" or "no", defaults to "no"
| #
| FW_ROUTE="no"
`----

Tento konfigurační soubor je načten vlastním firewallovacím skriptem:

,----[ /sbin/SuSEfirewall ]
| FWCONFIG="/etc/rc.config.d/firewall.rc.config"
| ...
| . $FWCONFIG
`----

a poté je podle této proměnné nastaven forwarding:

,----[ /sbin/SuSEfirewall ]
| test "$FW_ROUTE" = yes || (echo 0 >/proc/sys/net/ipv4/ip_forward) >/dev/null 2>&1
| test "$FW_ROUTE" = yes && echo 1 > /proc/sys/net/ipv4/ip_forward
`----

Pokud tedy v konfiguraci firewall nemáte uvedeno "yes", je forwarding opět
vypnut a je to tak správně. Napište nám prosím, kde je chyba.

   > 2. V subore /etc/route.conf nastavim routovacie pravidla.
   > Napisem rcroute stop (zrusil vsetko okrem loopback).
   > Dalej rcroute start a nabehnu pekne vsetky routovacie pravidla.
   > Avsak ked system restartnem tak polovica pravidiel mi nenabehne.
   > 
   > Konkretne nabehnu mi zaznamy v routovacej tabulke
   > 192.168.0.0 0.0.0.0 255.255.255.0 eth0
   > 192.168.1.0 0.0.0.0 255.255.255.0 eth1
   > Ale nenabehnu mi zaznamy:
   > 192.168.0.0 192.168.0.1 255.255.255.0 eth0
   > 192.168.1.0 192.168.1.3 255.255.255.0 eth1
   > 
   > Az ked zase spravim postup 1.rcroute stop 2.rcroute start.
   > Vidi sa mi to prichitene za vlasy. Preco pri reboote nechcu nabenut, ale
   > rucne nabehnu ?

To netuším, ale mohl byste nám vysvětlit, co těmito příkazy chcete
dosáhnout? Nastavujete vlastně dvě routy pro síť 192.168.0.0 a dvě routy
pro 192.168.1.0? Přičemž obě dvě Vámi posledně uvedené routy jsou
nesmyslné... Když se na to tak dívám, tak se mi to celé zdá
podivné. Nejprve nastavíte normální routu pro síť 192.168.0.0, která je
přímo připojena na eth0. Potom uděláte totéž pro síť 192.168.1.0 na
rozhraní eth1. Další dvě routy jsou divné, protože se snažíte o nastavení
routy pro první síť přes gw 192.168.0.1. Hmm, tohle snad ani nemůže
fungovat...

P.S. Distribuce SuSE Linux se jmenuje opravdu SuSE Linux a nikoli SuSe
Linux nebo SUSE Linux.
-- 
Pavel Janík ml.
Pavel na Janik.cz
http://www.janik.cz


Další informace o konferenci Linux