<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Daniel Lange's blog (Entries tagged as network)</title>
    <link>https://daniel-lange.com/</link>
    <description>agrep -pB IT /dev/life</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 2.6-alpha1 - http://www.s9y.org/</generator>
    <pubDate>Thu, 07 Jan 2016 07:36:44 GMT</pubDate>

    <image>
    <url>//daniel-lange.com/uploads/Avatar_Blog_144_234.png</url>
    <title>RSS: Daniel Lange's blog - agrep -pB IT /dev/life</title>
    <link>https://daniel-lange.com/</link>
    <width>144</width>
    <height>234</height>
</image>

<item>
    <title>IPv6: Getting rid of the dreaded &quot;Neighbour table overflow&quot;</title>
    <link>https://daniel-lange.com/archives/109-IPv6-Getting-rid-of-the-dreaded-Neighbour-table-overflow.html</link>
            <category>Internet</category>
    
    <comments>https://daniel-lange.com/archives/109-IPv6-Getting-rid-of-the-dreaded-Neighbour-table-overflow.html#comments</comments>
    <wfw:comment>https://daniel-lange.com/wfwcomment.php?cid=109</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=109</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;IPv6 is hard. It has many, many &lt;a href=&quot;https://cr.yp.to/djbdns/ipv6mess.html&quot; title=&quot;DJB&#039;s 2002 article on why IPv6 is a mess.&quot;&gt;design flaws&lt;/a&gt; and the decade where we all ignored it and hoped for the better hasn&#039;t helped.
So we&#039;re now all in on the protocol. Yeah.&lt;/p&gt;

&lt;p&gt;One of the design principles is that it tries to be rather stateless in the configuration and &quot;plug and play&quot;. But just like &lt;abbr title=&quot;Plug &amp;amp; Play (also known as Plug &amp;amp; Pray)&quot;&gt;P&amp;amp;P&lt;/abbr&gt; in the good old &lt;a href=&quot;https://en.wikipedia.org/wiki/Plug_and_play#ISA_and_PCI_self-configuration&quot; title=&quot;Wikipedia: Plug and Play ... ISA&quot;&gt;ISA times&lt;/a&gt;, it just doesn&#039;t always work.&lt;/p&gt;

&lt;p&gt;One of the common issues is that Linux bridges in IPv6 just don&#039;t work well with the router announcements that try to discover and configure the IPv6 neighbourhood.&lt;/p&gt;

&lt;p&gt;The result is a sheer endless amount of &quot;kernel: Neighbour table overflow.&quot; lines flooding dmesg and syslog (or journal for those on SystemD).&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Oct  4 16:26:06 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:11 host-260 kernel: __ratelimit: 1832 callbacks suppressed
Oct  4 16:26:11 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:11 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:11 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:11 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:11 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:11 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:11 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:11 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:11 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:11 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:16 host-260 kernel: __ratelimit: 887 callbacks suppressed
Oct  4 16:26:16 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:16 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:16 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:16 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:16 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:16 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:16 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:16 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:16 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:16 host-260 kernel: Neighbour table overflow.
Oct  4 16:26:23 host-260 kernel: __ratelimit: 803 callbacks suppressed
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;!-- s9ymdb:617 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;568&quot; height=&quot;38&quot; src=&quot;https://daniel-lange.com/uploads/entries/151004_Neighbour_table_overflow.png&quot; title=&quot;Grep -c(ount) on syslog&quot; alt=&quot;Grep -c(ount) on syslog&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Lovely. Welcome to a storage &lt;abbr title=&quot;Denial of Service&quot;&gt;DOS&lt;/abbr&gt; waiting to happen.&lt;/p&gt;

&lt;p&gt;So first tip:
&lt;code&gt;cat /proc/sys/kernel/printk_ratelimit&lt;/code&gt; shows you the amount of seconds the ratelimiter suppresses messages. The default is 5 seconds and you can adjust it to more reasonable values in case you get heavily flooded like in the example above. Notice that this will mean your dmesg becomes rather useless as the kernel is not very selective about which messages to suppress.&lt;/p&gt;

&lt;p&gt;Now when you google &quot;Neighbour table overflow&quot;, you&#039;ll find thousands of pages suggesting to increase the arp / lladdr caches and garbage collection (gc) times like so:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# Set ARP cache garbage collection interval
net.ipv4.neigh.default.gc_interval = 3600
net.ipv6.neigh.default.gc_interval = 3600

# Set ARP cache entry timeout
net.ipv4.neigh.default.gc_stale_time = 3600
net.ipv6.neigh.default.gc_stale_time = 3600

# Setup cache threshold for ARP
net.ipv4.neigh.default.gc_thresh1 = 1024
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh3 = 4096

# And the same for IPv6
net.ipv6.neigh.default.gc_thresh1 = 1024
net.ipv6.neigh.default.gc_thresh2 = 2048
net.ipv6.neigh.default.gc_thresh3 = 4096
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;That helps if and only if you really have 500+ IPv6 neighbours. Unless you have a badly segmented network or run in a university lab, you don&#039;t.&lt;/p&gt;

&lt;p&gt;Now ... you may be seeing messages like &quot;kernel: vmbr0: Multicast hash table maximum of 512 reached, disabling snooping: eth0&quot; or &quot;kernel: vmbr0: Multicast hash table chain limit reached: eth0&quot; in your dmesg / syslog / journal.&lt;/p&gt;

&lt;p&gt;That hints at what is really happening here: The bridge confused the link-local router negotiation and so you get endless ff02:: neighbour routing entries added to your caches until they flow over. So increasing the caches as in the sysctl entries above is basically pasting band-aid over the problem.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ip route show cache table all&lt;/code&gt; will show you the tables. With all entries. See if you have too many ff02:: neighbours in there.
If so, you should try to add change your &lt;code&gt;/etc/network/interfaces&lt;/code&gt; on Debian / Ubuntu similar to this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;iface vmbr0 inet6 static
   address 2a02:0100:1:1::500:1
   netmask 64
   gateway 2a02:0100:1:1::1
   post-up echo 2048 &amp;gt; /sys/class/net/vmbr0/bridge/hash_max
   post-up echo 1 &amp;gt; /sys/class/net/vmbr0/bridge/multicast_snooping
   post-up echo 0 &amp;gt; /proc/sys/net/ipv6/conf/vmbr0/accept_ra
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This obviously assumes your bridge is called &lt;code&gt;vmbr0&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Red Hat/CentOS users will need to adjust the config spread throughout multiple files in &lt;code&gt;/etc/sysconfig/network-scripts&lt;/code&gt;.
The &lt;code&gt;ifup-ipv6&lt;/code&gt; script is a good one to look at and amend.&lt;/p&gt;

&lt;p&gt;The increase of the hash_max entry makes your bridge survive the initial storm of (useless) router solicitations.&lt;br /&gt;
multicast_snooping is usually off when routing but you may need it to make sure your VMs on the bridge can be reached.&lt;br /&gt;
Finally we make sure the bridge does not accept router announcements. Because that is what the host system should handle.&lt;/p&gt;

&lt;p&gt;Sometimes you may need to throw in a static route or two to reach the VMs. &lt;abbr title=&quot;Plug &amp;amp; Play (also known as Plug &amp;amp; Pray)&quot;&gt;P&amp;amp;P&lt;/abbr&gt;, you remember ... &lt;code&gt;ip -6 neigh add nud permanent proxy &amp;lt;VM:IPv6:goes::here&amp;gt; dev vmbr0&lt;/code&gt; is your friend. Unfortunately the antidote for the dreaded &quot;Neighbour table overflow&quot; depends on the specific cause. So you&#039;ll have to poke around a bit. &lt;code&gt;tcpdump -i eth0 -v ip6&lt;/code&gt; will show you what is on the wire and &lt;code&gt;tcpdump -i vmbr0 -v ip6&lt;/code&gt; what&#039;s visible on the bridge.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Wed, 07 Oct 2015 16:25:00 +0000</pubDate>
    <guid isPermaLink="false">https://daniel-lange.com/archives/109-guid.html</guid>
    <category>bridge</category>
<category>dmesg</category>
<category>flood</category>
<category>ipv6</category>
<category>linux</category>
<category>network</category>
<category>storm</category>
<category>sysconfig</category>
<category>sysctl</category>
<category>syslog</category>

</item>
<item>
    <title>iTunes starts but does not show the main application window</title>
    <link>https://daniel-lange.com/archives/91-iTunes-starts-but-does-not-show-the-main-application-window.html</link>
            <category>IT</category>
    
    <comments>https://daniel-lange.com/archives/91-iTunes-starts-but-does-not-show-the-main-application-window.html#comments</comments>
    <wfw:comment>https://daniel-lange.com/wfwcomment.php?cid=91</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=91</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;Every once in a while iTunes on Windows decides to start but does not show the main application window when trying to sync an iPhone (or any other iDevice).&lt;br /&gt;
May be it pops up after half an hour, may be not.&lt;/p&gt;

&lt;p&gt;This behavior is caused by iTunes waiting for its &lt;a href=&quot;https://en.wikipedia.org/wiki/Bonjour_%28software%29&quot; title=&quot;Wikipedia: Bonjour&quot;&gt;Bonjour&lt;/a&gt; zeroconf network service.
Unfortunately though iTunes is updated very frequently that bug is persistent for years now.&lt;br /&gt;
The work-around is easy though:&lt;/p&gt;

&lt;p&gt;Open up &lt;strong&gt;&lt;code&gt;CMD&lt;/code&gt;&lt;/strong&gt; as &lt;strong&gt;Administrator&lt;/strong&gt; and type&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;code&gt;net stop &quot;bonjour service&quot;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and iTunes should pop up its window a few moments later.
It will complain about Bonjour not running but that is not needed for anything but network self-discovery. Which you usually don&#039;t need anyways.&lt;/p&gt;

&lt;p&gt;If you do, you can start Bonjour again with&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;code&gt;net start &quot;bonjour service&quot;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;anytime also while iTunes is running. Once it decides to show its main window, it&#039;s fine to go for the session.&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:611 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;842&quot; height=&quot;550&quot;  src=&quot;https://daniel-lange.com/uploads/entries/140215_Screenshot_iTunes_cmd.jpg&quot; title=&quot;Fixing Windows the Unix way ;-)&quot; alt=&quot;Screenshot of iTunes and the CMD window&quot; /&gt;&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Mon, 17 Feb 2014 12:00:00 +0000</pubDate>
    <guid isPermaLink="false">https://daniel-lange.com/archives/91-guid.html</guid>
    <category>apple</category>
<category>bonjour</category>
<category>bug</category>
<category>itunes</category>
<category>network</category>
<category>windows</category>
<category>zeroconf</category>

</item>
<item>
    <title>Keeping IRC nicks active</title>
    <link>https://daniel-lange.com/archives/54-Keeping-IRC-nicks-active.html</link>
            <category>IRC</category>
    
    <comments>https://daniel-lange.com/archives/54-Keeping-IRC-nicks-active.html#comments</comments>
    <wfw:comment>https://daniel-lange.com/wfwcomment.php?cid=54</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=54</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;Typical IRC services usually allow you to register with nickserv and link a number of nicks to a personal account. It&#039;s quite common to have nick, nick_ and nick__ as many IRC clients auto-append underscores if the primary nickname is already in use when connecting. Obviously you can set these alternate nicknames to almost anything you like in a decent client.&lt;/p&gt;

&lt;p&gt;Some folks also group a &quot;vanity&quot; nickname or two for whatever reason. To keep these active, people do the &quot;nick shuffle&quot; (/nick newnick, /nick oldnick) all the time:&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:530 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;967&quot; height=&quot;79&quot; src=&quot;https://daniel-lange.com/uploads/entries/100309_freenode_nick_shuffle.png&quot;  alt=&quot;nick shuffle on freenode&quot; /&gt;&lt;/p&gt;

