-
Notifications
You must be signed in to change notification settings - Fork 228
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
semi-automated PD on raspbian scripts
- Loading branch information
1 parent
2071966
commit 702d768
Showing
6 changed files
with
201 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -31,6 +31,7 @@ | |
NAT64=1 | ||
DNS64=0 | ||
DHCPV6_PD=0 | ||
DHCPV6_PD_REF=1 | ||
NETWORK_MANAGER=0 | ||
BACKBONE_ROUTER=1 | ||
BORDER_ROUTING=1 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
#!/bin/bash | ||
|
||
customise_dhcpcd_conf() | ||
{ | ||
sudo tee /etc/dhcpcd.conf > /dev/null <<EOF | ||
# A sample configuration for dhcpcd. | ||
# See dhcpcd.conf(5) for details. | ||
# Allow users of this group to interact with dhcpcd via the control socket. | ||
#controlgroup wheel | ||
# Inform the DHCP server of our hostname for DDNS. | ||
#hostname | ||
# Use the hardware address of the interface for the Client ID. | ||
#clientid | ||
# or | ||
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361. | ||
# Some non-RFC compliant DHCP servers do not reply with this set. | ||
# In this case, comment out duid and enable clientid above. | ||
#duid | ||
# Rapid commit support. | ||
# Safe to enable by default because it requires the equivalent option set | ||
# on the server to actually work. | ||
option rapid_commit | ||
# A ServerID is required by RFC2131. | ||
#require dhcp_server_identifier | ||
noipv6rs | ||
# disable routing solicitation | ||
# denyinterfaces eth1 # Don't touch other_interfaces at all | ||
interface eth0 | ||
ipv6rs | ||
iaid 1 | ||
ia_pd 2/::/64 - | ||
EOF | ||
} | ||
|
||
# customise_dhcpcd_hooks90 | ||
# { | ||
# #dhcpcd.enter-hook | ||
# sudo tee /etc/dhcpcd.enter-hook > /dev/null <<EOF | ||
|
||
# EOF | ||
|
||
# #dhcpcd.exit-hook | ||
# sudo tee /etc/dhcpcd.exit-hook > /dev/null <<EOF | ||
# EOF | ||
# } | ||
|
||
dhcp6_pd_ref_stop() | ||
{ | ||
if [[ -f "/etc/dhcpcd.conf.orig" ]]; then | ||
sudo mv /etc/dhcpcd.conf.orig /etc/dhcpcd.conf | ||
fi | ||
# sudo systemctl restart dhcpcd | ||
sudo rm /etc/dhcpcd.enter-hook /etc/dhcpcd.exit-hook | ||
|
||
} | ||
|
||
dhcp6_pd_ref_start() | ||
{ | ||
if [[ -f "/etc/dhcpcd.conf" ]]; then | ||
sudo mv /etc/dhcpcd.conf /etc/dhcpcd.conf.orig | ||
fi | ||
customise_dhcpcd_conf | ||
# Add dhcpcd.hooks | ||
sudo mv ~/repo/script/reference-device/dhcpcd.enter-hook /etc/dhcpcd.enter-hook | ||
sudo mv ~/repo/script/reference-device/dhcpcd.exit-hook /etc/dhcpcd.exit-hook | ||
sudo chmod +x /etc/dhcpcd.enter-hook /etc/dhcpcd.exit-hook | ||
|
||
} | ||
|
||
dhcp6_pd_ref "$@" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
#!/bin/bash | ||
|
||
WAN_INTERFACE="eth0" | ||
WPAN_INTERFACE="wpan0" | ||
RADVD_CONF="/etc/radvd.conf" | ||
LOG_TAG="dhcpcd.enter.hook:" | ||
|
||
|
||
config_ra() | ||
{ | ||
logger -t "$LOG_TAG $reason start config radvd" | ||
|
||
sudo tee "${RADVD_CONF}" > /dev/null <<EOF | ||
interface ${WPAN_INTERFACE} | ||
{ | ||
AdvSendAdvert on; | ||
prefix ${1}/${2} | ||
{ | ||
AdvOnLink on; | ||
AdvAutonomous on; | ||
AdvRouterAddr off; | ||
AdvPreferredLifetime ${3}; | ||
AdvValidLifetime ${4}; | ||
}; | ||
}; | ||
EOF | ||
} | ||
|
||
|
||
if [ "${interface}" = "eth0" ]; then | ||
|
||
for var in $(env); do | ||
# Split the variable into name and value | ||
name="${var%%=*}" | ||
value="${var#*=}" | ||
# Log to syslog | ||
logger -t "$LOG_TAG $reason sysenv: " "$name=$value" | ||
done | ||
|
||
case $reason in | ||
# | DELEGATED6 | BOUND6 | RENEW6 | REBIND6 | ROUTERADVERT | ||
DELEGATED6 | REBIND6 | RENEW6 | BOUND6 ) | ||
logger "$LOG_TAG prefix is $new_dhcp6_ia_pd1_prefix1 length is $new_dhcp6_ia_pd1_prefix1_length pltime is $new_dhcp6_ia_pd1_prefix1_pltime vltime is $new_dhcp6_ia_pd1_prefix1_vltime" | ||
config_ra $new_dhcp6_ia_pd1_prefix1 $new_dhcp6_ia_pd1_prefix1_length $new_dhcp6_ia_pd1_prefix1_pltime $new_dhcp6_ia_pd1_prefix1_vltime | ||
# "$new_dhcp6_ia_pd1_prefix1" "$new_dhcp6_ia_pd1_prefix1_pltime" "$new_dhcp6_ia_pd1_prefix1_vltime" | ||
sudo systemctl restart radvd || logger "$LOG_TAG Failed to restart radvd" | ||
;; | ||
# RENEW6) | ||
# if ["${new_dhcp6_ia_pd1_prefix1}" == "${old_dhcp6_ia_pd1_prefix1}"]; then | ||
# { | ||
# config_ra $new_dhcp6_ia_pd1_prefix1 $new_dhcp6_ia_pd1_prefix1_length $new_dhcp6_ia_pd1_prefix1_pltime $new_dhcp6_ia_pd1_prefix1_vltime | ||
# sudo systemctl restart radvd || logger "$LOG_TAG Failed to restart radvd" | ||
# } | ||
# else | ||
# { | ||
|
||
# } | ||
esac | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
#!/bin/bash | ||
#dhcpcd.exit-hook | ||
|
||
|
||
WAN_INTERFACE="eth0" | ||
WPAN_INTERFACE="wpan0" | ||
|
||
RADVD_CONF="/etc/radvd.conf" | ||
LOG_TAG="dhcpcd.exit.hook:" | ||
|
||
config_ra() | ||
{ | ||
logger -t "$LOG_TAG $reason start config radvd" | ||
|
||
sudo tee "${RADVD_CONF}" > /dev/null <<EOF | ||
interface ${WPAN_INTERFACE} | ||
{ | ||
AdvSendAdvert on; | ||
prefix ${1}/${2} | ||
{ | ||
AdvOnLink on; | ||
AdvAutonomous on; | ||
AdvRouterAddr off; | ||
AdvPreferredLifetime ${3}; | ||
AdvValidLifetime ${4}; | ||
}; | ||
}; | ||
EOF | ||
} | ||
|
||
if [ “${interface}” = “eth0” ]; then | ||
|
||
for var in $(env); do | ||
# Split the variable into name and value | ||
name="${var%%=*}" | ||
value="${var#*=}" | ||
# Log to syslog | ||
logger -t "$LOG_TAG $reason sysenv: " "$name=$value" | ||
done | ||
|
||
case $reason in | ||
EXPIRE6 | STOP6) | ||
config_ra $old_dhcp6_ia_pd1_prefix1 $old_dhcp6_ia_pd1_prefix1 0 0 | ||
sudo systemctl restart radvd | ||
;; | ||
esac | ||
fi | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters