[Eisfair] DHCP Server; Frage zu Default Gateway bei mehreren Netzwerkkarten
Marcus Roeckrath
marcus.roeckrath at gmx.de
Do Jun 28 09:09:45 CEST 2018
Hallo Kay,
Kay Martinen wrote:
>> Wenn das route-Kommando keine DefaultRouten, erkennbar an 0.0.0.0 zu
>> Beginn einer Ausgabezeile des route-Kommandos, liefert, wird das
>> DefaultGateway aus der Base-Konfiguration genommen.
>
> Meintest du eventuell netz-routen statt defaultrouten?
Es geht um folgenden Code aus /var/install/config.d/dhcpd.sh:
# determine gateways from default routes
defaultRoutes="$(/sbin/route -A inet -n | grep '^0.0.0.0')"
_oldIFS="$IFS"
# IFS=$'\n'
IFS=$(printf '\n')
DHCPD_TEMP_IPV4_GATEWAY_N=0
for currentRoute in $defaultRoutes
do
IFS="$_oldIFS"
set $currentRoute
DHCPD_TEMP_IPV4_GATEWAY_N=$(/usr/bin/expr $DHCPD_TEMP_IPV4_GATEWAY_N + 1)
eval 'DHCPD_TEMP_IPV4_GATEWAY_'$DHCPD_TEMP_IPV4_GATEWAY_N='"$2"'
dhcpdTrace "(route) found gateway: $2"
done
IFS="$_oldIFS"
# no default routes, use gateway from base config
if [ "$DHCPD_TEMP_IPV4_GATEWAY_N" -eq "0" ]
then
for idx in $(seq $IP_NET_N)
do
eval gateway='$IP_NET_'$idx'_GATEWAY'
if [ -n "$gateway" ]
then
DHCPD_TEMP_IPV4_GATEWAY_N=$(/usr/bin/expr $DHCPD_TEMP_IPV4_GATEWAY_N + 1)
eval 'DHCPD_TEMP_IPV4_GATEWAY_'$DHCPD_TEMP_IPV4_GATEWAY_N='"$gateway"'
dhcpdTrace "(base) found gateway: $gateway"
fi
done
fi
> Oder Zweite Spalte, statt der ersten?
Aus der Ausgabe des route-Befehls werden nur die Zeilen mit 0.0.0.0 am
Zeilenanfang ausgewertet.
> Beispiel von einem host mit vier interfaces:
>
>> route -n
>> Kernel-IP-Routentabelle
>> Ziel Router Genmask Flags Metric Ref Use
>> Iface
>> 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0
>> eth0
Der Code greift sich nur diese Zeile.
> Ich sehe da genau EIN Default-gateway, aber vier netzrouten.
Rufst du route ohne -n aus, bekommst du am Zeilenbeginn default statt
0.0.0.0.
Ich habe mich mit solchen Dingen allerdings auch bislang zu wenig intesov
beschäftigt, dass ich da nichts wirklich erhellendes beitragen kann.
--
Gruss Marcus
Mehr Informationen über die Mailingliste Eisfair