|
From: <abe...@us...> - 2015-11-02 15:51:28
|
Revision: 7302
http://sourceforge.net/p/astlinux/code/7302
Author: abelbeck
Date: 2015-11-02 15:51:26 +0000 (Mon, 02 Nov 2015)
Log Message:
-----------
dhcpv6, add support for [IPv4/DHCPv6], seems some ISP's will do this to pull static prefixes on business accounts
Modified Paths:
--------------
branches/1.0/project/astlinux/target_skeleton/etc/init.d/network
Added Paths:
-----------
branches/1.0/project/astlinux/target_skeleton/etc/ifplugd/dhcp6c.action
Added: branches/1.0/project/astlinux/target_skeleton/etc/ifplugd/dhcp6c.action
===================================================================
--- branches/1.0/project/astlinux/target_skeleton/etc/ifplugd/dhcp6c.action (rev 0)
+++ branches/1.0/project/astlinux/target_skeleton/etc/ifplugd/dhcp6c.action 2015-11-02 15:51:26 UTC (rev 7302)
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+interface="$1"
+
+action="$2"
+
+kill_dhcp6c()
+{
+ if [ -f "/var/run/dhcp6c-${interface}.pid" ]; then
+ kill $(cat "/var/run/dhcp6c-${interface}.pid") 2>/dev/null
+ sleep 1
+ fi
+}
+
+case $action in
+
+ up)
+ if [ -f "/etc/wide-dhcpv6/dhcp6c-${interface}.conf" ]; then
+ kill_dhcp6c
+ dhcp6c -c /etc/wide-dhcpv6/dhcp6c-${interface}.conf -p /var/run/dhcp6c-${interface}.pid ${interface}
+ fi
+ ;;
+
+ down)
+ kill_dhcp6c
+ ;;
+
+esac
+
+exit 0
Property changes on: branches/1.0/project/astlinux/target_skeleton/etc/ifplugd/dhcp6c.action
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Modified: branches/1.0/project/astlinux/target_skeleton/etc/init.d/network
===================================================================
--- branches/1.0/project/astlinux/target_skeleton/etc/init.d/network 2015-11-01 23:55:07 UTC (rev 7301)
+++ branches/1.0/project/astlinux/target_skeleton/etc/init.d/network 2015-11-02 15:51:26 UTC (rev 7302)
@@ -540,38 +540,7 @@
rm -f /tmp/etc/ppp/pppoe.conf
fi
- #Static IP
- if [ -n "$EXTIP" -a -n "$EXTIF" ] && ! isextppp extif; then
-
- case $EXTIF in
- wp)
- ;;
- hdlc0|pvc0)
- ip tunnel add $EXTIF mode ipip remote $EXTGW local $EXTIP
- ip link set dev $EXTIF up
- ;;
- *)
- ip addr add $EXTIP/$EXTNM brd + dev $EXTIF
- if [ -n "$EXTIP_ALIAS" ]; then
- alias_interface add $EXTIF "$EXTIP_ALIAS"
- fi
- if [ "$IPV6" = "yes" -a -n "$EXTIPV6" ]; then
- ip -6 addr add $EXTIPV6 dev $EXTIF
- fi
- ip link set dev $EXTIF up
- ;;
- esac
-
- if [ -n "$EXTGW" ]; then
- ip route add default via $EXTGW dev $EXTIF
- fi
- if [ "$IPV6" = "yes" -a -n "$EXTGWIPV6" ]; then
- ip -6 route add default via $EXTGWIPV6 dev $EXTIF metric 1
- fi
- #end static IP
- fi
-
- #Static IP on 2nd IF
+ #Static IP Failover Interface
if [ -n "$EXT2IP" -a -n "$EXT2IF" ] && ! isextppp ext2if; then
case $EXT2IF in
@@ -582,14 +551,24 @@
ip link set dev $EXT2IF up
;;
*)
+ up_delay=0
ip addr add $EXT2IP/$EXT2NM brd + dev $EXT2IF
if [ -n "$EXT2IP_ALIAS" ]; then
alias_interface add $EXT2IF "$EXT2IP_ALIAS"
fi
- if [ "$IPV6" = "yes" -a -n "$EXT2IPV6" ]; then
- ip -6 addr add $EXT2IPV6 dev $EXT2IF
+ if [ "$IPV6" = "yes" ]; then
+ if [ "$EXT2DHCPV6_CLIENT_ENABLE" = "yes" ]; then
+ up_delay=4
+ init_dhcp6c ext2if $EXT2IF
+ ifplugd -apq -t2 -u3 -d3 -i $EXT2IF -r /etc/ifplugd/dhcp6c.action
+ elif [ -n "$EXT2IPV6" ]; then
+ ip -6 addr add $EXT2IPV6 dev $EXT2IF
+ fi
fi
ip link set dev $EXT2IF up
+ if [ $up_delay -gt 0 ]; then
+ sleep $up_delay
+ fi
;;
esac
@@ -606,6 +585,46 @@
#end static ip on 2nd if
fi
+ #Static IP
+ if [ -n "$EXTIP" -a -n "$EXTIF" ] && ! isextppp extif; then
+
+ case $EXTIF in
+ wp)
+ ;;
+ hdlc0|pvc0)
+ ip tunnel add $EXTIF mode ipip remote $EXTGW local $EXTIP
+ ip link set dev $EXTIF up
+ ;;
+ *)
+ ip addr add $EXTIP/$EXTNM brd + dev $EXTIF
+ if [ -n "$EXTIP_ALIAS" ]; then
+ alias_interface add $EXTIF "$EXTIP_ALIAS"
+ fi
+ if [ "$IPV6" = "yes" -a -n "$EXTIPV6" ] && \
+ [ "$DHCPV6_CLIENT_ENABLE" != "yes" -o "$DHCPV6_CLIENT_REQUEST_ADDRESS" = "no" ]; then
+ ip -6 addr add $EXTIPV6 dev $EXTIF
+ fi
+ ip link set dev $EXTIF up
+ if [ "$IPV6" = "yes" -a "$DHCPV6_CLIENT_ENABLE" = "yes" ]; then
+ sleep 4
+ init_dhcp6c extif $EXTIF
+ dhcp6c -c /etc/wide-dhcpv6/dhcp6c-$EXTIF.conf -p /var/run/dhcp6c-$EXTIF.pid $EXTIF
+ ifplugd -apq -t2 -u3 -d3 -i $EXTIF -r /etc/ifplugd/dhcp6c.action
+ sleep 2
+ fi
+ ;;
+ esac
+
+ if [ -n "$EXTGW" ]; then
+ ip route add default via $EXTGW dev $EXTIF
+ fi
+ if [ "$IPV6" = "yes" -a -n "$EXTGWIPV6" ] && \
+ [ "$DHCPV6_CLIENT_ENABLE" != "yes" -o "$DHCPV6_CLIENT_REQUEST_ADDRESS" = "no" ]; then
+ ip -6 route add default via $EXTGWIPV6 dev $EXTIF metric 1
+ fi
+ #end static IP
+ fi
+
#DHCP Failover Interface
if [ -n "$EXT2IF" -a -z "$EXT2IP" ] && ! isextppp ext2if; then
if [ "$IPV6" = "yes" -a "$EXT2DHCPV6_CLIENT_ENABLE" = "yes" ]; then
@@ -616,12 +635,15 @@
sleep 4
# No DHCPv6 - Static IPv6 if defined
- if [ "$IPV6" = "yes" -a -n "$EXT2IPV6" -a -n "$EXT2GWIPV6" ] && \
- [ "$EXT2DHCPV6_CLIENT_ENABLE" != "yes" ]; then
- ip -6 addr add $EXT2IPV6 dev $EXT2IF
- for x in $EXT2ROUTESIPV6; do
- ip -6 route add $x via $EXT2GWIPV6 dev $EXT2IF metric 1
- done
+ if [ "$IPV6" = "yes" ]; then
+ if [ -n "$EXT2IPV6" -a "$EXT2DHCPV6_CLIENT_ENABLE" != "yes" ]; then
+ ip -6 addr add $EXT2IPV6 dev $EXT2IF
+ fi
+ if [ -n "$EXT2GWIPV6" ]; then
+ for x in $EXT2ROUTESIPV6; do
+ ip -6 route add $x via $EXT2GWIPV6 dev $EXT2IF metric 1
+ done
+ fi
fi
fi
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|