Schlagwortarchiv für: IPv6

ipv6_logo

Subnetting in IPv4 ist noch relativ einfach. IPv6 zeigt sich hier ein wenig komplizierter.
Um dem entgegen zu wirken, sind folgende beiden Tabellen Goldwert :)

– IPv6 Subnetting Tabelle
– IPv6 CIDR Tabelle






IPv6 Subnetting Tabelle:

2001:0000:0000:0000:0000:0000:0000:0000
     |||| |||| |||| |||| |||| |||| ||||
     |||| |||| |||| |||| |||| |||| |||128
     |||| |||| |||| |||| |||| |||| ||124
     |||| |||| |||| |||| |||| |||| |120
     |||| |||| |||| |||| |||| |||| 116
     |||| |||| |||| |||| |||| |||112
     |||| |||| |||| |||| |||| ||108
     |||| |||| |||| |||| |||| |104
     |||| |||| |||| |||| |||| 100
     |||| |||| |||| |||| |||96
     |||| |||| |||| |||| ||92
     |||| |||| |||| |||| |88
     |||| |||| |||| |||| 84
     |||| |||| |||| |||80
     |||| |||| |||| ||76
     |||| |||| |||| |72
     |||| |||| |||| 68
     |||| |||| |||64
     |||| |||| ||60
     |||| |||| |56
     |||| |||| 52
     |||| |||48
     |||| ||44
     |||| |40
     |||| 36
     |||32
     ||28
     |24
     20

 

IPv6 CIDR Tabelle:

CIDR:               Adresses:

/128                1
/127                2
/126                4
/125                8
/124                16
/123                32
/122                64
/121                128
/120                256
/119                512
/118                1.024
/117                2.048
/116                4.096
/115                8.192
/114                16.384
/113                32.768
/112                65.536
/111                131.072
/110                262.144
/109                524.288
/108                1.048.576
/107                2.097.152
/106                4.194.304
/105                8.388.608
/104                16.777.216
/103                33.554.432
/102                67.108.864
/101                134.217.728
/100                268.435.456
/99                 536.870.912
/98                 1.073.741.824
/97                 2.147.483.648
/96                 4.294.967.296
/95                 8.589.934.592
/94                 17.179.869.184
/93                 34.359.738.368
/92                 68.719.476.736
/91                 137.438.953.472
/90                 274.877.906.944
/89                 549.755.813.888
/88                 1.099.511.627.776
/87                 2.199.023.255.552
/86                 4.398.046.511.104
/85                 8.796.093.022.208
/84                 17.592.186.044.416
/83                 35.184.372.088.832
/82                 70.368.744.177.664
/81                 140.737.488.355.328
/80                 281.474.976.710.656
/79                 562.949.953.421.312
/78                 1.125.899.906.842.624
/77                 2.251.799.813.685.248
/76                 4.503.599.627.370.496
/75                 9.007.199.254.740.992
/74                 18.014.398.509.481.984
/73                 36.028.797.018.963.968
/72                 72.057.594.037.927.936
/71                 144.115.188.075.855.872
/70                 288.230.376.151.711.744
/69                 576.460.752.303.423.488
/68                 1.152.921.504.606.846.976
/67                 2.305.843.009.213.693.952
/66                 4.611.686.018.427.387.904
/65                 9.223.372.036.854.775.808
/64 (Residential)   18.446.744.073.709.551.616
/63                 36.893.488.147.419.103.232
/62                 73.786.976.294.838.206.464
/61                 147.573.952.589.676.412.928
/60                 295.147.905.179.352.825.856
/59                 590.295.810.358.705.651.712
/58                 1.180.591.620.717.411.303.424
/57                 2.361.183.241.434.822.606.848
/56                 4.722.366.482.869.645.213.696
/55                 9.444.732.965.739.290.427.392
/54                 18.889.465.931.478.580.854.784
/53                 37.778.931.862.957.161.709.568
/52                 75.557.863.725.914.323.419.136
/51                 151.115.727.451.828.646.838.272
/50                 302.231.454.903.657.293.676.544
/49                 604.462.909.807.314.587.353.088
/48 (Business)      1.208.925.819.614.629.174.706.176
/47                 2.417.851.639.229.258.349.412.352
/46                 4.835.703.278.458.516.698.824.704
/45                 9.671.406.556.917.033.397.649.408
/44                 19.342.813.113.834.066.795.298.816
/43                 38.685.626.227.668.133.590.597.632
/42                 77.371.252.455.336.267.181.195.264
/41                 154.742.504.910.672.534.362.390.528
/40                 309.485.009.821.345.068.724.781.056
/39                 618.970.019.642.690.137.449.562.112
/38                 1.237.940.039.285.380.274.899.124.224
/37                 2.475.880.078.570.760.549.798.248.448
/36                 4.951.760.157.141.521.099.596.496.896
/35                 9.903.520.314.283.042.199.192.993.792
/34                 19.807.040.628.566.084.398.385.987.584
/33                 39.614.081.257.132.168.796.771.975.168
/32 (ISP)           79.228.162.514.264.337.593.543.950.336
/31                 158.456.325.028.528.675.187.087.900.672
/30                 316.912.650.057.057.350.374.175.801.344
/29                 633.825.300.114.114.700.748.351.602.688
/28                 1.267.650.600.228.229.401.496.703.205.376
/27                 2.535.301.200.456.458.802.993.406.410.752
/26                 5.070.602.400.912.917.605.986.812.821.504
/25                 10.141.204.801.825.835.211.973.625.643.008
/24                 20.282.409.603.651.670.423.947.251.286.016
/23                 40.564.819.207.303.340.847.894.502.572.032
/22                 81.129.638.414.606.681.695.789.005.144.064
/21                 162.259.276.829.213.363.391.578.010.288.128
/20                 324.518.553.658.426.726.783.156.020.576.256
/19                 649.037.107.316.853.453.566.312.041.152.512
/18                 1.298.074.214.633.706.907.132.624.082.305.024
/17                 2.596.148.429.267.413.814.265.248.164.610.048
/16                 5.192.296.858.534.827.628.530.496.329.220.096
/15                 10.384.593.717.069.655.257.060.992.658.440.192
/14                 20.769.187.434.139.310.514.121.985.316.880.384
/13                 41.538.374.868.278.621.028.243.970.633.760.768
/12                 83.076.749.736.557.242.056.487.941.267.521.536
/11                 166.153.499.473.114.484.112.975.882.535.043.072
/10                 332.306.998.946.228.968.225.951.765.070.086.144
/9                  664.613.997.892.457.936.451.903.530.140.172.288
/8                1.329.227.995.784.915.872.903.807.060.280.344.576

teredo_enabledFür den Fall dass ein Windows PC nicht nativ mit IPv6 versorgt wird, hat sich Microsoft etwas „nettes“ einfallen lassen.
Der Windows-PC baut einen Teredo Tunnel zu Microsoft auf, um – getunnelt – per IPv6 kommunizieren zu können.

Für den Fall dass man bereits über eine IPv6 Anbindung verfügt, oder dies nicht möchte – lässt sich das Tunnel-Verfahren deaktivieren.

1) cmd als Admin ausführen (Windows 8 – cmd als Admin)

2) folgenden Befehl absetzten

netsh interface ipv6 set teredo disable

 

Um Teredo Tunneling wieder zu aktivieren ist folgender Befehl nötig:

netsh interface ipv6 set teredo default

 

Ein Update für alle Domänen-Admins:
Innerhalb einer Domäne fahren Windows Clients KEINE Teredo Tunnel.
–> Verlässt der Client aber das Domänen Netzwerk (z.B. ein Notebook) nutzt es den Teredo Mechanismus.

ipv6_logoWenn man schon IPv4 und IPv6 aktiviert und seine Dienste über beide Protokolle zur Verfügung stellt, möchte man manchmal auch wissen wie viel Traffic über die einzelnen Wege zustande kommt.

Anbei ein kleines Shellscript welches Apache-acceslogs vom gestrigen Tag auswertet.
Ontop zu einem regulären IPv4/IPv6 Test – Goldwert :-)

Man wundere sich nicht über den etwas sehr abgespaceten IPv6 Regex :-)

Dies lässt sich natürlich beliebig auf Dienste wie Mail, FTP usw erweitern.

#!/bin/bash

# title: apache duals stack traffic analyse
# contact: basti@baebeca.de
# source: baebeca.de
# article: http://blog.baebeca.de/2013/02/20/ipv4ipv6-dualstack-traffic-analyse/
# date: 20130216
# version: v.1.0

# ipv4 regex validation / visits
cat /var/log/apache2/access*.log | grep $(date -d yesterday +%d/%b/%Y) | grep -E '[0-9]{1,3}(\.[0-9]{1,3}){3}' | grep -v "(internal dummy connection)" | grep -v "Monitoring" | grep -v "Python-urllib" | grep -v "get_crawler.php" > /var/log/apache_traffic_ipv4

IPV4_VISITS=`cat /var/log/apache_traffic_ipv4 | wc -l`
echo "$IPV4_VISITS IPv4 visits"
echo ""

# ipv6 regex validation / visits
# ipv6 grep regex by Dicky (http://www.violato.net/blog/others/40-ipv6-regex-validation)
cat /var/log/apache2/access*.log | grep $(date -d yesterday +%d/%b/%Y) | grep -E '((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})))' | grep -v "(internal dummy connection)" | grep -v "Monitoring" | grep -v "Python-urllib" | grep -v "get_crawler.php" > /var/log/apache_traffic_ipv6

IPV6_VISITS=`cat /var/log/apache_traffic_ipv6 | wc -l`
echo "$IPV6_VISITS IPv6 visits"
echo ""

# mysql inserts for statistics
# ipv4
mysql -u root -p<pass> <database> -e "INSERT INTO <table> SET date = '$(date --date='(date -d yesterday +%d/%b/%Y) 00:00:01 UTC+1 -86401 second' +%s)', apache_traffic_ipv4=$IPV4_VISITS ON DUPLICATE KEY UPDATE apache_traffic_ipv4=$IPV4_VISITS;"

# ipv6
mysql -u root -p<pass> <database> -e "INSERT INTO <table> SET date = '$(date --date='(date -d yesterday +%d/%b/%Y) 00:00:01 UTC+1 -86401 second' +%s)', apache_traffic_ipv6=$IPV6_VISITS ON DUPLICATE KEY UPDATE apache_traffic_ipv6=$IPV6_VISITS;"

 

Lebst du noch oder IPv6′st du schon :-}

Nun gibt es unseren IPv4 / IPv6 Test für alle Websites zum einbinden.

Die Einbindung erfolgt relativ simpel per Javascript. Einfach den folgenden Code im <body> einbinden. Bei Bedarf kann das Layout und Funktionen mittels Parameter in der URL angepasst werden.

<script src="https://www.baebeca.de/www/www/six/six.php"></script>

Folgende Parameter in der URL sind optional möglich:

?left=<0-100> (Prozentangabe - Horizontale Position von Links)
?hide=true (Check wird ausgeführt, jedoch nicht angezeigt)

ipv6_test_screen

Demo: https://www.baebeca.de/www/www/six/

Sofern weitere Anpassungsmöglichkeiten gewünscht sind, bitte bescheid geben ;)
Diese werden dann natürlich ergänzt.

Apache im Dual-stack mit IPv4 und IPv6.

– Apache muss auf die nötigen Adressen lauschen (hier durch das Sternchen)
– Jeder vHost muss entsprechend konfiguriert werden dass er alle IP Adressen auf Port 80 bedient  (hier durch das Sternchen)

$ vim /etc/apache2/ports.conf 
NameVirtualHost *:80
Listen 80

$ vim /etc/apache2/sites-enabled/domain.de
<VirtualHost *:80>
        Servername domain.de
        ServerAlias www.domain.de

        <Directory /var/www/www.domain.de/>         
                 Options -Indexes FollowSymLinks MultiViews                 
                 AllowOverride All                 
                 Order allow,deny                 
                 allow from all         
        </Directory>
        DocumentRoot /var/www/www.domain.de
        CustomLog /var/log/apache-domain.de.log combined
</VirtualHost>

Freischaltung, Konfiguration und Anpassung laufender Dienste auf IPv6 ist super, jedoch sollte die Firewall nicht vergessen werden!

Postfix und Dovecot im Dual-stack mit IPv4 und IPv6.

$ vim /etc/postfix/main.cf
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
inet_interfaces = all
inet_protocols = ipv4,ipv6
$ /etc/init.d/postfix restart

$ vim /etc/dovecot/dovecot.conf
listen = *,[::]
$ /etc/init.d/dovecot restart

Mit einer Test-Mail an ipv6@test-ipv6.veznat.com lässt sich die Konfiguration prüfen. Hier erhält man relativ zeitnah einen autoresponder mit Mailheader und DNS Auflösung zurück.

Freischaltung, Konfiguration und Anpassung laufender Dienste auf IPv6 ist super, jedoch sollte die Firewall nicht vergessen werden!

ipv6_logoWer IPv6 benutzt, sollte sich nicht nur über Konnektivität und Erreichbarkeit der Services Gedanken machen. Ein großer Punkt – der gerne vergessen wird – ist Security

Sobald IPv6 aktiv ist, ist – auf aktuellen Systemen – sofort ein ssh, FTP, Mail usw. Login möglich – und zwar von überall.
Gleiches gilt natürlich bis hin zur Applikation, die ein Verzeichnis via htaccess mit IPv4 Adressen reglementiert oder IP-Adressen in einer char(16) Spalte vorhält ;)

#!/bin/sh

# demo IPv6 Firewall - start
# source: baebeca.de 
# article: http://blog.baebeca.de/2012/12/21/ipv6-firewall-demo/
# 20121221 - v.1.0

# deny ALL  incoming packages
ip6tables -P INPUT DROP

# allow icmp6
ip6tables -A INPUT -p icmpv6 -j ACCEPT

# allow custom ports (feel free to modify)
  # ssh
  ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT
  # http  
  ip6tables -A INPUT -p tcp --dport 80 -j ACCEPT
  # https
  ip6tables -A INPUT -p tcp --dport 443 -j ACCEPT
  # mysql
  ip6tables -A INPUT -p tcp --dport 3306 -j ACCEPT
  # SMPT 
  ip6tables -A INPUT -p tcp --dport 25 -j ACCEPT
  # IMAP
  ip6tables -A INPUT -p tcp --dport 143 -j ACCEPT

ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A OUTPUT -m state --state NEW,ESTABLISHED -j ACCEPT
ip6tables -A INPUT -j REJECT

 

#!/bin/sh

# demo IPv6 Firewall - stop
# source: baebeca.de
# article: http://blog.baebeca.de/2012/12/21/ipv6-firewall-demo/
# 20121221 - v.1.0

# delete all restrictions
ip6tables -F
ip6tables -X
ip6tables -P INPUT ACCEPT
ip6tables -P FORWARD ACCEPT
ip6tables -P OUTPUT ACCEPT

Da man dieses – sinnigerweise – in seine bestehende IPv4 Firewall eingliedert, gibt es an dieser Stelle nur Script-Snippets zum aktivieren und deaktivieren

Sollte jemand ein vollwertiges Script mit Parameterübergabe daraus erstellen, werde ich es gerne anhängen.

ipv6_logoLebst du noch oder IPv6’st du schon :-}

Unsere Testseite: https://www.baebeca.de/www/www/six