start
authorphma <phma@web>
Tue, 25 Jun 2013 09:26:48 +0000 (02:26 -0700)
committerCharlie Root <root@leaf.dragonflybsd.org>
Tue, 25 Jun 2013 09:26:48 +0000 (02:26 -0700)
docs/docs/howtos/HowToPF6and4/index.mdwn [new file with mode: 0644]

diff --git a/docs/docs/howtos/HowToPF6and4/index.mdwn b/docs/docs/howtos/HowToPF6and4/index.mdwn
new file mode 100644 (file)
index 0000000..b7f2e90
--- /dev/null
@@ -0,0 +1,99 @@
+A small LAN running services and having an IPv6 tunnel and a VoIP phone
+
+This page is a work in progress. I'll be adding comments.
+##rc.conf
+       gif_interfaces="gif0"
+       ifconfig_em0="DHCP"
+       ifconfig_em1="inet 192.168.7.2 netmask 255.255.255.0"
+       ifconfig_em1_alias0="inet6 2001:470:deaf:beef::2 prefixlen 64"
+       #gifconfig_gif0="69.132.98.107 216.66.22.2"
+       gifconfig_gif0="75.176.126.216 216.66.22.2"
+       ifconfig_gif0="inet6 2001:470:dead:beef::2 2001:470:dead:beef::1 prefixlen 128"
+       #defaultrouter="192.168.7.1"
+       ipv6_enable=YES
+       ipv6_network_interfaces="gif0 em1"
+       ipv6_gateway_enable=YES
+       ipv6_defaultrouter="2001:470:dead:beef::1"
+       rtadvd_enable=YES
+       rtadvd_interfaces="em1"
+       pf=YES  # rcrun enable pf
+       isc_dhcpd=YES   # rcrun enable isc_dhcpd
+
+The tunnel setup should be done with an rc.d script, since the IP address isn't known until dhcpcd gets it. I haven't written it yet.
+##pf.conf
+       ext_if="em0"
+       ext_if6="gif0"
+       int_if="em1"
+       int_if6="em1"
+       fwd_darner="{ 14159, 9030 }" # tahoe, tordir
+       fwd_chausie="{ ftp, http, smtp, ssh }"
+       fwd_leopard="{ rsync, ntp, 8333 }" # bitcoin
+       forwarded_ports="{ 110, 2222 }"
+       allow_all6="{ http ssh }"
+       darner="192.168.7.5"
+       darner6="2001:470:deaf:beef:d5aa:96ff:fede:aaeb"
+       chausie="192.168.7.4"
+       chausie6="2001:470:deaf:beef:bead:edff:feca:5c05"
+       leopard="192.168.7.10"
+       leopard6="2001:470:deaf:beef:2a3:a0ff:fefd:5c5f"
+       sipura="192.168.7.99"
+
+       table <bruteforce> persist
+
+       scrub in
+
+       #Phone conversation takes 10 kB/s each way
+       #Bandwidth out is 123 kB/s
+       altq on $int_if cbq bandwidth 984Kb queue { voip,dnsq,rest }
+       queue voip bandwidth 84Kb priority 3
+       queue dnsq bandwidth 32Kb priority 2
+       queue rest bandwidth 868Kb cbq(default,borrow)
+
+       nat on $ext_if inet from !($ext_if) -> ($ext_if:0)
+
+       rdr inet proto {tcp udp} from !($ext_if) to ($ext_if) port $fwd_darner -> $darner
+       rdr inet proto {tcp udp} from !($ext_if) to ($ext_if) port $fwd_chausie -> $chausie
+       rdr inet proto {tcp udp} from !($ext_if) to ($ext_if) port $fwd_leopard -> $leopard
+       rdr on $ext_if inet proto {tcp udp} from !($ext_if) to ($ext_if) port 110 -> $darner port 6561 # tor
+       rdr on $ext_if inet proto {tcp udp} from !($ext_if) to ($ext_if) port 2222 -> $darner port ssh
+       nat on $int_if inet proto {tcp udp} from $int_if:network to $darner port $fwd_darner -> $int_if
+       nat on $int_if inet proto {tcp udp} from $int_if:network to $chausie port $fwd_chausie -> $int_if
+       nat on $int_if inet proto {tcp udp} from $int_if:network to $leopard port $fwd_leopard -> $int_if
+       block quick from <bruteforce>
+
+       block in on $ext_if6
+       pass out on $ext_if6 keep state
+       #block in on $ext_if
+       #pass out on $ext_if keep state
+
+       pass quick on { lo $int_if  $int_if6 } keep state
+       antispoof for { lo $int_if $int_if6 $ext_if $ext_if6 }
+
+       pass in on $ext_if6 inet6 proto {tcp udp} to $darner6 port $fwd_darner keep state
+       pass in on $ext_if6 inet6 proto {tcp udp} to $chausie6 port $fwd_chausie keep state
+       pass in on $ext_if6 inet6 proto {tcp udp} to $leopard6 port $fwd_leopard keep state
+       pass in on $ext_if6 inet6 proto {tcp udp} to any port $allow_all6 keep state
+       pass in on $ext_if inet proto {tcp udp} to any port $fwd_darner keep state
+       pass in on $ext_if inet proto {tcp udp} to any port $fwd_chausie keep state
+       pass in on $ext_if inet proto {tcp udp} to any port $fwd_leopard keep state
+       pass in on $ext_if inet proto {tcp udp} to any port $forwarded_ports keep state
+       pass in on $int_if from $sipura to any queue voip keep state
+       pass in on $int_if proto {tcp udp} from any to any port 53 queue dnsq keep state
+
+##dhclient.conf
+       # option definitions common to all supported networks...
+       option domain-name "ixazon.lan";
+       option domain-name-servers leopard.ixazon.lan, chausie.ixazon.lan;
+
+       default-lease-time 600;
+       max-lease-time 7200;
+
+       subnet 192.168.7.0 netmask 255.255.255.0 {
+         range 192.168.7.100 192.168.7.255;
+         option routers 192.168.7.2;
+       }
+
+       host sipura {
+         hardware ethernet fa:de:db:ed:fa:ce;
+         fixed-address 192.168.7.99;
+       }