Commit 10021686 authored by nanahira's avatar nanahira

updates for nextgen router

parent cd1d518e
......@@ -2,23 +2,6 @@
- hosts: wg
become: true
tasks:
- name: clean network gen1
shell: 'wg-quick down {{item}}'
ignore_errors: true
with_items:
- wg0
- wgmc
- qcloud
- name: clean network gen1
systemd:
name: 'wg-quick@{{item}}'
state: stopped
enabled: false
ignore_errors: true
with_items:
- wg0
- wgmc
- qcloud
- name: post scripts
template:
src: scripts/{{item}}.sh.j2
......
......@@ -8,11 +8,7 @@ FwMark = {{conn.localGatewayMark}}
MTU = {{conn.mtu|int - 80}}
Table = off
{% if dns != "" and (inventory_hostname_short == "103" and conn.name == "mc-drjin" or inventory_hostname_short == "218" and conn.name != "mc-drjin") %}
DNS = {{dns}}
{% endif %}
PostUp = dev=%i localPeerAddress={{conn.localPeerAddress}} remotePeerAddress={{conn.remotePeerAddress}} remoteMark={{conn.remoteMark}} inbound={{conn.inbound}} outbound={{conn.outbound}} mtu={{conn.mtu|int - 80}} /etc/wireguard/postup.sh
PreDown = dev=%i localPeerAddress={{conn.localPeerAddress}} remotePeerAddress={{conn.remotePeerAddress}} remoteMark={{conn.remoteMark}} inbound={{conn.inbound}} outbound={{conn.outbound}} mtu={{conn.mtu|int - 80}} /etc/wireguard/predown.sh
[Peer]
......
......@@ -9,9 +9,6 @@ FwMark = {{conn.localGatewayMark}}
{% endif %}
MTU = {{conn.mtu|int - 80}}
Table = off
{% if dns != "" and (inventory_hostname_short == "103" and conn.name == "mc-drjin" or inventory_hostname_short == "218" and conn.name != "mc-drjin") %}
DNS = {{dns}}
{% endif %}
PostUp = dev=%i localPeerAddress={{conn.localPeerAddress}} remotePeerAddress={{conn.remotePeerAddress}} remoteMark={{conn.remoteMark}} inbound={{conn.inbound}} outbound={{conn.outbound}} mtu={{conn.mtu|int - 80}} /etc/wireguard/postup.sh
PreDown = dev=%i localPeerAddress={{conn.localPeerAddress}} remotePeerAddress={{conn.remotePeerAddress}} remoteMark={{conn.remoteMark}} inbound={{conn.inbound}} outbound={{conn.outbound}} mtu={{conn.mtu|int - 80}} /etc/wireguard/predown.sh
[Peer]
......
#!/usr/bin/env bash
{% for net in route_lists.mycard %}
ip rule del pref 299 to {{net}} lookup main
{% endfor %}
# 针对网关设置mark
{% for gateway in gateways %}
{% if gateway.dev_or_via != "" %}
{% if gateway.isTun %}
DEV={{gateway.dev_or_via}}
ip route del default dev $DEV table {{gateway.mark}}
iptables -t mangle -D PREROUTING ! -p ospf -i $DEV -m set ! --match-set mycard src -j CONNMARK --set-xmark {{gateway.mark}}
{% else %}
ping {{gateway.dev_or_via}} -c 1
NEIGH_LINE=$(ip neigh show {{gateway.dev_or_via}})
DEV=$(echo $NEIGH_LINE | awk '{print $3}')
MAC=$(echo $NEIGH_LINE | awk '{print $5}')
ip route del default via {{gateway.dev_or_via}} dev $DEV table {{gateway.mark}}
iptables -t mangle -D PREROUTING ! -p ospf -i $DEV -m mac --mac-source $MAC -m set ! --match-set mycard src -j CONNMARK --set-xmark {{gateway.mark}}
{% endif %}
iptables -t mangle -D PREROUTING -m connmark --mark {{gateway.mark}} -j CONNMARK --restore-mark
iptables -t mangle -D OUTPUT -m connmark --mark {{gateway.mark}} -j CONNMARK --restore-mark
{% endif %}
ip rule del pref 301 fwmark {{gateway.mark}} lookup {{gateway.mark}}
{% endfor %}
# 海外节点梯子 MASQ
{% if not isCN %}
iptables -t nat -D POSTROUTING -m set --match-set mycard src -m set ! --match-set mycard dst -j MASQUERADE
{% endif %}
# 临时梯子
iptables -t mangle -D PREROUTING -m set --match-set ladder_needed src -m set --match-set gfwiplist dst -j MARK --set-xmark 812/0xffffffff
# ipset
{% for list in route_list_names %}
ipset destroy {{list}}
{% endfor %}
rm -rf /tmp/mycard_global_postup_done
......
......@@ -2,45 +2,9 @@
# ipset
{% for list in route_list_names %}
ipset restore -f /etc/wireguard/{{list}}.ipset
ipset restore -f /etc/wireguard/{{list}}.ipset || true
{% endfor %}
{% for net in route_lists.mycard %}
ip rule add pref 299 to {{net}} lookup main
{% endfor %}
# 针对网关设置mark
{% for gateway in gateways %}
{% if gateway.dev_or_via != "" %}
{% if gateway.isTun %}
DEV={{gateway.dev_or_via}}
ip route add default dev $DEV table {{gateway.mark}}
iptables -t mangle -A PREROUTING ! -p ospf -i $DEV -m set ! --match-set mycard src -j CONNMARK --set-xmark {{gateway.mark}}
{% else %}
ping {{gateway.dev_or_via}} -c 1
NEIGH_LINE=$(ip neigh show {{gateway.dev_or_via}})
DEV=$(echo $NEIGH_LINE | awk '{print $3}')
MAC=$(echo $NEIGH_LINE | awk '{print $5}')
ip route add default via {{gateway.dev_or_via}} dev $DEV table {{gateway.mark}}
iptables -t mangle -A PREROUTING ! -p ospf -i $DEV -m mac --mac-source $MAC -m set ! --match-set mycard src -j CONNMARK --set-xmark {{gateway.mark}}
{% endif %}
iptables -t mangle -A PREROUTING -m connmark --mark {{gateway.mark}} -j CONNMARK --restore-mark
iptables -t mangle -A OUTPUT -m connmark --mark {{gateway.mark}} -j CONNMARK --restore-mark
{% endif %}
ip rule add pref 301 fwmark {{gateway.mark}} lookup {{gateway.mark}}
{% endfor %}
# 海外节点梯子 MASQ
{% if not isCN %}
iptables -t nat -A POSTROUTING -m set --match-set mycard src -m set ! --match-set mycard dst -j MASQUERADE
{% endif %}
# 临时梯子
iptables -t mangle -A PREROUTING -m set --match-set ladder_needed src -m set --match-set gfwiplist dst -j MARK --set-xmark 812/0xffffffff
......
......@@ -20,12 +20,7 @@ class InventoryBuilder {
}
async loadGateways() {
let gateways = await this.load('gateways');
for (let gateway of gateways) {
if (!gateway.dev_or_via.length)
continue;
gateway.isTun = !gateway.dev_or_via.match(/^(\d{1,3}\.){1,3}\d{1,3}$/);
}
const gateways = await this.load('gateways');
return gateways;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment