<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IT-Hora &#187; IP</title>
	<atom:link href="http://www.ithora.se/tag/ip/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ithora.se</link>
	<description>If it speaks IP, it speaks to me.</description>
	<lastBuildDate>Mon, 23 Jan 2012 22:47:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Cisco VPN on 64-bit MacOS X Lion</title>
		<link>http://www.ithora.se/846</link>
		<comments>http://www.ithora.se/846#comments</comments>
		<pubDate>Tue, 23 Aug 2011 21:07:59 +0000</pubDate>
		<dc:creator>Pal</dc:creator>
				<category><![CDATA[Firewall]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[IP]]></category>

		<guid isPermaLink="false">http://www.ithora.se/?p=846</guid>
		<description><![CDATA[Another one of my frequent postings on this page throughout the years! Anyway, even though I might not be the most active blogger on this side of Indus, this one should be useful to some people for now and probably &#8230; <a href="http://www.ithora.se/846">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Another one of my frequent postings on this page throughout the years!</p>
<p>Anyway, even though I might not be the most active blogger on this side of Indus, this one should be useful to some people for now and probably some time forward.</p>
<p>As most people* know, Cisco IPSec VPN and 64-bit operating systems aren&#8217;t best friends, since Cisco wants people to use their Anyconnect client for licensing reasons, and decided to never make a 64-bit version. So, since I use IPSec for most of my VPN connections, and I don&#8217;t want to be stuck in a 32-bit world forever, I spent some time getting it to work om my workstation. *) Most people = Network guys.</p>
<p>The components I used for testing was a Cisco 3000 VPN Concentrator (although it should work with PIX and ASA as well) and MacOS X Lion 10.7 (now also confirmed working on the 10.7.1 update). Basicly, most of this stuff should work on clients of any UNIX flavor, with the exception of some path names and the Applescript.</p>
<p>The instructions are written in a way that even users not familiar to UNIX environments should be able to pull it off, which makes them look kind of childish for an experienced UNIX guy, but you can&#8217;t make everybody happy, can you?</p>
<h2>Downloads</h2>
<p>All software you need to download for this is listed here. You don&#8217;t have to download these now, you can do it along the way further down, but starting that Xcode download could be a good thing, since it is 3GB big.</p>
<p><a href="http://itunes.apple.com/us/app/xcode/id448457090?mt=12#" title="Xcode in App store" target="_blank">http://itunes.apple.com/us/app/xcode/id448457090?mt=12#</a><br />
<a href="ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.9.tar.bz2" title="libgpg-error 1.9" target="_blank">ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.9.tar.bz2</a><br />
<a href="ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.5.0.tar.bz2" title="libgcrypt 1.5.0" target="_blank">ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.5.0.tar.bz2</a><br />
<a href="http://sourceforge.net/projects/tuntaposx/files/tuntap/20090913/tuntap_20090913.tar.gz/download" title="tuntap 2009-09-13" target="_blank">http://sourceforge.net/projects/tuntaposx/files/tuntap/20090913/tuntap_20090913.tar.gz/download</a><br />
<a href="http://www.unix-ag.uni-kl.de/~massar/vpnc/vpnc-0.5.3.tar.gz" title="vpnc 0.5.3" target="_blank">http://www.unix-ag.uni-kl.de/~massar/vpnc/vpnc-0.5.3.tar.gz</a><br />
<a href="http://www.ithora.se/public/software/macos-vpnc/vpnc-fix" title="vpnc-fix" target="_blank">http://www.ithora.se/public/software/macos-vpnc/vpnc-fix</a><br />
<a href="http://www.ithora.se/public/software/macos-vpnc/vpn-launcher.command" title="vpn-launcher.command" target="_blank">http://www.ithora.se/public/software/macos-vpnc/vpn/launcher.command</a><br />
<a href="http://www.ithora.se/public/software/macos-vpnc/VPN%20Actions.scpt" title="VPN Actions.scpt" target="_blank">http://www.ithora.se/public/software/macos-vpnc/VPN%20Actions.scpt</a></p>
<h2>General information:</h2>
<p>Open a terminal and type:</p>
<p><em>whoami</em></p>
<p>Record your MacOS username. Everywhere you see &#8220;pbodin&#8221; in this document, replace it with either your MacOS username, or your VPN username (in my case, both are pbodin).</p>
<p>When you use the sudo command throughout this task, it might ask for your password. Then feed it with your MacOS password.</p>
<p>There might be newer versions of the software used in these instructions. Feel free to try the newer versions. Your mileage may vary, and I&#8217;ve only tested this with the versions mentioned below.</p>
<p>Tip for the non-frequent vi users: If you screw up inside vi, press ESC a couple of times and type :q! to get out of vi without saving, and then start over from the vi command. Or read this: <a href="http://www.cs.colostate.edu/helpdocs/vi.html" title="vi navigation" target="_blank">http://www.cs.colostate.edu/helpdocs/vi.html</a></p>
<p>All commands you&#8217;re supposed to type in a terminal or something are in italic font. Beware that this page wraps the lines, so use copy and paste to make sure to have your newlines in order.</p>
<p>The setup redirects all non-local traffic through the VPN tunnel (i.e. no split-tunneling). Also, local DNS will cease to work, all queries will end up on the DNS servers provided by the VPN connection. All this can easily be changed within the script, if you know how to.</p>
<h2>Install a compiler</h2>
<p>The easiest is to download Xcode from App Store: <a href="http://itunes.apple.com/us/app/xcode/id448457090?mt=12#" title="Xcode in App store" target="_blank">http://itunes.apple.com/us/app/xcode/id448457090?mt=12#</a></p>
<p>The download is 3 GB though, so if you&#8217;re on a slow connection and know what you&#8217;re doing, you might choose to get a standalone gcc or similar instead.</p>
<h2>Install libgpg-error</h2>
<p>Open a terminal and type:</p>
<p><em>curl -o libgpg-error-1.9.tar.bz2 <a href="ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.9.tar.bz2" title="libgpg-error 1.9" target="_blank">ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-1.9.tar.bz2</a><br />
tar -zxvf libgpg-error-1.9.tar.bz2<br />
cd libgpg-error-1.9<br />
./configure<br />
make<br />
sudo make install</em></p>
<h2>Install libgrcypt</h2>
<p>Open a terminal and type:</p>
<p><em>curl -o libgcrypt-1.5.0.tar.bz2 <a href="ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.5.0.tar.bz2" title="libgcrypt 1.5.0" target="_blank">ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.5.0.tar.bz2</a><br />
tar -zxvf libgcrypt-1.5.0.tar.bz2<br />
cd libgcrypt-1.5.0<br />
./configure<br />
make<br />
sudo make install</em></p>
<h2>Install tuntap</h2>
<p>Open a terminal and type:</p>
<p><em>curl -o tuntap_20090913.tar.gz <a href="http://downloads.sourceforge.net/project/tuntaposx/tuntap/20090913/tuntap_20090913.tar.gz?r=&#038;ts=1314366011&#038;use_mirror=surfnet" title="tuntap 2009-09-13" target="_blank">http://downloads.sourceforge.net/project/tuntaposx/tuntap/20090913/tuntap_20090913.tar.gz?r=&#038;ts=1314366011&#038;use_mirror=surfnet</a><br />
tar -zxvf tuntap_20090913.tar.gz<br />
open tuntap_20090913.pkg</em></p>
<p>This will open a GUI installation. Accept all defaults during the installation, and then return to the terminal and type:</p>
<p><em>sudo /Library/StartupItems/tap/tap<br />
sudo /Library/StartupItems/tun/tun</em></p>
<h2>Install vpnc</h2>
<p>Open a terminal and type:</p>
<p><em>curl -o vpnc-0.5.3.tar.gz <a href="http://www.unix-ag.uni-kl.de/~massar/vpnc/vpnc-0.5.3.tar.gz" title="vpnc 0.5.3" target="_blank">http://www.unix-ag.uni-kl.de/~massar/vpnc/vpnc-0.5.3.tar.gz</a><br />
tar -zxvf vpnc-0.5.3.tar.gz<br />
cd vpnc-0.5.3<br />
vi Makefile</em></p>
<p>Press / (shift+7) to get a search prompt, enter <em>OPENSSL_GPL_VIOLATION</em> as search phrase and press return.</p>
<p>Place the cursor above the # in the beginning of the line, and then press x to delete the # character. Do this on these two lines:</p>
<p><em>#OPENSSL_GPL_VIOLATION = -DOPENSSL_GPL_VIOLATION<br />
#OPENSSLLIBS = -lcrypto</em></p>
<p>Type <em>:wq</em> to save the file and exit vi.</p>
<p><em>vi sysdep.h</em></p>
<p>Press / (shift+7) to get a search prompt, enter <em>defined(__APPLE__)</em> as search phrase and press return.<br />
Press o to get in edit mode and start a new line.</p>
<p>Add this line below the APPLE line:</p>
<p><em>#define HAVE_GETLINE 1</em></p>
<p>Press ESC to get out of edit mode, and type <em>:wq</em> to save the file and exit vi.</p>
<p><em>make<br />
make install</em></p>
<p><em>sudo vi /etc/vpnc/vpnc-script</em></p>
<p>Press / (shift+7) to get a search prompt, enter <em>d.add Router</em> as search phrase and press return. You should end up on this line:</p>
<p><em># d.add Router $INTERNAL_IP4_ADDRESS</em></p>
<p>Place the cursor above the # in the beginning of the line, and then press x to delete the # character.</p>
<p>Press ESC to get out of edit mode, and type <em>:wq</em> to save the file and exit vi.</p>
<p>Make vpnc runnable by a normal user (you):</p>
<p><em>sudo visudo</em></p>
<p>This starts vi and loads the file /etc/sudoers</p>
<p>Press <em>G</em> (shift+g) to get to the bottom of the file.<br />
Press <em>o</em> to get in edit mode and start a new line.</p>
<p>Add this line:</p>
<p><em>pbodin ALL = NOPASSWD: /usr/local/sbin/vpnc, /usr/local/sbin/vpnc-disconnect, /usr/local/sbin/vpnc-fix</em></p>
<p>Where pbodin is replaced by your MacOS username.</p>
<p>Press ESC to get out of edit mode, and type <em>:wq</em> to save the file and exit vi.</p>
<h2>Convert pcf profiles</h2>
<p>Copy your pcf profile(s) into your Documents folder.</p>
<p>Open a terminal and type:</p>
<p><em>cd /etc/vpnc<br />
sudo cp /Users/pbodin/Documents/filename.pcf .<br />
sudo pcf2vpnc filename.pcf &gt; filename.conf</em></p>
<p>Replace pbodin with your MacOS username and filename.pcf with the actual filename. Repeat the two sudo commands for every pcf file you want to convert.</p>
<p>Launch the VPN connection:</p>
<p>Open a terminal and type:</p>
<p><em>sudo /usr/local/sbin/vpnc &#8211;local-port 0 filename.conf</em></p>
<p>If you get an error saying DES is insecure, instead type:</p>
<p><em>sudo /usr/local/sbin/vpnc &#8211;local-port 0 &#8211;enable-1des filename.conf</em></p>
<p>If it still fails, type this to get more information:</p>
<p><em>sudo /usr/local/sbin/vpnc &#8211;debug 2 &#8211;local-port 0 &#8211;enable-1des filename.conf</em></p>
<p>In all three cases with the actual filename instead of filename.conf.</p>
<p>To disconnect, type:</p>
<p><em>sudo /usr/local/sbin/vpnc-disconnect</em></p>
<p>If the connection gets dropped without you disconnecting using the command above, you might have to turn Wi-Fi off and on again (or pull the ethernet cable and put it in again) to get Internet working again. Or you can use the provided vpnc-fix script, that fixes this problem at least on my machine. Do this by typing:</p>
<p><em>sudo /usr/local/sbin/vpnc-fix</em></p>
<h2>VPN fixer</h2>
<p>If your computer goes to sleep while connected to VPN, or if you lose the VPN connection by some other magical reason, you&#8217;re network might end up in limbo. The you need to fix the routing and DNS settings to get things to work again. This might be done by turning your network on and off again, it might be done by changing location to something else and back again and it can definitely be done by rebooting or fixings things manually.</p>
<p>But just for you my friends, I created a script that does it for you. Download it here: <a href="http://www.ithora.se/public/software/macos-vpnc/vpnc-fix" title="vpnc-fix" target="_blank">http://www.ithora.se/public/software/macos-vpnc/vpnc-fix</a> and put it in /usr/local/sbin/</p>
<h2>VPN launcher</h2>
<p>I&#8217;ve included a terminal based VPN-launcher written in perl, that you can use if you have several profiles to choose from, and for instance wants to create an icon in your dock or similar. It also has a disconnect option. Download it here: <a href="http://www.ithora.se/public/software/macos-vpnc/vpn-launcher.command" title="vpn-launcher" target="_blank">http://www.ithora.se/public/software/macos-vpnc/vpn-launcher.command</a> and put it in /usr/local/sbin</p>
<h2>Menu bar menu</h2>
<p>There&#8217;s a GUI! I&#8217;ve written an Applescript file. Put it in /Users/pbodin/Library/Scripts or /Library/Scripts (create the Scripts folders if they&#8217;re not already existing). Then start Applescript Editor (under Utilities) and check the Show script menu in menu bar option. If you put the files in /Library/Scripts you also need to check the Show computer scripts option. I prefer to have that option unchecked and keep the scripts in my user scripts folder, to limit the menu size (there&#8217;s a whole bunch of system scripts in the computer scripts folder).</p>
<p>This gives a small paper roll like menu item in the menu bar, with the &#8220;VPN Actions&#8221; script as an option. It will check if there are any active VPN connections. If there are, it will show you the active commands for these (which tells you the VPN server, your username and similar), and ask you if you want disconnect them, connect another connection or if you just wanted to know.</p>
<p>If there are not, it will ask you if you want to connect to VPN, fix a lost VPN connection limobo or if you just wanted to know.</p>
<p>If you choose to connect, the script will ask you for what profile file you want to use. If there is a username and/or password included in the profile file you choose, it will use them, and if not, it will ask you for the information.</p>
<p>It should work with profile files with spaces in the name. It should work with passwords including strange characters (except &#8220;). But neither is tested.</p>
<p>There&#8217;s some basic error handling (process existance) in the script, but if things go wrong, you&#8217;re probably better off if you&#8217;re one of those that are able to troubleshoot manually on your own. If you&#8217;re not &#8211; reboot and try again.</p>
<p>You could also edit the connect script to automatically include your information, eliminating the need to answer the prompts. However, I would recommend keeping the prompt for the password.</p>
<p>Download the Applescript here: <a href="http://www.ithora.se/public/software/macos-vpnc/VPN%20Actions.scpt" title="VPN Actions.scpt" target="_blank">http://www.ithora.se/public/software/macos-vpnc/VPN%20Actions.scpt</a> and put it in your Scripts folder.</p>
<h2>Credit</h2>
<p>I wrote the Applescript and parts of the perl launcher. All other code is written by other people, and all I did was combining them to get it to work. Afaik, all involved tools are open source.</p>
<h2>Disclaimer</h2>
<p>This how-to is written without any trace of support commitment or endorsement from my employer as a company or me as the author. And if it makes your computer blow up, you alone were the one pressing the enter key. I will of course try to help you if you get stuck and I have the time, but without commitments.</p>
<p>I think I got all actions I had to do into this how-to, but I might have missed something. If you get stuck, send me an email or catch me on Skype, and I&#8217;ll try to recall what I did.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ithora.se/846/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reverse DNS CNAME&#8217;s (Swedish)</title>
		<link>http://www.ithora.se/467</link>
		<comments>http://www.ithora.se/467#comments</comments>
		<pubDate>Mon, 12 Jun 2000 14:56:41 +0000</pubDate>
		<dc:creator>Pal</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[IP]]></category>

		<guid isPermaLink="false">http://www.ithora.se/?p=467</guid>
		<description><![CDATA[Also check out my text about IP adresses! Subject: Re: [networking] Reverse DNS MA&#62; Det finns &#8220;classless reverse-DNS&#8221;, dvs de kan delegera vidare subnät som MA&#62; är mindre än /24. Det finns en RFC som behandlar detta, jag är inte &#8230; <a href="http://www.ithora.se/467">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Also check out my text about <a title="IP-adresser (Swedish)" href="http://www.ithora.se/465" target="_self">IP adresses</a>!</p>
<p>Subject: Re: [networking] Reverse DNS</p>
<p>MA&gt; Det finns &#8220;classless reverse-DNS&#8221;, dvs de kan delegera vidare subnät som<br />
MA&gt; är mindre än /24. Det finns en RFC som behandlar detta, jag är inte 100%<br />
MA&gt; säker på hur det fungerar (jag har har aldrig behövt göra det) men det<br />
MA&gt; involverar att man lägger upp 64 st IN NS (eller om det var CNAME) när det<br />
MA&gt; gäller reverse-dns som sen pekar på kundens DNS. Typ:<br />
MA&gt;<br />
MA&gt; 0-63.209.85.195.in-addr.arpa. IN NS kund-dns.domän.se<br />
MA&gt; 1.209.85.195.in-addr.arpa. IN CNAME 1.0-63.209.85.195.in-addr-arpa.<br />
MA&gt; 2.209.85.195.in-addr.arpa. IN CNAME 2.0-63.209.85.195.in-addr-arpa.<br />
MA&gt; 3.209.85.195.in-addr.arpa. IN CNAME 3.0-63.209.85.195.in-addr-arpa.<br />
MA&gt; 4.209.85.195.in-addr.arpa. IN CNAME 4.0-63.209.85.195.in-addr-arpa.</p>
<p>Jag kör reverse via CNAMES i flera steg. Det funkar såhär:</p>
<p>Reverse DNS vänder ju på adressen och lägger dit in-addr.arpa på slutet, så att<br />
195.42.219.125 blir 125.219.42.194.in-addr.arpa, sedan fungerar det i princip<br />
som &#8220;vanlig&#8221; DNS, fast med toppdomänen .arpa</p>
<p>195.42.219.0/24 handhas utav Wineasys DNS-server. Alltså ser NS-record och SOA<br />
för domänen 219.42.219.in-addr.arpa ut såhär:</p>
<p>219.42.195.in-addr.arpa. IN SOA ns.wineasy.se. registry.wineasy.se.<br />
219.42.195.in-addr.arpa. IN NS  ns.wineasy.se.<br />
219.42.195.in-addr.arpa. IN NS  ns2.wineasy.se.</p>
<p>Primär DNS för 219.42.219.in-addr.arpa är alltså ns.wineasy.se och sekundär är<br />
ns2.wineasy.se.</p>
<p>PXS (där min burk står) har adresserna 195.42.219.65 till 195.42.219.126 (64 är<br />
nätet och 127 är broadcast). Först måste man döpa domänen till något. I Wineasys<br />
fall kör de med nät-netmask.219.42.in-addr.arpa vilket i detta fall blir<br />
64-26.219.42.195.in-addr.arpa. Tittar man på det ser man att det blir en<br />
underdomän till 219.42.195.in-addr.arpa. Sedan lägger de in följande i sin<br />
zonfil:</p>
<p>64-26.219.42.195.in-addr.arpa. IN SOA wormhole.pxs.se. hostmaster.pxs.se.<br />
64-26.219.42.195.in-addr.arpa. IN NS  stargate.pxs.se.<br />
64-26.219.42.195.in-addr.arpa. IN NS  ns.wineasy.se.<br />
64-26.219.42.195.in-addr.arpa. IN NS  wormhole.pxs.se.</p>
<p>Primär DNS för 64-26.219.42.219.in-addr.arpa är alltså wormhole.pxs.se, och de<br />
andra två är sekundärer.</p>
<p>En klient som vill reverse-lookupa (eller vad fan verbet blir) ett IP-nummer<br />
skickar ju sin förfrågan efter om.vänt.ip.nummer.in-addr.arpa vilket för<br />
195.42.219.125 blir 125.219.42.195.in-addr.arpa. Eftersom NS för domänen<br />
219.42.195.in-addr.arpa är ns.wineasy.se och ns2.wineasy.se kommer ju klienten<br />
(eller snarare dennes DNS) att fråga dessa två servrar efter ovanstående<br />
adress. Alltså måste Wineasy lägga in följande i zonfilen för<br />
219.42.219.in-addr.arpa:</p>
<p>65.219.42.219.in-addr.arpa.  IN CNAME  65.64-26.219.42.219.in-addr.arpa.<br />
66.219.42.219.in-addr.arpa.  IN CNAME  66.64-26.219.42.219.in-addr.arpa.<br />
67.219.42.219.in-addr.arpa.  IN CNAME  67.64-26.219.42.219.in-addr.arpa.<br />
[...]<br />
124.219.42.219.in-addr.arpa.  IN CNAME  124.64-26.219.42.219.in-addr.arpa.<br />
125.219.42.219.in-addr.arpa.  IN CNAME  125.64-26.219.42.219.in-addr.arpa.<br />
126.219.42.219.in-addr.arpa.  IN CNAME  126.64-26.219.42.219.in-addr.arpa.</p>
<p>Då kommer klienten/DNS-servern som frågar att fråga efter NS för<br />
64-26.219.42.219.in-addr.arpa för att kunna fråga efter den nya adressen den<br />
fick via CNAME. Då får den svaret:</p>
<p>64-26.219.42.195.in-addr.arpa. IN NS  stargate.pxs.se.<br />
64-26.219.42.195.in-addr.arpa. IN NS  ns.wineasy.se.<br />
64-26.219.42.195.in-addr.arpa. IN NS  wormhole.pxs.se.</p>
<p>&#8230; och följaktligen kan sedan fråga någon av ovanstående servrar efter den nya<br />
adressen. I zonfilen för 64-26.219.42.219.in-addr.arpa (som ju wormhole<br />
&#8220;bestämmer&#8221; över) kan sedan PXS skriva in vad de vill. Det behöver inte ens<br />
stämma överens med A-records som pekar på det IP-numret, även om vissa<br />
programvaror (t ex IRC-servrar) kollar att A-records och PTR-records<br />
(reverse) stämmer överens.</p>
<p>PXS (eller snarare jag) har sedan i sin zonfil (den för<br />
64-26.219.42.219.in-addr.arpa) lagt in följande NS-pekare och CNAME&#8217;s för alla<br />
IP-nummer som ligger på min burk:</p>
<p>pal.64-26.219.42.195.in-addr.arpa. SOA nic.pal.pp.se. hostmaster.pal.pp.se.<br />
pal.64-26.219.42.195.in-addr.arpa. IN NS  nic.pal.pp.se.<br />
118.64-26.219.42.195.in-addr.arpa. IN CNAME 118.pal.64-26.219.42.195.in-addr.arpa.<br />
119.64-26.219.42.195.in-addr.arpa. IN CNAME 119.pal.64-26.219.42.195.in-addr.arpa.<br />
120.64-26.219.42.195.in-addr.arpa. IN CNAME 120.pal.64-26.219.42.195.in-addr.arpa.<br />
121.64-26.219.42.195.in-addr.arpa. IN CNAME 121.pal.64-26.219.42.195.in-addr.arpa.<br />
122.64-26.219.42.195.in-addr.arpa. IN CNAME 122.pal.64-26.219.42.195.in-addr.arpa.<br />
123.64-26.219.42.195.in-addr.arpa. IN CNAME 123.pal.64-26.219.42.195.in-addr.arpa.<br />
124.64-26.219.42.195.in-addr.arpa. IN CNAME 124.pal.64-26.219.42.195.in-addr.arpa.<br />
125.64-26.219.42.195.in-addr.arpa. IN CNAME 125.pal.64-26.219.42.195.in-addr.arpa.</p>
<p>Alltså kommer klienten/DNS-servern som frågar ännu en gång kolla upp NS för<br />
adressen den får från CNAME, och då få svaret nic.pal.pp.se, varefter den kommer<br />
att fråga nic.pal.pp.se efter PTR-pekaren.</p>
<p>Så kan man i teorin hålla på i evighet, men varje DNS-uppslagning tar ju lite<br />
tid, så fler än två steg är nog inte tillrådligt. Redan med min config så orkar<br />
en del otåliga applikationer inte vänta på svaret, utan kör med IP-numret direkt<br />
istället.</p>
<p>I alla ovanstående exempel har jag använt hela namnet inklusive domän och<br />
in-addr.arpa och hela köret, och sedan avslutat med en extra punkt. De flesta<br />
DNS-servrar lägger till domännamnet som zonfilen är för automagiskt om man<br />
struntar i punkten. Således kunde t ex:</p>
<p>125.64-26.219.42.195.in-addr.arpa. IN CNAME 125.pal.64-26.219.42.195.in-addr.arpa.</p>
<p>..i zonfilen för 64-26.219.42.195.in-addr.arpa lika gärna ha skrivits:</p>
<p>125 IN CNAME 125.pal</p>
<p>..istället. Detta gäller alla sorters records. Jag har dock använt hela namnet i<br />
alla exempel för att göra det lättare att se alla samband.</p>
<p>Ett exempel på en PTR-uppslagning efter 195.42.219.125:</p>
<p>Till någon rootserver (eller iaf någon server högre upp i hierarkien som har<br />
hand om 195.in-addr.arpa (ns.ripe.net) eller liknande):<br />
Fråga: NS för 219.42.195.in-addr.arpa.<br />
Svar: ns.wineasy.se. (och ett par andra). I svaret får man även IP-numret till<br />
NS-servrarna, varför man slipper slå upp dessa också.</p>
<p>Till ns.wineasy.se:<br />
Fråga: PTR för 125.219.42.195.in-addr.arpa.<br />
Svar: CNAME: 125.64-26.219.42.195.in-addr.arpa.</p>
<p>Till ns.wineasy.se:<br />
Fråga: NS för 64-26.219.42.195.in-addr.arpa.<br />
Svar: wormhole.pxs.se. (och ett par andra)</p>
<p>Till wormhole.pxs.se:<br />
Fråga: PTR för 125.64-26.219.42.195.in-addr.arpa.<br />
Svar: CNAME: 125.pal.64-26.219.42.195.in-addr.arpa.</p>
<p>Till wormhole.pxs.se:<br />
Fråga: NS för pal.64-26.219.42.195.in-addr.arpa.<br />
Svar: nic.pal.pp.se.</p>
<p>Till nic.pal.pp.se:<br />
Fråga: PTR för 125.pal.64-26.219.42.195.in-addr.arpa.<br />
Svar: wield.the.scythe.of.the.soulreaper.net.</p>
<p>Det är inte klienten som frågar det ovan (om jag har fattat allt rätt) utan<br />
DNS-servrarna som frågar varandra i en kedja tills de hittar rätt svar. Svaret<br />
till klienten ser alltså ut såhär:</p>
<p>125.219.42.195.in-addr.arpa. IN CNAME 125.64-26.219.42.195.in-addr.arpa.<br />
125.64-26.219.42.195.in-addr.arpa. IN CNAME 125.pal.64-26.219.42.195.in-addr.arpa.<br />
125.pal.64-26.219.42.195.in-addr.arpa. IN PTR wield.the.scythe.of.the.soulreaper.net.</p>
<p>/P</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ithora.se/467/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IP-adresser (Swedish)</title>
		<link>http://www.ithora.se/465</link>
		<comments>http://www.ithora.se/465#comments</comments>
		<pubDate>Sun, 20 Feb 2000 06:54:57 +0000</pubDate>
		<dc:creator>Pal</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[IP]]></category>

		<guid isPermaLink="false">http://www.ithora.se/?p=465</guid>
		<description><![CDATA[A revised version of this text was published in the magazine Nollett and it was the foundation for two educational animated movies &#8211; &#8220;The IP Zone&#8221; made by ad agency Houdini and &#8220;Hej IP-nummer!&#8221; made by ad agency Abel &#38; &#8230; <a href="http://www.ithora.se/465">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A revised version of this text was published in the magazine <a title="Nollett" href="http://www.nollett.com/" target="_blank">Nollett</a> and it was the foundation for two educational animated movies &#8211; &#8220;<a title="The IP Zone" href="http://demo.houdini.se/ipzone" target="_blank">The IP Zone</a>&#8221; made by ad agency <a title="Houdini" href="http://www.houdini.se/" target="_blank">Houdini</a> and &#8220;<a title="Hej IP-nummer!" href="http://www.abelbaker.se/ip/" target="_blank">Hej IP-nummer!</a>&#8221; made by ad agency <a title="Abel &amp; Baker" href="http://www.abelbaker.se/" target="_blank">Abel &amp; Baker</a>.</p>
<p>[Så här skrev en person en vacker dag på en mailinglista där jag är medlem:]</p>
<p>&gt; Var hittar jag en bra, gärna svensk beskrivning av IP-nummer (typ IP för<br />
&gt; dummies) För det är inte alltid lätt att förklara för en som inte har någon<br />
&gt; kunskap alls, ofta har de svårt att greppa &#8220;de fria serierna&#8221;  192.168&#8230; etc<br />
&gt;<br />
&gt; Kanske någon här rent av som kan komma med en bra förklaring. Där de olika<br />
&gt; klasserna förklaras.. etc<br />
&gt;<br />
&gt; The Pal hade ju en utmärkt beskrvning av en hub/switch, kanske ytterligare<br />
&gt; en bra beskrivning i bakfickan ? <img src='http://www.ithora.se/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>[Så här svarade jag (The Pal), efter en lång sömnlös natt:]</p>
<p>Sent ska syndaren vakna. Hittade det här i mina postpones. <img src='http://www.ithora.se/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>&#8220;Beskriv IP-nummer!&#8221; Jo tack. Beskriv livet? Beskriv Universum? Jag kunde ju<br />
iofs kunna skriva &#8220;IP-nummer är lite pryttlar man har hittat på för att folk ska<br />
kunna ställa dumma frågor till stackars överarbetade IT-konsulter på allsköns<br />
skumma mailinglistor&#8221;, men det gör jag inte&#8230;</p>
<p>Nåväl&#8230; sömn är ju ändå överskattat, och jag kan ju inte missa chansen att<br />
bräcka min egen hub/switch-förklaring.</p>
<p>Jag utgår från min egen far när jag skriver nedanstående, så bli inte förvånade<br />
om ni känner det som om jag pratar med er som om ni vore femåringar.</p>
<p>En IP-adress består av två delar. Ungefär som gatuadress. Om jag ska berätta var<br />
jag bor så säger jag inte bara &#8220;12&#8243; utan &#8220;Mössebergsvägen 12&#8243; trots att &#8220;12&#8243;<br />
rent krasst också vore rätt svar. Anledningen är att det finns flera &#8220;12&#8243;, och<br />
den jag pratar med skulle få svårt att hitta till rätt &#8220;12&#8243; om jag inte<br />
samtidigt sade &#8220;Mössebergsvägen&#8221;. Min adress består iofs även av stad, land och<br />
en massa andra parametrar, men i IP-världen finns bara &#8220;gata&#8221; (som då också<br />
består av siffror) och &#8220;nummer&#8221;.</p>
<p>En lång gata kan ju ha både tre och fyra siffror i gatunumret, men eftersom en<br />
IP-adress till skillnad från en gatuadress alltid består av lika många tecken,<br />
så är ju &#8220;nummer-delen&#8221; av adressen begränsad i storlek. Det har man löst genom<br />
att helt enkelt flytta gränsen mellan &#8220;gatu-delen&#8221; och &#8220;nummer-delen&#8221; i<br />
adressen, så att man tar lite siffror från &#8220;gatans&#8221; utrymme och ger till<br />
&#8220;numret&#8221;. Från början gjordes detta genom att dela in IP-adresserna i olika<br />
klasser efter hur många &#8220;nummer&#8221; det fick plats på &#8220;gatan&#8221;. Ju fler &#8220;nummer&#8221; man<br />
får plats med, desto färre &#8220;gator&#8221; kan det ju finnas, eftersom det totala<br />
utrymmet är konstant. IP-adresser är egentligen binära (liksom allt i datorernas<br />
värld) men p g a vissa begränsningar i den mänskliga hjärnan så konverterar vi<br />
vanligtvis adresserna till decimalt enligt en standard som kallas &#8220;dotted<br />
decimal&#8221;. En IP-adress är 32 bitar lång, så man har delat in den i 4 lika stora<br />
delar och satt punkter mellan delarna. Efter det har man räknat om varje del<br />
till det decimala systemet. 32 delat i 4 ger 8 binära siffror per del. 8 binära<br />
siffror kan bilda som mest 256 kombinationer. Därför kan en siffra i en<br />
IP-adress skriven enligt dotted decimal aldrig vara högre än 255 (eftersom 0<br />
också är en siffra kan den aldrig vara 256). Låt mig ge några exempel:</p>
<pre>Den binära "riktiga adressen": 11000000010001111101110000001010
Och så sätter vi dit punkterna: 11000000.01000111.11011100.00001010
Och så räknar vi om varje del för sig till decimalt: 192.71.220.10</pre>
<p>Då har vi en adress som iaf är liiite lättare att komma ihåg för en människa.</p>
<p>För att tillmötesgå olika behov i olika nätverk hittade man på klasser. Adresser<br />
som börjar med en nolla är klass A, adresser som börjar på en etta och en nolla<br />
är klass B och adresser som börjar två ettor och en nolla är klass C osv.<br />
Alltså:</p>
<pre>00XXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX: Klass A
10XXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX: Klass B
110XXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX: Klass C
1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX: Klass D
11110XXX.XXXXXXXX.XXXXXXXX.XXXXXXXX: Klass E</pre>
<p>Som synes är det bara den första oktetten som avgör klasstillhörigheten. Räknar<br />
vi om den första oktetten till decimalt får vi att IP-nummer som börjar med:</p>
<p>0-127 är klass A<br />
128-191 är klass B<br />
192-223 är klass C<br />
224-239 är klass D<br />
240-243 är klass E (Här är jag osäker på om det gäller 240 och uppåt, eller om<br />
det finns en övre gräns på 243&#8230; Swmike eller nån kanske?)</p>
<p>Klass A-C är vanliga klasser. Klass D är reserverad för multicast och klass E<br />
för experimentellt bruk.</p>
<p>Tjafset om gata och nummer då? Jo, från början så bestämdes att var gränsen<br />
mellan &#8220;gatu-delen&#8221; och &#8220;nummer-delen&#8221; skulle vara bestäms av<br />
klasstillhörigheten (ungefär som i dagens Jordbro <img src='http://www.ithora.se/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>I adresser i klass A (de som börjar på 0-127) så sattes den vid den första<br />
punkten. Alltså var den första siffran vilken &#8220;gata&#8221; adressen låg på. Räknar man<br />
lite snabbt så ger det 128 möjliga &#8220;gator&#8221;. Resten av siffrorna efter den första<br />
punkten fick bli &#8220;numret&#8221;. Det ger med lite snabb huvudräkning(!)<br />
256*256*256=16777216 möjliga &#8220;nummer&#8221; per &#8220;gata&#8221;. Mao rätt få &#8220;gator&#8221;, men en<br />
väldig massa &#8220;nummer&#8221; på varje &#8220;gata&#8221;. Översatt till IT alltså rätt få nätverk<br />
men en väldig massa datorer i varje nätverk.</p>
<p>Alla företag har ju inte så stora nätverk, men alla företag har heller inte<br />
IP-adresser i klass A. Då skulle dessutom inte nätverken räcka tlll eftersom det<br />
finns något fler företag än 128 här i världen.</p>
<p>I adresser i klass B (128-191) sattes gränsen på den mittersta punkten. Det ger<br />
(återigen med min snabba huvudräkning) 64*256 &#8220;gator&#8221; (inte 63*256, eftersom både<br />
128 och 191 teoretiskt sett är möjliga) möjliga &#8220;gator&#8221; med 256*256=65536 möjliga<br />
&#8220;nummer&#8221; per &#8220;gata&#8221;.</p>
<p>I klass C sattes den vid den sista punkten, vilket ger 32*256*256 möjliga nätverk<br />
med 256 möjliga datorer i varje.</p>
<p>D är multicast. Multicast är sändningar som går till flera adresser som<br />
inte nödvändigtvis ligger i samma nätverk.</p>
<p>E är för experimentellt bruk. Experimentellt bruk är experimentellt bruk.</p>
<p>Jag kommer inte att nämna klass D eller E i fortsättningen. Multicast läggar jag<br />
ut på entreprenad till Anders@Kamera. Det experimentella får min namne Magnus ta<br />
hand om. Varsågod och bräcka mig, Pojkar! <img src='http://www.ithora.se/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>För att krångla till det hela så bestämde man att det lägsta &#8220;numret&#8221; på varje<br />
&#8220;gata&#8221; fick representera själva &#8220;gatan&#8221;. Alltså kan inte en dator t ex ha<br />
IP-numret 192.168.100.0, eftersom det står för hela nätverket<br />
192.168.100.0-192.168.100.255. Dessutom bestämdes att alla nätverk ska ha en<br />
&#8220;broadcast-adress&#8221;. Skickas nåt till denna adress så lyssnar alla datorer i hela<br />
nätverket. Ungefär som när glassbilen kommer tutande på &#8220;gatan&#8221;. <img src='http://www.ithora.se/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Som<br />
broadcast-adress valdes det högsta IP-numret i varje nätverk. För<br />
192.168.100.0-nätet alltså 192.168.100.255. Då har vi minskat antalet möjliga<br />
datorer på det nätverket från 256 till 254. (För att ytterligare krångla till<br />
det hela finns det nätverk som kör med det högsta numret som nät-adress och det<br />
lägsta numret som broadcast, men det är så sällsynt så det kan vi bortse ifrån.)</p>
<p>Så&#8230; hänger ni med? Nähä&#8230; nåväl, jag fortsätter iaf&#8230;</p>
<p>Men.. om vi har ett företag som har 10000 datorer i nätverket då? Ska vi slösa<br />
bort en klass B med 65534 möjliga datorer på dem? Då kastar vi ju bort 55534<br />
adresser till ingen nytta, och antalet adresser är ju faktiskt begränsat.<br />
Samtidigt känns det ju jobbigt att administrera ihop 40 stycken klass C-nät. Det<br />
måste väl gå att lösa?</p>
<p>Visst. Enkelt. Vi flyttar gränsen för &#8220;gatu-delen&#8221; och &#8220;nummer-delen&#8221; så den<br />
ligger mitt emellan klass B och klass C. I princip så skrotar vi alltså<br />
klassindelningen, eftersom det ju inte går att ha olika klasser för alla olika<br />
storlekar på nätverk, och definitivt inte med samma kriterium (antalet ettor i<br />
början) som förut. Vi inför nåt som heter subnetmask istället. Vad är då det?<br />
Jo, det är ett binärt tal som är lika långt som IP-numret. Den talar om för oss<br />
vad som är en del av &#8220;gatan&#8221; och vad som är en del av &#8220;numret&#8221;. Alltså en &#8220;mask&#8221;<br />
som vi lägger över IP-adressen, som döljer &#8220;numret&#8221; när vi bara vill veta<br />
&#8220;gatan&#8221; och som tvärtom när vi vill veta tvärtom. Alltså:</p>
<p>IP: 11000000010001111101110000001010<br />
Och så lägger vi på en netmask, först samma netmask som standard enligt den<br />
gamla klassindelningen:<br />
Netmask: 11111111111111110000000000000000</p>
<p>Huh? Vaddå ettettettettnollnollnollnoll osv osv?? Vad betyder det här nurå? Jo,<br />
ettorna talar om att alla siffror i IP-adressen vars plats i netmasken hålls av<br />
en etta ingår i &#8220;gatu-delen&#8221;. De som motsvarar en nolla ingår i &#8220;nummer-delen&#8221;.<br />
Ovanstående netmask betyder alltså att &#8220;gatan&#8221; heter 1100000001000111 och<br />
datorn har i sin tur &#8220;nummer&#8221; 1011100000001010. Om vi sätter IP-numret och<br />
netmasken under varandra syns det ännu bättre (slå på courier eller nån annan<br />
fixed-width-font):</p>
<pre>IP-nummer:      11000000.01000111.10111000.00001010
Netmask:        11111111.11111111.00000000.00000000
Nätverk/"gata": 11000000.01000111
Dator/"nummer":                   10111000.00001010</pre>
<p>Även netmasken skrivs om till dotted decimal, och i ovanstående exempel gör vi<br />
det lätt för oss, eftersom gränsen går precis på en punkt. Decimalt:</p>
<pre>IP-nummer: 192.71 .220.10
Netmask:   255.255.0  .0
Nätverk:   192.71
Dator:             220.10</pre>
<p>Enkelt. Där det står 255 är det nätverks-delen och där det står 0 är det<br />
dator-delen. Men om vi vill ha 10000 datorer i ett nätverk och snåla med<br />
adresserna, så blir det inte lika enkelt:</p>
<p>För att få ihop minst 10000 unika kombinationer behöver vi 14 binära siffror<br />
(dec 10000 = bin 10011100010000). Alltså måste vi flytta gränsen till 14 siffror<br />
från slutet, vilket ger netmask 11111111111111111100000000000000. Skriver vi om<br />
det decimalt blir det 255.255.192.0. Exempel:</p>
<pre>IP-nummer bin: 11000000.01000111.10111000.00001010
Netmask bin:   11111111.11111111.11000000.00000000
IP-nummer dec: 192     .71      .220     .10
Netmask dec:   255     .255     .192     .0
Nätverk bin:   11000000.01000111.10
Dator bin:                         111000.00001010
Nätverk dec:   192     .71      .Ehh?
Dator dec:                       Ehh?    .10</pre>
<p>Helt plötsligt stämmer det ju inte. Tredje siffran decimalt är ju varken 255<br />
eller 0. Hur ska vi då kunna veta om vi ska räkna den till nätverket eller<br />
datorn? Svaret är både och. Vi får ta och räkna lite till bara (en himla massa<br />
räknande blir det). Eftersom vi har utöket antalet möjliga nätverk (med två<br />
binära siffror) så blir det ju flera möjliga nätverk som börjar på 192.71, och<br />
inte bara ett som i klass-samhället. dessa kommer (*räkna lite binärt*) att<br />
vara:</p>
<p>192.71.0.0 &#8211; 192.71.63.255<br />
Nät: 192.71.0.0, broadcast: 192.71.63,255 och datorerna allting mellan (och<br />
inklusive) 192.71.0.1 och 192.71.63.254</p>
<p>192.71.64.0 &#8211; 192.71.127.255<br />
Nät: 192.71.64.0, broadcast: 192.71.71,255 och datorerna mellan 192.71.64.1 och<br />
192.71.71.254</p>
<p>192.71.128.0 &#8211; 192.71.191.255<br />
Nät: 192.71.128.0, broadcast: 192.71.191,255 och datorerna mellan 192.71.128.1<br />
och 192.71.191.254</p>
<p>192.71.192.0 &#8211; 192.71.255.255<br />
Nät: 192.71.192.0, broadcast: 192.71.255,255 och datorerna mellan 192.71.192.1<br />
och 192.71.255.254</p>
<p>Vi får alltså plats med 4 stycken företag med 16382 datorer på varje, och det<br />
inom samma adressutrymme som vi bara hade fått plats med ett företag i om vi<br />
hade följt den gamla klassindelningen.</p>
<p>Är det jobbigt? Bra. Då flyttar vi netmasken två steg till, så vi har 20 binära<br />
siffror som nätverksdel och 12 som datordel:</p>
<pre>IP-nummer bin: 11000000.01000111.10111000.00001010
Netmask bin:   11111111.11111111.11100000.00000000
IP-nummer dec: 192     .71      .220     .10
Netmask dec:   255     .255     .240     .0
Nätverk bin:   11000000.01000111.1011
Dator bin:                           1000.00001010
Nätverk dec:   192     .71      .?
Dator dec:                       ?       .10</pre>
<p>Näten blir:</p>
<p>192.71.0.0 &#8211; 192.71.15.255<br />
192.71.16.0 &#8211; 192.71.31.255<br />
192.71.32.0 &#8211; 192.71.47.255<br />
192.71.48.0 &#8211; 192.71.63.255<br />
192.71.64.0 &#8211; 192.71.79.255<br />
192.71.80.0 &#8211; 192.71.95.255<br />
192.71.96.0 &#8211; 192.71.111.255<br />
192.71.112.0 &#8211; 192.71.127.255<br />
192.71.128.0 &#8211; 192.71.143.255<br />
192.71.144.0 &#8211; 192.71.159.255<br />
192.71.160.0 &#8211; 192.71.175.255<br />
192.71.176.0 &#8211; 192.71.191.255<br />
192.71.192.0 &#8211; 192.71.207.255<br />
192.71.208.0 &#8211; 192.71.223.255<br />
192.71.224.0 &#8211; 192.71.239.255<br />
192.71.240.0 &#8211; 192.71.255.255</p>
<p>Urk&#8230; jag brukar komma ihåg såna häringa nummer utantill, men ovan fick jag<br />
tänka till ordentligt för att få alla näten rätt. <img src='http://www.ithora.se/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Som vanligt är det lägsta numret i varje nätverk själva nätet (används t ex vid<br />
routing) och det högsta är broadcast.</p>
<p>Nu fick vi ihop 16 nätverk med 4094 möjliga datorer på varje. Bättre än att<br />
slösa bårt 16 hela klass B-nät eller bråka med att dela ut 256 klass C-nät (16<br />
stycken per företag). Lägg märke till att antalet B-nät blev detsamma som<br />
antalet C-nät per företag i nyss skrivna mening? Kan det ha med att göra att vi<br />
bröt den tredje oktetten precis mitt itu kanske? Kanske t o m att antalet<br />
möjliga kombinationer man kan få ihop med 4 binära siffror (en oktett delad mitt<br />
itu) är just 16? Ahh&#8230; jag älskar när logiken går ihop! <img src='http://www.ithora.se/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>På fackspråk kallas ovanstående för &#8220;classless&#8221;, eftersom man skiter i de gamla<br />
klassindelningarna. Även om man kör classless så är adresserna ovanför 224.0.0.0<br />
fortfarande reserverade för multicast och experiment/framtida<br />
användningsområden.</p>
<p>Ovanstående &#8220;isärbrytning&#8221; av en oktett behöver naturligtvis inte ske just i den<br />
tredje oktetten, utan kan lika väl vara i den första, andra eller fjärde. Då<br />
flyttar man bara mina räkneexempel till de oktetterna, och sätter 255 eller 0 i<br />
de andra. Rent teoretiskt går det faktiskt att ha netmaskar där ettorna och<br />
nollorna inte är sammanhängande, men för en människa är det lite väl. Dessutom<br />
ser jag inte någon större anledning, mer än just &#8220;because you can&#8221;. De flesta<br />
utrustningar skriker om man försöker.</p>
<p>&#8220;Privatnäten&#8221; då? De &#8220;fria serierna&#8221;? Vad är det för larv?</p>
<p>Om man ska ge varje dator på hela jorden en egen IP-adress räcker de helt enkelt<br />
inte till. Dessutom skulle det bli alldeles för stort att administrera. Varje<br />
dator behöver ju faktiskt inte vara (och bör inte vara) åtkomlig från varje tänkbar<br />
avsändare på hela Internet. Vi kan ju t ex börja med att plocka bort alla<br />
klienter på nätverket, och dessutom alla servrar med enbart interna göromål.<br />
Sagt och gjort. Vi ställer dit en firewall som skyddar alla dessa. Firewallen<br />
tar emot alla begärningar (heter det så?) från datorerna innanför, och<br />
vidarebefordrar sedan dessa ut på Internet. Då räcker det med att datorerna ute<br />
på Internet vet vad firewallen har för adress för att skicka ett svar.<br />
Firewallen håller reda på vilken dator som frågar vad, och skickar sedan svaret<br />
till rätt frågeställare (tekniken kallas NAT eller PAT, två olika tekniker för<br />
att göra samma sak på två olika sätt).</p>
<p>Bra. Då kan vi ju sätta vilka IP-adresser vi vill på insidan. Eller? Nej, det<br />
kan vi inte. Låt oss t ex på skoj använda serien 192.71.0.0 till alla interna<br />
datorer. 192.71.220.10 som jag använt ovan är egentligen IP-adressen för Tele2&#8242;s<br />
huvud-DNS-server nic.swip.net. Säg att en intern dator också har 192.71.220.10.<br />
Det gör väl ingenting? Datorerna ute på Internet ser ju ändå inte den? Nej, men<br />
datorern i det interna nätverket gör. Så fort en intern dator vill fråga<br />
nic.swip.net om nånting så kommer den att fråga den interna datorn med<br />
192.71.220.10 istället, och får då naturligtvis inget svar. Jamen, skit i<br />
nic.swip.net då! Jaha&#8230; och om IP-adressen istället användes av<br />
www.microsoft.com då? Det skulle innebära att ingen på det interna nätverket<br />
skulle kunna surfa till www.microsoft.com, och den stackars datorn som har det<br />
IP-numret internt skulle bli överöst med WWW-förfrågningar som den inte kan<br />
svara på.</p>
<p>Hur löser vi det här nudå? Jo, vi reserverar ett gäng nät som inte får användas<br />
ute på Internet, och alltså kan vi använda dem fritt i det interna nätet,<br />
eftersom det aldrig kan bli några krockar. De enda som kan ha samma IP-nummer är<br />
ju datorer på andra interna nät, som vi ändå varken kan eller ska komma åt.</p>
<p>De reserverade näten är:</p>
<p>10.0.0.0 255.0.0.0 (d v s 10.0.0.0 &#8211; 10.255.255.255)<br />
172.16.0.0 255.255.240.0 (d v s 172.16.0.0 &#8211; 172.16.31.255)<br />
192.168.0.0 255.255.0.0 (d v s 192.168.0.0 &#8211; 192.168.255.255)</p>
<p>Dessa kan man alltså använda internt utan risk för att någon dator ute på<br />
Internet använder samma adress som en intern dator.</p>
<p>Dessutom är 127.0.0.0 255.0.0.0 reserverad för den egna datorn (localhost).<br />
Pingar du en adress som börjar på 127 så pingar du alltså dig själv, oavsett<br />
vad du skriver efter 127.</p>
<p>Hmm&#8230; sluttampen&#8230; känns skönt&#8230; fast det är väl ändå ingen djävul som har<br />
orkat läsa ändå hit ner&#8230; Jag har skrivit i snart 3 timmar och 40 minuter&#8230;<br />
måste vara det längsta brev jag skrivit alla kategorier, digitalt som analogt.<br />
Jag CC:ar det här till min flicka (hon pluggar nätverk), och hon kommer väl att<br />
undra varför jag inte skriver lika långa brev till henne&#8230; nåja, en senare<br />
huvudvärk.. lite kort om routrar och DNS, sen är jag klar: (I löv jo, gumman!)</p>
<p>Routrar:</p>
<p>Routrar är datanätverkens postterminaler. De håller reda på vilka nätverk som<br />
ligger var (eller iaf åt vilket håll). Tänk dig först en liten postterminal.<br />
Receptionen på ett mindre företag t ex. De behöver inte bekymra sig så mycket om<br />
vart posten ska. Antingen kommer den med brevbäraren, och då ska den till<br />
postrummet, eller så ligger den i utkorgen, och då ska den till Posten (via nån<br />
postlåda). Likadant fungerar en liten router (t ex ISDN-routern jag är<br />
uppkopplad via nu). Den har ett lokalt nätverk (postrummet) och en &#8220;default<br />
gateway&#8221; (Posten). Allting som inte ska till det lokala nätverket skickar den<br />
till default gateway (i mitt fall dialup-server på Tele2 som tagit emot<br />
ISDN-samtalet som min router har ringt upp). Alla routrar har en tabell över<br />
alla nätverk de känner till samt en default gateway. Min router har en rätt<br />
enkel tabell med bara två rader.</p>
<p>Rad 1: Det lokala nätverket. I mitt fall 192.168.113.0 med netmask<br />
255.255.255.0. Allting som ska hit skriker den ut på det lokala nätverket.</p>
<p>Rad 2: Default gateway. I mitt fall Tele2&#8242;s dialup-server. Hit skickar den<br />
allting som inte ska till passar in på nån rad ovan. I mitt fall allt som inte<br />
ska till 192.168.113.0.</p>
<p>Ute på Internet finns det stora postterminaler. Årsta eller Tomteboda är blaha<br />
blaha i jämförelse. <img src='http://www.ithora.se/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  De har jättetabeller med tusentals nätverk och massor med<br />
olika linor hit och dit. Varje rad innehåller ett nätverk (Nät-adressen och<br />
netmask) och en IP-adress dit allting till det nätet ska skickas. Uppe i toppen<br />
finns t o m routrar utan default gateway. De kan alltså ALLA nät. Hur är nu det<br />
möjligt? Det blir ju miljoners miljoners olika nätverk mad alla möjliga olika<br />
netmaskar. Jo, de klumpar ihop näten. Ta t ex alla 192.71-näten ovan. Uppe bland<br />
de här höjdarna finns inte alla de näten. Där finns bara 192.71.0.0 med netmask<br />
255.255.0.0 och allting som ska dit skickas åt samma håll. (Längre upp finns nog<br />
bara 192.0.0.0 255.0.0.0 dessutom.) Längre ner finns det sedan andra mindre<br />
routrar (som fortfarande skulle skrämma slag på min lilla Shiva) som i sin tur<br />
delar upp 192.71.* till de mindre näten jag radade upp några meter upp i det här<br />
mailet. Till slut kommer (förhoppningsvis) alla paket fram till rätt adress. De<br />
stora routrarna känner alltså inte till alla smånäten, utan bara &#8220;klumparna&#8221;.<br />
Det ger avlastning åt dessa, samt frihet åt oss här nere på marken att mixtra<br />
runt med våra smånät utan att behöva tala om det för de stora pojkarna varje<br />
gång.</p>
<p>DNS:</p>
<p>Dotted decimal i all ära, men det är ändå lite jobbigt att komma ihåg alla<br />
adresser i huvudet. Tänk om ni skulle få skriva IP-nummer till varje site ni<br />
surfar till? Testa det bara en enda dag, så får ni se själva. Alltså måste vi<br />
hitta på nåt som är enklare för en människa att komma ihåg än en hop siffror.<br />
Bokstäver? Njaa.. Ord? Ja! Ord kommer vi ihåg. Vi är uppvuxna med ord. Vi<br />
använder ord varje dag. Ord kan vi och ord kommer vi ihåg. Därför spikade man<br />
ihop ett system där vi bara behöver komma ihåg orden, och så översätter datorn<br />
det med siffror. Från början fanns en fil &#8220;hosts&#8221; med en tabell över alla ord,<br />
och vilka IP-adresser de betydde. Den filen blev ganska stor med tiden (räkna<br />
gärna ut hur många rader det skulle bli idag!), så det ersattes med ett system<br />
där det står servrar lite varstans som håller reda på dessa ord och IP-nummer.<br />
Varje server har sitt ansvarsområde, din &#8220;domän&#8221;. Det finns stora servrar som<br />
har hand om hela toppdomäner, mellanservrar som har hand om vanliga domäner, och<br />
i vissa fall små servrar som har hand om underdomäner. Initialt innehåller de<br />
bara de domäner de har hand om. De största servrarna &#8220;root-servrarna&#8221; har en<br />
lista med alla toppdomäner, och ett IP-nummer som i sin tur pekar ut vilken<br />
server (inkl IP-nummer) som har hand om vilken toppdomän. nic.nic-se.se har t ex<br />
hand om hela .se</p>
<p>nic.nic-se.se har i sin tur en lista över alla domäner.se samt vilka servrar<br />
(inkl IP-nummer) som har hand om vilken domän. Dessa servrar i sin tur har dels<br />
listor över alla datorer som har namn under deras respektive domän och vilka<br />
IP-nummer de har. De kan också välja att lägga ut underdomäner på &#8220;entrepenad&#8221;<br />
till mindre servrar, och peka ut de servrarnas namn och IP-nummer. Alla klienter<br />
förses sedan med en eller flera DNS-servrar som de ska fråga när de vill ha reda<br />
på vilket IP-nummer ett visst namn har. Finns namnet i deras tabell svarar det<br />
helt enkelt. Finns inte namnet med har de i sin tur en annan större server som<br />
de frågar. Om inte heller den vet frågar den vidare ännu högre upp. Till slut är<br />
det någon som vet iaf vilken DNS-server som har hand om den toppdomän det<br />
handlar om. Den frågar då den servern, som i sin tur frågar vidare neråt, och<br />
när svaret kommer vandrar det samma väg tillbaka. Hela vägen läggs namnet och<br />
IP-numret in i cachen på servrarna med en timeout. Om de sedan får samma fråga<br />
igen, inann timeouten har gått ut, så kan de svara utan att behöva fråga<br />
vidare den här gången.</p>
<p>/Pal Pedagog</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ithora.se/465/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Hub/Switch (Swedish)</title>
		<link>http://www.ithora.se/470</link>
		<comments>http://www.ithora.se/470#comments</comments>
		<pubDate>Mon, 07 Feb 2000 10:26:45 +0000</pubDate>
		<dc:creator>Pal</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[IP]]></category>

		<guid isPermaLink="false">http://www.ithora.se/?p=470</guid>
		<description><![CDATA[On Mon, 7 Feb 2000, Christer Kolterjahn wrote: > Ursäkta en dum fråga &#8211; vad är skillnaden mellan en > switchar och hubbar och fördelar med respektive? En hub har ett gäng portar. Om nånting kommer in på en port &#8230; <a href="http://www.ithora.se/470">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>On Mon, 7 Feb 2000, Christer Kolterjahn wrote:</p>
<p>>   Ursäkta en dum fråga &#8211; vad är skillnaden mellan en<br />
>   switchar och hubbar och fördelar med respektive?</p>
<p>En hub har ett gäng portar. Om nånting kommer in på en port skriker den ut samma<br />
sak på alla portar. Den kan bara skrika en sak i taget.</p>
<p>En switch har ett gäng portar. Om nånting kommer in på en port lyssnar den efter<br />
vem som sa nåt, sen antecknar den att denna någon sitter på porten ifråga. Sen<br />
kollar den till vem det sagda ska. Om adressaten finns med i switchens<br />
anteckningar skriker den bara ut det på just den port som finns antecknad för<br />
just den adressaten. Om adressaten inte finns med i anteckningarna skriker den<br />
ut det på alla portar. Förhoppningsvis svarar adressaten nånting, och då får ju<br />
switchen ett alldeles utmärkt tillfälle att anteckna vilken port svaret kom på.<br />
Efter ett tag har switchen massor med anteckningar som ger en rätt bra bild på<br />
vem som sitter på vilken port, vilket gör att tillfällena när den måste skrika<br />
på alla portar blir färre och färre. Eftersom en del dumma<br />
nätverksadministratörer flyttar på burkar så de hamnar på andra portar, eller<br />
lägger till nya burkar, eller tar bort burkar, eller gör andra sådana där dumma<br />
saker som bara nätverksadminstratörer kan hitta på, så har switchen en timeout.<br />
Har den inte hört något från en viss burk på ett tag stryks den ur<br />
anteckningarna. På så viss hålls anteckningarna uppdaterade, och nätverket<br />
utnyttjas mycket effektivare, eftersom switchen kan skicka flera meddelanden<br />
samtidigt så länge inget ska till / kommer ifrån samma port. En 10 mbit/s switch<br />
kan alltså vara effektivare än en 100 mbit/s hub över en viss mängd portar och<br />
trafik.</p>
<p>/P</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ithora.se/470/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

