Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- remote=1.2.3.4 # MIX server
- dev=eth0.1036
- modules='ip_gre macvlan bonding'
- sn=D-W1234567890123
- snh=57313233343536373839303930313
- loadmodules() {
- for i in $modules; do
- grep -q $i /proc/modules || modprobe $i
- done
- }
- unloadmodules() {
- for i in $modules; do
- grep -q $i /proc/modules && modprobe -r $i
- done
- }
- localinit() {
- loadmodules
- ip addr add 10.0.0.2/24 dev bond0
- ip link set dev grezz$i up
- iptables -t mangle -A FORWARD -o bond0 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
- iptables -t nat -A POSTROUTING -o bond0 -j MASQUERADE
- ip route add default via 10.0.0.1
- }
- localadd() {
- i=$(awk -F'grezz|:' '/^grezz/{m=$2 > m ? $2 : m}END{print m}' /proc/net/dev)
- i=$((i + 1))
- mac=$(ip link show dev $dev |awk '/ether/{print$2}')
- macx=$(echo $mac |awk -F: '{printf $1":"$2":"$3":"$4":"$5":%02x", xor(strtonum("0x"$6),'"$i)}")
- ip link add link $dev veth$i address $macx type macvlan
- ip link set dev veth$i up
- pppd debug updetach call data ifname pppoe$i user $sn$i password 'VJ|5.4.8.1.160.8.24|RA|CGN=1|pw=Vodafone' veth$i host-uniq $snh$i nodefaultroute
- ip=$(ip addr show dev pppoe$i |awk '/inet/{print$2}')
- ip rule add from $ip table 100$i
- ip route add default dev pppoe$i table 100$i
- ip link add grezz$i type gretap local $ip remote $remote
- ip link set dev grezz$i up
- ssh -b $ip $remote 'multiwan remoteadd'
- ifenslave bond0 grezz$i
- }
- localcleanup() {
- killall -w pppd
- unloadmodules
- i=1001
- while ip rule del lookup $i; do i=$((i + 1)); done
- iptables -t mangle -D FORWARD -o bond0 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
- iptables -t nat -D POSTROUTING -o bond0 -j MASQUERADE
- }
- remoteinit() {
- loadmodules
- ip addr add 10.0.0.1/24 dev bond0
- ip link set dev bond0 up mtu 1454
- }
- remoteadd() {
- i=$(awk -F'grezz|:' '/^grezz/{print $2}' /proc/net/dev)
- i=$((i + 1))
- ip link add grezz$i type gretap remote ${SSH_CLIENT%% *}
- ip link set dev grezz$i up
- ifenslave bond0 grezz$i
- }
- remotecleanup() {
- unloadmodules
- i=1001
- while ip rule del lookup $i; do i=$((i + 1)); done
- }
- $1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement