Amar Cosic <[email protected]> writes:
> Hello list
>
> My mind is just "locked" at the moment and I am trying to figure out
> what am I doing wrong here. I have 4 static IP's on server machine
> and I have something like this in /etc/conf.d/net :
>
>
>
> config_eth0=( "77.xxx.104.14/24" )
> routes_eth0=( "default via 77.xxx.104.1" )
> config_eth0:1=( "77.xxx.104.100/24" )
> routes_eth0:1=( "default via 77.xxx.104.1" )
> config_eth0:2=( "77.xxx.104.101/24" )
> routes_eth0:2=( "default via 77.xxx.104.1" )
> config_eth0:3=( "77.xxx.105.100/24" )
> routes_eth0:3=( "default via 77.xxx.105.1" )
>
>
> eth0 works just fine while other ones fail. Could you help me with
> this one ?
Try emerging 'iproute2' (if not already installed) and then adding the
following line to /etc/iproute2/rt_tables
1 altlan
and then using the following in /etc/conf.d/net
modules-"iproute2"
config_eth0=( "77.xxx.104.14/24" "77.xxx.104.100/32" "77.xxx.104.101/32"
"77.xxx.105.100/24" )
routes_eth0=( "default via 77.xxx.104.1"
"default via 77.xxx.105.1 table altlan"
"77.xxx.105.0/24 table altlan" )
rules_eth0=( "from 77.xxx.105.100 table altlan" )
postup() {
# This function could be used, for example, to register with a
# dynamic DNS service. Another possibility would be to
# send/receive mail once the interface is brought up.
# Here is an example that allows the use of iproute rules
# which have been configured using the rules_eth0 variable.
#rules_eth0=" \
# 'from 24.80.102.112/32 to 192.168.1.0/24 table localnet priority
100' \
# 'from 216.113.223.51/32 to 192.168.1.0/24 table localnet
priority 100' \
#"
eval set -- $\rules_${IFVAR}
if [ $# != 0 ]; then
einfo "Adding IP policy routing rules"
eindent
# Ensure that the kernel supports policy routing
if ! ip rule list | grep -q "^"; then
eerror "You need to enable IP Policy Routing
(CONFIG_IP_MULTIPLE_TABLES)"
eerror "in your kernel to use ip rules"
else
for x; do
ebegin "${x}"
ip rule add ${x} dev "${IFACE}"
eend $?
done
fi
eoutdent
# Flush the cache
ip route flush cache dev "${IFACE}"
fi
}
postdown() {
# Automatically erase any ip rules created in the example postup above
if interface_exists "${IFACE}"; then
# Remove any rules for this interface
local rule
ip rule list | grep " iif ${IFACE}[ ]*" | {
while read rule; do
rule="${rule#*:}"
ip rule del ${rule}
done
}
# Flush the route cache
ip route flush cache dev "${IFACE}"
fi
# Return 0 always
return 0
}