&lt;p&gt;People who forget the occasional nick shuffle may end up losing a grouped nick because it became inactive. While freenode staff try to contact people before dropping linked nicks, there are occasional prunes of &quot;old data&quot; from the services database. And then nobody can really ask upfront.&lt;/p&gt;

&lt;p&gt;So before the next big purge comes up, I wrote a small bash script that logs into a nickserv account and cycles through the linked nicks.
A few friends and me have used it successfully for many months now.&lt;/p&gt;

&lt;p&gt;Grab a copy of &lt;a href=&quot;https://daniel-lange.com/software/keepnick&quot; title=&quot;keepnick bash script&quot;&gt;keepnick (2.4kB)&lt;/a&gt; and drop it into /usr/local/bin.&lt;/p&gt;

&lt;p&gt;Keepnick expects to have an accountname, the corresponding password and then a sequence of linked nicks given on its command line.&lt;/p&gt;

&lt;p&gt;Something like&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;local&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bin&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;keepnick accountname passw0rd linked_nick linked_nick_ vanity_nick MyOtherNick&lt;/div&gt;

&lt;p&gt;should work.&lt;/p&gt;

&lt;p&gt;For regular use, you need to set up a cron job to call keepnick e.g. every week. So put something like the following script into &lt;code&gt;/etc/cron.weekly/keepnicks_irc&lt;/code&gt; or create a corresponding crontab entry for &lt;code&gt;keepnicks_irc&lt;/code&gt; if you do not have the convenient cron.* directories set up:&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# run keepnick for user(s) irc account(s)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# intended to be run from cron, e.g. through /etc/cron.weekly&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;#&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #007800;&quot;&gt;KEEPNICK&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/usr/local/bin/keepnick&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666; font-style: italic;&quot;&gt;# better safe than sorry&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #007800;&quot;&gt;PATH&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin&amp;quot;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;export&lt;/span&gt; PATH&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #007800;&quot;&gt;$KEEPNICK&lt;/span&gt; accountname1 passw0rd1 linked_nick1 linked_nick1_ linked_nick1__&lt;br /&gt;&lt;span style=&quot;color: #007800;&quot;&gt;$KEEPNICK&lt;/span&gt; accountname2 passw0rd2 linked_nick1 linked_nick2_ linked_nick2__&lt;br /&gt;&amp;#160;&lt;/div&gt;

&lt;p&gt;You should see keepnick in action now every week like this:&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:529 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;758&quot; height=&quot;68&quot;  src=&quot;https://daniel-lange.com/uploads/entries/100306_keepnick_in_action.png&quot;  alt=&quot;keepnick in action&quot; /&gt;&lt;/p&gt;

&lt;p&gt;What happens here is that the IRC services package tells you, keepnick has just authenticated to your account and will now shuffle through all nicks you asked it to.
The big advantage is that is does this outside of channels, so not annoying any users. The cron job should make sure you don&#039;t forget the nick shuffle anymore.&lt;/p&gt;

&lt;h2&gt;Making sure your bash supports network connections&lt;/h2&gt;

&lt;p&gt;Stock bash will support network connections but on Debian and old (=pre-karmic) Ubuntu that capability was disabled at compile time.&lt;/p&gt;

&lt;p&gt;If you need to check whether your bash is compiled with network support, type &lt;code&gt;cat &amp;lt; /dev/tcp/time.nist.gov/13&lt;/code&gt; into a bash terminal.&lt;/p&gt;

&lt;p&gt;In case that gives you a &lt;a href=&quot;http://www.nist.gov/physlab/div847/grp40/its.cfm&quot; title=&quot;NIST Internet time service&quot;&gt;RFC-867 time string&lt;/a&gt;, you&#039;re all fine.
If not, re-compile your bash with &lt;code&gt;--enable-net-redirections&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Now for something more advanced (but entirely optional):&lt;/p&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://daniel-lange.com/archives/54-Keeping-IRC-nicks-active.html#extended&quot;&gt;Continue reading &quot;Keeping IRC nicks active&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 18 May 2010 21:50:00 +0000</pubDate>
    <guid isPermaLink="false">https://daniel-lange.com/archives/54-guid.html</guid>
    <category>account</category>
<category>active</category>
<category>bash</category>
<category>cron</category>
<category>freenode</category>
<category>irc</category>
<category>network</category>
<category>nick</category>
<category>script</category>
<category>stunnel</category>
<category>updated</category>

</item>
<item>
    <title>Binding applications to a specific IP</title>
    <link>https://daniel-lange.com/archives/53-Binding-applications-to-a-specific-IP.html</link>
            <category>Linux</category>
    
    <comments>https://daniel-lange.com/archives/53-Binding-applications-to-a-specific-IP.html#comments</comments>
    <wfw:comment>https://daniel-lange.com/wfwcomment.php?cid=53</wfw:comment>

    <slash:comments>22</slash:comments>
    <wfw:commentRss>https://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=53</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;These days many systems are multi-homed in the sense that they have more than one IP address bound at the same time.&lt;br /&gt;
I.e. for different network cards, virtual IPs for shared servers or just using WiFi and a wired network connection at the same time on a laptop.&lt;/p&gt;

&lt;p&gt;Murphy of course makes sure that your system will choose to worst IP (i.e. that on slow WiFi or the one reserved for admin access) when an application does not specifically supports binding to a selected IP address.
And Mozilla Firefox for example doesn&#039;t.&lt;/p&gt;

&lt;p&gt;The kernel chooses an outgoing IP from those in the routing table with the same metric:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;daniel@server:~$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.0.2.1         0.0.0.0         U     0      0        0 eth0
0.0.0.0         192.0.2.2         0.0.0.0         U     0      0        0 eth1
0.0.0.0         192.0.2.3         0.0.0.0         U     0      0        0 eth2
0.0.0.0         192.0.2.4         0.0.0.0         U     0      0        0 eth3
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can obviously play around with the metric and make the kernel router prefer the desired interface above others. This will affect all applications though.
Some people use the firewall to nat all packages to port 80 onto the network interface desired for web browsing. Gee, beware the http://somewebsite.tld:8080 links...&lt;/p&gt;

&lt;p&gt;Thankfully &lt;a href=&quot;http://www.ryde.net&quot; title=&quot;Daniel Ryde&#039;s homepage&quot;&gt;Daniel Ryde&lt;/a&gt; has solved the problem via a LD_PRELOAD shim. With his code you can run&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;daniel@laptop:~$ &lt;/span&gt;&lt;span style=&quot;color: #007800;&quot;&gt;BIND_ADDR&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;192.0.2.100&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #007800;&quot;&gt;LD_PRELOAD&lt;/span&gt;=&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;bind.so firefox &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;and happily surf away.&lt;/p&gt;

&lt;p&gt;To compile &lt;a href=&quot;http://www.ryde.net/code/bind.c.txt&quot; title=&quot;Bind.c LD_PRELOAD wrapper&quot;&gt;his code&lt;/a&gt; (3.3kB, &lt;a href=&quot;https://daniel-lange.com/software/bind.c&quot; title=&quot;Local copy of Daniel Ryde&#039;s Bind.c LD_PRELOAD wrapper&quot;&gt;local copy&lt;/a&gt;, see note 1)
you need to run&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;gcc&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-nostartfiles&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-fpic&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-shared&lt;/span&gt; bind.c &lt;span style=&quot;color: #660033;&quot;&gt;-o&lt;/span&gt; bind.so &lt;span style=&quot;color: #660033;&quot;&gt;-ldl&lt;/span&gt; -D_GNU_SOURCE&lt;br /&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;strip&lt;/span&gt; bind.so&lt;br /&gt;&lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;cp&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-i&lt;/span&gt; bind.so &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;usr&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;lib&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;and you&#039;re set to go.&lt;/p&gt;

&lt;p&gt;If you don&#039;t have gcc available (and trust me) you can download pre-compiled 32bit and 64bit (glibc-2) bind.so libraries &lt;a href=&quot;https://daniel-lange.com/software/bind_so_compiled.tar.gz&quot; title=&quot;Pre-compiled 32bit and 64bit bind.so libs&quot;&gt;here&lt;/a&gt; (4.5kB).&lt;/p&gt;

&lt;p&gt;I guess because Daniel Ryde hid his code so well on his webpage, Robert J. McKay wrote another LD_PRELOAD shim, called &lt;a href=&quot;http://wari.mckay.com/~rm/bindhack.c.txt&quot; title=&quot;Bindhack.c LD_PRELOAD wrapper&quot;&gt;Bindhack&lt;/a&gt; (4.5kB, &lt;a href=&quot;https://daniel-lange.com/software/bindhack.c&quot; title=&quot;Local mirror of Robert J. McKay&#039;s Bindhack.c LD_PRELOAD wrapper&quot;&gt;local mirror&lt;/a&gt;). This will - as is - only compile on 32bit machines. But YMMV.&lt;/p&gt;

&lt;p&gt;Run the above command &lt;strong&gt;(&amp;#42;)&lt;/strong&gt; with your desired (and locally bound) IP address in bash and visit &lt;a href=&quot;http://myip.dk&quot; title=&quot;MyIP.dk show-your-ip service&quot;&gt;MyIP.dk&lt;/a&gt; or &lt;a href=&quot;http://en.dnstools.ch/show-my-ip.html&quot; title=&quot;DNStools.ch show-your-ip service&quot;&gt;DNStools.ch&lt;/a&gt; or any of the other services that show your external IP to see whether you&#039;ve succeeded.&lt;/p&gt;

&lt;p&gt;Notes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Daniel Ryde did not specify the -D_GNU_SOURCE in the comments section of bind.c. Modern glibc/gcc need that as he used RTLD_NEXT which is Unix98 and not POSIX. I amended the local copy of bind.c and sent him an email so he can update his.&lt;/li&gt;
&lt;li&gt;Both are IPv4 only, no IPv6 support.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;Updates:&lt;/h3&gt;

&lt;p&gt;19.03.15 madmakz wrote in to clarify that all of the bind LD_PRELOAD shims only work with TCP connections. So &lt;strong&gt;not&lt;/strong&gt; with UDP.&lt;br /&gt;
I&#039;m not aware of a shim that manipulates UDP sockets.&lt;/p&gt;

&lt;p&gt;14.01.14 Christian Pellegrin wrote a superb &lt;a href=&quot;http://www.evolware.org/?p=293&quot; title=&quot;Article: Using Linux Network Namespaces for per processes routing&quot;&gt;article&lt;/a&gt; on how to achieve per-application routing with the help of Linux network namespaces.&lt;/p&gt;

&lt;p&gt;16.06.13 showip.be seems to be gone, so I replaced it with dnstools.ch in the text above. There are &lt;a href=&quot;http://www.google.com/search?q=show+my+ip&quot; title=&quot;Google for see-your-external-IP services&quot;&gt;plenty of others&lt;/a&gt; as well.&lt;/p&gt;

&lt;p&gt;22.06.12 Lennart Poettering has a IPv4 only version of a shim and a rather good readme available at &lt;a href=&quot;http://0pointer.de/lennart/projects/fixsrcip/&quot; title=&quot;Lennart Poettering&#039;s FixSrcIP&quot;&gt;his site&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;29.11.10 Catalin M. Boie wrote another LD_PRELOAD shim, &lt;a href=&quot;http://kernel.embedromix.ro/us/&quot; title=&quot;Catalin(ux) Homepage&quot;&gt;force_bind&lt;/a&gt;. I have not tested this one. It&#039;s capable of handling IPv6 binds.&lt;/p&gt;

&lt;p&gt;11.01.09 Daniel Ryde has replied to my email and updated his local copy now as well.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Sat, 09 Jan 2010 19:00:00 +0000</pubDate>
    <guid isPermaLink="false">https://daniel-lange.com/archives/53-guid.html</guid>
    <category>address</category>
<category>bind</category>
<category>ip</category>
<category>ld_preload</category>
<category>multi-homed</category>
<category>network</category>
<category>updated</category>

</item>
<item>
    <title>Ubuntu Karmic 9.10 Bluetooth UMTS Dial-up (DUN)</title>
    <link>https://daniel-lange.com/archives/52-Ubuntu-Karmic-9.10-Bluetooth-UMTS-Dial-up-DUN.html</link>
            <category>Linux</category>
    
    <comments>https://daniel-lange.com/archives/52-Ubuntu-Karmic-9.10-Bluetooth-UMTS-Dial-up-DUN.html#comments</comments>
    <wfw:comment>https://daniel-lange.com/wfwcomment.php?cid=52</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>https://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=52</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;Using a mobile phone&#039;s Bluetooth Dial-up network (DUN) to connect to the Internet (UMTS/GPRS) while on the road is quite convenient for me. Sadly so this is not supported out-of-the-box in Ubuntu Karmic 9.10 (Netbook Remix) as it uses Network-Manager to handle - well - network connections. And that is &lt;a href=&quot;https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/269329&quot; title=&quot;Ubuntu bug #269329 - NM 0.7 lacks bluetooth 3g support&quot; target=&quot;_blank&quot;&gt;not quite there on Bluetooth managed devices yet&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;While the default solution (rfcomm and Gnome-PPP) still works, it&#039;s ugly to set up. Sadly so, zillions of Ubuntu-Forum threads and blog entries still detail this solution - or the issues encountered with it along the way.&lt;/p&gt;

&lt;p&gt;The much better solutions is using &lt;a href=&quot;http://blueman-project.org&quot; title=&quot;Blueman GTK+ Bluetooth solution&quot; target=&quot;_blank&quot;&gt;Blueman&lt;/a&gt;, an improved Gnome-Bluetooth primarily developed by Valmantas Palikša. It brings the right UDEV magic along to teach Network-Manager about the Bluetooth devices it handles.&lt;/p&gt;

&lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 724px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:528 --&gt;&lt;img class=&quot;serendipity_image_right&quot; width=&quot;724&quot; height=&quot;462&quot;  src=&quot;https://daniel-lange.com/uploads/entries/091221_Blueman_Ubuntu.png&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Blueman Screenshot on Ubuntu Karmic 9.10 Netbook Edition&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Just follow the steps on their &lt;a href=&quot;http://blueman-project.org/downloads.html&quot; title=&quot;Blueman downloads (and - more important - instructions for various distributions)&quot; target=&quot;_blank&quot;&gt;downloads page&lt;/a&gt; to set up the Blueman PPA (Personal Package Archive) to get things working.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Mon, 21 Dec 2009 17:10:00 +0000</pubDate>
    <guid isPermaLink="false">https://daniel-lange.com/archives/52-guid.html</guid>
    <category>bluetooth</category>
<category>dial-up</category>
<category>dun</category>
<category>gprs</category>
<category>network</category>
<category>network-manager</category>
<category>ubuntu</category>
<category>umts</category>

</item>
<item>
    <title>Windows Vista dial-up networking slow to establish connection</title>
    <link>https://daniel-lange.com/archives/42-Windows-Vista-dial-up-networking-slow-to-establish-connection.html</link>
            <category>IT</category>
    
    <comments>https://daniel-lange.com/archives/42-Windows-Vista-dial-up-networking-slow-to-establish-connection.html#comments</comments>
    <wfw:comment>https://daniel-lange.com/wfwcomment.php?cid=42</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=42</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;If you find that Microsoft Windows Vista is slow to establish a dial-up network connection (DUN) (&quot;register with the network&quot;), that may be caused by it trying to also get an IPv6 on a IPv4 only ISP.
Remove the IPv6 protocol from the Properties -&gt; Network tab of the DUN then.
Worked for me on dialing into an ISP via Bluetooth / mobile phone. Ymmv.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Sun, 12 Apr 2009 21:02:54 +0000</pubDate>
    <guid isPermaLink="false">https://daniel-lange.com/archives/42-guid.html</guid>
    <category>dial-in</category>
<category>dial-up</category>
<category>dun</category>
<category>network</category>
<category>slow</category>
<category>vista</category>
<category>windows</category>

</item>
<item>
    <title>Disabling a group policy'd screensaver on Windows</title>
    <link>https://daniel-lange.com/archives/34-Disabling-a-group-policyd-screensaver-on-Windows.html</link>
            <category>IT</category>
    
    <comments>https://daniel-lange.com/archives/34-Disabling-a-group-policyd-screensaver-on-Windows.html#comments</comments>
    <wfw:comment>https://daniel-lange.com/wfwcomment.php?cid=34</wfw:comment>

    <slash:comments>20</slash:comments>
    <wfw:commentRss>https://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=34</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;I guess many people know the issue of having a screen saver forced active after a some time through a group policy in a corporate environment. This is usually done to make sure systems are locked during breaks if people forget to press Win+L (or Ctrl+Alt+Del and then Enter).
While that may well help IT security, it turns problematic when giving presentations for extended periods of time.  Having to move the mouse through the presentation pointer every few minutes or dash back to the PC once the screen saver has kicked in, again, is simply annoying.
On your company&#039;s systems you may be able to get the system admins to allow configuration of the interval or allow for disabling the screen saver, but on foreign systems you&#039;re often lost. But...&lt;/p&gt;
 &lt;a class=&quot;block_level&quot; href=&quot;https://daniel-lange.com/archives/34-Disabling-a-group-policyd-screensaver-on-Windows.html#extended&quot;&gt;Continue reading &quot;Disabling a group policy&#039;d screensaver on Windows&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 13 Aug 2008 19:33:05 +0000</pubDate>
    <guid isPermaLink="false">https://daniel-lange.com/archives/34-guid.html</guid>
    <category>network</category>
<category>screensaver</category>
<category>security</category>
<category>updated</category>
<category>vista</category>
<category>windows</category>
<category>xp</category>

</item>
<item>
    <title>Apache fails to start at boot, but works when started manually</title>
    <link>https://daniel-lange.com/archives/1-Apache-fails-to-start-at-boot,-but-works-when-started-manually.html</link>
            <category>Apache</category>
            <category>Gentoo</category>
    
    <comments>https://daniel-lange.com/archives/1-Apache-fails-to-start-at-boot,-but-works-when-started-manually.html#comments</comments>
    <wfw:comment>https://daniel-lange.com/wfwcomment.php?cid=1</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=1</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;Since a baselayout update Apache fails to start on Gentoo at (re-)boot of a server if that server has unused ethernet interfaces.&lt;/p&gt;

&lt;p&gt;The symptom is that Apache fails to start on boot although it has been added to the runlevel with&lt;br /&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt; rc-update add apache default&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;This is caused by recent baselayouts not working properly with more than one eth and not all of them being up.&lt;br /&gt;&lt;br /&gt;Thus changing &lt;font face=&quot;courier new,courier,monospace&quot;&gt;depend() { need net ... }&lt;/font&gt; into&lt;br /&gt;&lt;font face=&quot;courier new,courier,monospace&quot;&gt;depend() { need net&lt;b&gt;.eth0&lt;/b&gt; ... }&lt;/font&gt; at the top of /etc/init.d/apache2 will help.&lt;br /&gt;&lt;br /&gt;While you&#039;re at it you could also add an nice &lt;font face=&quot;courier new,courier,monospace&quot;&gt;after urandom&lt;/font&gt; to the existing &lt;font face=&quot;courier new,courier,monospace&quot;&gt;depend ()&lt;/font&gt; construct&lt;br /&gt;and make sure apr and apache are emerged with flag urandom set. Reading from /dev/random to initialize the digest authentication mechanism (or SSL for that matter) might cause apache to block otherwise if there is not enough entropy in the random pool.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Wed, 03 Oct 2007 14:26:28 +0000</pubDate>
    <guid isPermaLink="false">https://daniel-lange.com/archives/1-guid.html</guid>
    <category>apache</category>
<category>baselayout</category>
<category>bug</category>
<category>eth</category>
<category>gentoo</category>
<category>init.d</category>
<category>network</category>

</item>

</channel>
</rss>
