Skip to content

Instantly share code, notes, and snippets.

@coolhva
Created December 7, 2021 20:59
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save coolhva/97ead2c438cf575dfd8a0f8fa093a60b to your computer and use it in GitHub Desktop.
Save coolhva/97ead2c438cf575dfd8a0f8fa093a60b to your computer and use it in GitHub Desktop.
pi-hole-nat
{
"system": {
"offload": {
"ipv4": {
"forwarding": "enable",
"gre": "enable",
"pppoe": "enable",
"vlan": "enable"
},
"ipv6": {
"forwarding": "enable",
"pppoe": "enable",
"vlan": "disable"
}
}
},
"firewall": {
"ipv6-name": {
"WANv6_LOCAL" : {
"rule": {
"1": {
"action": "accept",
"description": "Allow ICMPv6",
"log": "enable",
"protocol": "icmpv6"
},
"2": {
"action": "accept",
"description": "DHCPv6",
"destination": {
"port": "546"
},
"protocol": "udp",
"source": {
"port": "547"
}
}
}
},
"WANv6_IN" : {
"rule": {
"1": {
"action": "accept",
"description": "Allow ICMPv6",
"log": "enable",
"protocol": "icmpv6"
}
}
}
}
},
"interfaces": {
"ethernet": {
"eth0": {
"dhcp-options": {
"default-route": "no-update",
"default-route-distance": "1",
"name-server": "no-update"
},
"description": "WAN",
"vif": {
"4": {
"address": [
"dhcp"
],
"description": "IPTV",
"dhcp-options": {
"client-option": [
"send vendor-class-identifier "IPTV_RG";",
"request subnet-mask, routers, rfc3442-classless-static-routes;"
],
"default-route": "no-update",
"default-route-distance": "210",
"name-server": "no-update"
},
"ip": {
"source-validation": "loose"
},
"mtu": "1500"
},
"6": {
"firewall": {
"in": {
"ipv6-name": "WANv6_IN",
"name": "WAN_IN"
},
"local": {
"ipv6-name": "WANv6_LOCAL",
"name": "WAN_LOCAL"
},
"out": {
"ipv6-name": "WANv6_OUT",
"name": "WAN_OUT"
}
},
"pppoe": {
"2": {
"dhcpv6-pd": {
"no-dns": "''",
"pd": {
"0": {
"interface": {
"eth1": {
"prefix-id": ":1",
"service": "slaac"
}
},
"prefix-length": "/48"
}
},
"rapid-commit": "disable"
},
"firewall": {
"in": {
"ipv6-name": "WANv6_IN",
"name": "WAN_IN"
},
"local": {
"ipv6-name": "WANv6_LOCAL",
"name": "WAN_LOCAL"
},
"out": {
"ipv6-name": "WANv6_OUT",
"name": "WAN_OUT"
}
},
"ipv6": {
"address": {
"autoconf": "''"
},
"dup-addr-detect-transmits": "1",
"enable": "''"
},
"default-route": "auto",
"mtu": "1500",
"name-server": "auto",
"password": "kpn",
"user-id": "kpn"
}
}
}
}
},
"eth1": {
"description": "LAN",
"ipv6": {
"address": {
"autoconf": "''"
},
"dup-addr-detect-transmits": "1",
"router-advert": {
"cur-hop-limit": "64",
"link-mtu": "0",
"managed-flag": "true",
"max-interval": "600",
"other-config-flag": "false",
"prefix": {
"::/64": {
"autonomous-flag": "true",
"on-link-flag": "true",
"valid-lifetime": "2592000"
}
},
"reachable-time": "0",
"retrans-timer": "0",
"send-advert": "true"
}
}
}
}
},
"protocols": {
"igmp-proxy": {
"interface": {
"eth0.4": {
"alt-subnet": [
"0.0.0.0/0"
],
"role": "upstream",
"threshold": "1"
},
"eth1": {
"role": "disabled",
"threshold": "1"
},
"eth1.661": {
"alt-subnet": [
"0.0.0.0/0"
],
"role": "downstream",
"threshold": "1"
}
}
},
"static": {
"interface-route6": {
"::/0": {
"next-hop-interface": {
"pppoe2": "''"
}
}
}
}
},
"port-forward": {
"wan-interface": "pppoe2"
},
"service": {
"dns": {
"forwarding": {
"except-interface": [
"pppoe2"
]
}
},
"nat": {
"rule": {
"5000": {
"description": "MASQ all traffic to IPTV network",
"destination": {
"address": "0.0.0.0/0"
},
"log": "disable",
"outbound-interface": "eth0.4",
"protocol": "all",
"type": "masquerade"
},
"5001": {
"description": "Redirect DNS queries to pihole",
"destination": {
"port": "53",
"address": "!10.0.1.23"
},
"inside-address": {
"address": "10.0.1.23",
"port": "53"
},
"source": {
"address": [
"!10.0.1.23"
]
},
"inbound-interface": "eth0",
"protocol": "tcp_udp",
"type": "destination"
},
"5002": {
"description": "Translate reply back to pihole",
"destination": {
"address": "10.0.1.23",
"port": "53"
},
"outbound-interface": "eth0",
"protocol": "tcp_udp",
"type": "masquerade"
},
"6001": {
"outbound-interface": "pppoe2"
},
"6002": {
"outbound-interface": "pppoe2"
},
"6003": {
"outbound-interface": "pppoe2"
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment