<?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>宁牛印迹</title>
	<atom:link href="http://www.hduo.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.hduo.net</link>
	<description>养个Blog当宠物</description>
	<lastBuildDate>Fri, 24 Feb 2012 03:44:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>KVM虚拟机按需添加iptables规则</title>
		<link>http://www.hduo.net/archives/kvm-libvirtd-iptables-rules.html</link>
		<comments>http://www.hduo.net/archives/kvm-libvirtd-iptables-rules.html#comments</comments>
		<pubDate>Wed, 22 Feb 2012 08:16:39 +0000</pubDate>
		<dc:creator>宁牛</dc:creator>
				<category><![CDATA[Sa]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.hduo.net/?p=1680</guid>
		<description><![CDATA[环境：Centos6.2,libvirt-0.9.4, 服务器公网IP用完[eth0网卡桥接成br0]，主要用于提供HTTP服务，新添加一台windows虚拟机用于测试，使用默认的NAT网络，考虑直接用iptables转发相关流量到虚拟机来实现。 公网IP：1.2.3.4 排除端口：80,21,22,1723 虚拟机IP：192.168.122.188 可以用以下iptables rules实现： # /sbin/iptables -t nat -I PREROUTING -i br0 -d 1.2.3.4 -p tcp -m multiport ! &#8211;dports 80,21,22,1723 -j DNAT &#8211;to 192.168.122.188 # /sbin/iptables -t nat -I POSTROUTING -o br0 -s 192.168.122.188 -j SNAT &#8211;to 1.2.3.4 # /sbin/iptables -t filter -I FORWARD -i br0 -d 192.168.122.188 -j ACCEPT # [...]]]></description>
			<content:encoded><![CDATA[<p>环境：Centos6.2,libvirt-0.9.4, 服务器公网IP用完[eth0网卡桥接成br0]，主要用于提供HTTP服务，新添加一台windows虚拟机用于测试，使用默认的NAT网络，考虑直接用iptables转发相关流量到虚拟机来实现。</p>
<p>公网IP：1.2.3.4<br />
排除端口：80,21,22,1723<br />
虚拟机IP：192.168.122.188</p>
<p><span id="more-1680"></span>可以用以下iptables rules实现：</p>
<blockquote><p># /sbin/iptables -t nat -I PREROUTING -i br0 -d 1.2.3.4 -p tcp -m multiport ! &#8211;dports 80,21,22,1723 -j DNAT &#8211;to 192.168.122.188<br />
# /sbin/iptables -t nat -I POSTROUTING -o br0 -s 192.168.122.188 -j SNAT &#8211;to 1.2.3.4<br />
# /sbin/iptables -t filter -I FORWARD -i br0 -d 192.168.122.188 -j ACCEPT<br />
# /sbin/iptables -t filter -I FORWARD -o br0 -s 192.168.122.188 -j ACCEPT</p></blockquote>
<p>添加时需要注意，libvirtd启动虚拟网络时会自动添加相应的rules、需确定新加rules顺序以及是否与现有的rules冲突，如果启用了iptables的state模块，需要检查是否可以精简部分rules。</p>
<p>由于虚拟机仅仅用于测试，测试完了一般会关机，本着尽量精简iptables匹配rules的原则，虚拟机关闭后还需要手动删除添加的rules。利用<a title="Hooks for specific system management" href="http://libvirt.org/hooks.html" target="_blank">libvirtd的hooks</a>可以实现按需添加与清除iptables。</p>
<p>libvirtd的hooks脚本有3个，位于/etc/libvirt/hooks目录，如果不存在，可以手动建立。</p>
<p>1. daemon　在libvird启动、停止、重载配置后执行<br />
2. qemu　　在QEMU虚拟机启动、停止、迁移后执行<br />
3. lxc　　　 在LXC虚拟机启动、停止后执行</p>
<p><strong>/etc/libvirt/hooks/qemu</strong></p>
<p>QEMU虚拟机在启动前，会在以下两种场合执行，任意情况下执行失败，虚拟机将不能启动。<br />
1. libvirt标识资源之前执行[主要用于分配一些不受libvirt管控的资源]</p>
<blockquote><p>/etc/libvirt/hooks/qemu guest_name prepare begin -</p></blockquote>
<p>2. libvirt已标识完所有资源但还没启动虚拟机时执行</p>
<blockquote><p>/etc/libvirt/hooks/qemu guest_name start begin -</p></blockquote>
<p>与启动对应，在QEMU虚拟机停止后也有相应的hooks，在以下两种情况下被执行<br />
a. 虚拟机关闭后，在libvirt恢复资源标识前执行</p>
<blockquote><p>/etc/libvirt/hooks/qemu guest_name stopped end -</p></blockquote>
<p>b. libvirt将所有资源释放后执行</p>
<blockquote><p>/etc/libvirt/hooks/qemu guest_name release end -</p></blockquote>
<p>这里用到qemu脚本。</p>
<p># vi /etc/libvird/hooks/qemu</p>
<blockquote><p>#!/bin/bash</p>
<p>EXTERNAL_IF=br0<br />
EXTERNAL_IP=204.45.16.35<br />
INTERNAL_IP=192.168.122.188<br />
EXCLUDE_PORTS=80,21,22,1723<br />
IPTCMD=/sbin/iptables</p>
<p>GUEST=$!<br />
ACTION=$2</p>
<p>if [ "$1" = "My-Windows2003" ]; then<br />
&nbsp;&nbsp;if [ "${ACTION}" = "start" ]; then<br />
&nbsp;&nbsp;&nbsp;&nbsp;${IPTCMD} -t nat -I PREROUTING -i ${EXTERNAL_IF} -d ${EXTERNAL_IP} -p tcp -m multiport ! &#8211;dports ${EXCLUDE_PORTS} -j DNAT &#8211;to ${INTERNAL_IP}<br />
&nbsp;&nbsp;&nbsp;&nbsp;${IPTCMD} -t nat -I POSTROUTING -o ${EXTERNAL_IF} -s ${INTERNAL_IP} -j SNAT &#8211;to ${EXTERNAL_IP}<br />
&nbsp;&nbsp;&nbsp;&nbsp;${IPTCMD} -t filter -I FORWARD -i ${EXTERNAL_IF} -d ${INTERNAL_IP} -j ACCEPT<br />
&nbsp;&nbsp;elif [ "${ACTION}" = "release" ]; then<br />
&nbsp;&nbsp;&nbsp;&nbsp;${IPTCMD} -t nat -D PREROUTING -i ${EXTERNAL_IF} -d ${EXTERNAL_IP} -p tcp -m multiport ! &#8211;dports ${EXCLUDE_PORTS} -j DNAT &#8211;to ${INTERNAL_IP}<br />
&nbsp;&nbsp;&nbsp;&nbsp;${IPTCMD} -t nat -D POSTROUTING -o ${EXTERNAL_IF} -s ${INTERNAL_IP} -j SNAT &#8211;to ${EXTERNAL_IP}<br />
&nbsp;&nbsp;&nbsp;&nbsp;${IPTCMD} -t filter -D FORWARD -i ${EXTERNAL_IF} -d ${INTERNAL_IP} -j ACCEPT<br />
&nbsp;&nbsp;fi<br />
fi</p></blockquote>
<blockquote><p># chmod a+x /etc/libvirt/hooks/qemu</p></blockquote>
<p><font color="blue">注意，如果libvirtd已经在运行中，添加了qemu文件后需重载libvirt配置</font></p>
<blockquote><p># /etc/init.d/libvirtd reload</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.hduo.net/archives/kvm-libvirtd-iptables-rules.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE/Firefox/Google Chrome浏览器更改临时文件路径</title>
		<link>http://www.hduo.net/archives/browser-cache-dir-change.html</link>
		<comments>http://www.hduo.net/archives/browser-cache-dir-change.html#comments</comments>
		<pubDate>Sat, 08 Oct 2011 13:53:41 +0000</pubDate>
		<dc:creator>宁牛</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[浏览器]]></category>

		<guid isPermaLink="false">http://www.hduo.net/?p=1663</guid>
		<description><![CDATA[IE  打开IE，工具  -&#62; Internet选项 -&#62; “常规”选项卡 -&#62; 浏览历史记录 [设置] -&#62; 移动文件夹  选择指定文件夹就可以了，IE会默认新建一个名为&#8221;Internet 临时文件&#8221;的文件夹，些文件夹默认添加了两个属性HIDE SYS，即隐藏文件、系统文件。 Firefox  新建一个标签页，地址栏中输入about:config 回车，在config列表中右键新建一个字符串配置项，名称为browser.cache.disk.parent_directory，值为要指定的路径。 Google Chrome  Google Chrome未提供类firefox的配置项，可以在浏览器启动链接后添加一个参数&#8221;&#8211;disk-cache-dir&#8221;来指定临时目录存放位置。 C:\Users\u01\AppData\Local\Google\Chrome\Application\chrome.exe &#8211;disk-cache-dir=E:\ChromeCache 这个设置仅对直接点击链接打开的Chrome进程有效，通过外部调用打开的链接仍然没有改变，可以更改注册表项来纠正。HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command，为原值添加一个&#8221;&#8211;disk-cache-dir&#8221;选项。]]></description>
			<content:encoded><![CDATA[<p lang="en-US"><strong>IE</strong></p>
<p> 打开IE，工具  -&gt; Internet选项 -&gt; “常规”选项卡 -&gt; 浏览历史记录 [设置] -&gt; 移动文件夹</p>
<p lang="en-US"> 选择指定文件夹就可以了，IE会默认新建一个名为&#8221;Internet 临时文件&#8221;的文件夹，些文件夹默认添加了两个属性HIDE SYS，即隐藏文件、系统文件。</p>
<p><span id="more-1663"></span><strong>Firefox</strong></p>
<p lang="en-US"> 新建一个标签页，地址栏中输入about:config 回车，在config列表中右键新建一个字符串配置项，名称为browser.cache.disk.parent_directory，值为要指定的路径。</p>
<p><strong>Google Chrome</strong></p>
<p lang="en-US"> Google Chrome未提供类firefox的配置项，可以在浏览器启动链接后添加一个参数&#8221;&#8211;disk-cache-dir&#8221;来指定临时目录存放位置。</p>
<p>C:\Users\u01\AppData\Local\Google\Chrome\Application\chrome.exe &#8211;disk-cache-dir=E:\ChromeCache</p>
<p>这个设置仅对直接点击链接打开的Chrome进程有效，通过外部调用打开的链接仍然没有改变，可以更改注册表项来纠正。HKEY_CLASSES_ROOT\ChromeHTML\shell\open\command，为原值添加一个&#8221;&#8211;disk-cache-dir&#8221;选项。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hduo.net/archives/browser-cache-dir-change.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora 14 中的虚拟化网络</title>
		<link>http://www.hduo.net/archives/virtual-networks-in-fedora.html</link>
		<comments>http://www.hduo.net/archives/virtual-networks-in-fedora.html#comments</comments>
		<pubDate>Wed, 16 Feb 2011 08:44:59 +0000</pubDate>
		<dc:creator>宁牛</dc:creator>
				<category><![CDATA[Sa]]></category>
		<category><![CDATA[bridge]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nat]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://www.hduo.net/?p=1643</guid>
		<description><![CDATA[Fedoara 14和RHEL 6［kvm］中为虚拟化提供了3种配置支持， 1. Network Address Translation [NAT] 2. 直接分配物理设备 [PCI passthrough or SR-IOV] 3. 共享物理设备［Bridge] 其中NAT是默认开启的，如果要想外网能访问虚拟机多使用直接分配物理设备或者桥接网络。 NAT: 几乎所有标准的libvirt都支持NAT作为虚拟网络［default virtual network］，virsh net-list &#8211;all 可以查看 # virsh net-list &#8211;all Name State Autostart &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; default active yes 如果相应的xml配置文件丢失，可以从模板中提取： # virsh net-define /usr/share/libvirt/networks/default.xml 然后将虚拟网络标识为自动启动: # virsh net-autostart default # virsh net-start default 查看桥接情况，virbr0 通过NAT和IP转发与实体网络连通，不添加其它接口。 # brctl show bridge [...]]]></description>
			<content:encoded><![CDATA[<p>Fedoara 14和RHEL 6［kvm］中为虚拟化提供了3种配置支持，<br />
1. Network Address Translation [NAT]<br />
2. 直接分配物理设备 [PCI passthrough or SR-IOV]<br />
3. 共享物理设备［Bridge]</p>
<p><span id="more-1643"></span></p>
<p>其中NAT是默认开启的，如果要想外网能访问虚拟机多使用直接分配物理设备或者桥接网络。</p>
<p><strong>NAT</strong>:<br />
几乎所有标准的libvirt都支持NAT作为虚拟网络［default virtual network］，virsh net-list &#8211;all 可以查看</p>
<blockquote><p># virsh net-list &#8211;all<br />
Name State Autostart<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
default active yes</p></blockquote>
<p>如果相应的xml配置文件丢失，可以从模板中提取：</p>
<blockquote><p># virsh net-define /usr/share/libvirt/networks/default.xml</p></blockquote>
<p>然后将虚拟网络标识为自动启动:</p>
<blockquote><p># virsh net-autostart default<br />
# virsh net-start default</p></blockquote>
<p>查看桥接情况，virbr0 通过NAT和IP转发与实体网络连通，不添加其它接口。</p>
<blockquote><p># brctl show<br />
bridge name bridge id STP enabled interfaces<br />
virbr0 8000.000000000000 yes</p></blockquote>
<p>一般情况下libvirt会自动添加一些规则到iptables，并尝试打开ip_forward功能，但其它应用程序可能会禁止ip_forward，所以最好在/etc/sysctl.conf中添加一项：</p>
<blockquote><p>net.ipv4.ip_forward = 1</p></blockquote>
<p>&nbsp;</p>
<p><strong>Briged：</strong><br />
一般用于多网卡机器上，NetworkManager不支持桥接，所以需要关闭NetworkManager服务，或者在网络设备的配置文件中添加一选项&#8217;NM_CONTROLLED=no&#8217;参数</p>
<p># vim /etc/sysconfig/network-scripts/ifcft-eth0</p>
<blockquote><p>DEVICE=eth0<br />
HWADDR=00:16:76:D6:C9:45<br />
ONBOOT=yes<br />
BRIDGE=br0</p></blockquote>
<p>添加br0配置</p>
<blockquote><p>DEVICE＝br0<br />
ONBOOT=yes<br />
TYPE=Bridge<br />
BOOTPROTO=dhcp<br />
DELAY=0</p></blockquote>
<p>重启网络服务</p>
<blockquote><p>service network restart</p></blockquote>
<p>brctl查看</p>
<blockquote><p># brctl show<br />
bridge name bridge id STP enabled interfaces<br />
br0 8000.f0def1341ae6 no eth0<br />
virbr0 8000.000000000000 yes</p></blockquote>
<p>配置iptables，允许桥接网络的流量转发［用到physdev模块］</p>
<blockquote><p># iptables -I FORWARD -m physdev &#8211;physdev-is-bridged -j ACCEPT</p></blockquote>
<p>配置以下内核参数也可以实现：</p>
<blockquote><p>net.bridge.bridge-nf-call-ip6tables = 0<br />
net.bridge.bridge-nf-call-iptables = 0<br />
net.bridge.bridge-nf-call-arptables = 0</p></blockquote>
<p>&nbsp;</p>
<p>更多信息可参考：<a href="http://wiki.libvirt.org/page/VirtualNetworking" target="_blank">http://wiki.libvirt.org/page/VirtualNetworking</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hduo.net/archives/virtual-networks-in-fedora.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iptables 整体结构模块</title>
		<link>http://www.hduo.net/archives/structure-of-iptables.html</link>
		<comments>http://www.hduo.net/archives/structure-of-iptables.html#comments</comments>
		<pubDate>Thu, 16 Dec 2010 07:50:58 +0000</pubDate>
		<dc:creator>宁牛</dc:creator>
				<category><![CDATA[Sa]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.hduo.net/?p=1637</guid>
		<description><![CDATA[Iptables整体结构，据说iptables中奇奇怪怪的问题都能在这图上找到原因，值得收藏 &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Network&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8211; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#124; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#124;&#160;&#160;&#160;&#160; PREROUTING&#160;&#160;&#160; &#124; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#124; +&#8212;&#8212;-+&#8212;&#8212;-+ &#124; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#124; &#124;&#160;&#160; conntrack&#160;&#160; &#124; &#124; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#124; +&#8212;&#8212;-+&#8212;&#8212;-+ &#124; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#124; &#124;&#160;&#160;&#160; mangle&#160;&#160;&#160;&#160; &#124; &#124; &#60;- MARK WRITE&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#124; +&#8212;&#8212;-+&#8212;&#8212;-+ &#124; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#124; &#124;&#160;&#160;&#160;&#160;&#160; IMQ&#160;&#160;&#160;&#160;&#160; &#124; &#124; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#124; +&#8212;&#8212;-+&#8212;&#8212;-+ &#124; &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#124; &#124;&#160;&#160;&#160;&#160;&#160; nat&#160;&#160;&#160;&#160;&#160; &#124; [...]]]></description>
			<content:encoded><![CDATA[<p>Iptables整体结构，据说iptables中奇奇怪怪的问题都能在这图上找到原因，值得收藏</p>
<div id="fontzoom" class="content">
<div style="margin: 15px" id="art" width="100%">
<div style="text-align: left">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font face="Courier New">Network</font>&#160; <br /><font face="Courier New">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8211;          <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">|&#160;&#160;&#160;&#160; <b>PREROUTING</b>&#160;&#160;&#160; |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| +&#8212;&#8212;-+&#8212;&#8212;-+ |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| |&#160;&#160; conntrack&#160;&#160; | |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| +&#8212;&#8212;-+&#8212;&#8212;-+ |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| |&#160;&#160;&#160; mangle&#160;&#160;&#160;&#160; | |</font> &lt;- MARK WRITE&#160; <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| +&#8212;&#8212;-+&#8212;&#8212;-+ |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| |&#160;&#160;&#160;&#160;&#160; IMQ&#160;&#160;&#160;&#160;&#160; | |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| +&#8212;&#8212;-+&#8212;&#8212;-+ |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| |&#160;&#160;&#160;&#160;&#160; nat&#160;&#160;&#160;&#160;&#160; | |</font> &lt;- DEST REWRITE           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| +&#8212;&#8212;-+&#8212;&#8212;-+ |</font>&#160;&#160;&#160;&#160; DNAT or REDIRECT           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </font><font face="Courier New"><font color="#0000ff">+&#8212;&#8212;-+&#8212;&#8212;-+            <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |&#160;&#160;&#160; ipchains&#160;&#160; |             <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |&#160;&#160;&#160;&#160; <b>input</b>&#160;&#160;&#160;&#160; |             <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; +&#8212;&#8212;-+&#8212;&#8212;-+</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#ff0000">+&#8212;&#8212;-+&#8212;&#8212;-+</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#ff0000">|&#160;&#160;&#160;&#160;&#160; QOS&#160;&#160;&#160;&#160;&#160; |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#ff0000">|&#160;&#160;&#160; INGRESS&#160;&#160;&#160; |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#ff0000">+&#8212;&#8212;-+&#8212;&#8212;-+</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; packet is for <font color="#ff0000">+&#8212;&#8212;-+&#8212;&#8212;-+</font> packet is for           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; this machine <font color="#ff0000">|&#160;&#160;&#160;&#160; INPUT&#160;&#160;&#160;&#160; |</font> another address           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; +&#8212;&#8212;&#8212;&#8212;&#8211;<font color="#ff0000">+&#160;&#160;&#160; ROUTING&#160;&#160;&#160; +</font>&#8212;&#8212;&#8212;&#8212;&#8211;+           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; |&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#ff0000">|&#160;&#160;&#160; + PDBB&#160;&#160;&#160;&#160; |</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; |&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#ff0000">+&#8212;&#8212;&#8212;&#8212;&#8212;+</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br /><font color="#0000ff">+&#8212;&#8212;-+&#8212;&#8212;-+</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br /><font color="#0000ff">|&#160;&#160;&#160;&#160; <b>INPUT</b>&#160;&#160;&#160;&#160; |</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br /><font color="#0000ff">| +&#8212;&#8211;+&#8212;&#8211;+ |</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br /><font color="#0000ff">| |&#160;&#160; filter&#160; | |</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br /><font color="#0000ff">| +&#8212;&#8211;+&#8212;&#8211;+ |</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br /><font color="#0000ff">+&#8212;&#8212;-+&#8212;&#8212;-+</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; |&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br />+&#8212;&#8212;-+&#8212;&#8212;-+&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br />|&#160;&#160;&#160;&#160; Local&#160;&#160;&#160;&#160; |&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">+&#8212;&#8212;-+&#8212;&#8212;-+</font>           <br />|&#160;&#160;&#160; Process&#160;&#160;&#160; |&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">|&#160;&#160;&#160; <b>FORWARD</b>&#160;&#160;&#160; |</font>           <br />+&#8212;&#8212;-+&#8212;&#8212;-+&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| +&#8212;&#8211;+&#8212;&#8211;+ |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; |&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| |&#160; mangle&#160;&#160; | |</font> &lt;- MARK WRITE           <br /><font color="#ff0000">+&#8212;&#8212;-+&#8212;&#8212;-+</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| +&#8212;&#8211;+&#8212;&#8211;+ |</font>           <br /><font color="#ff0000">|&#160;&#160;&#160; OUTPUT&#160;&#160;&#160;&#160; |</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| |&#160; filter&#160;&#160; | |</font>           <br /><font color="#ff0000">|&#160;&#160;&#160; ROUTING&#160;&#160;&#160; |</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| +&#8212;&#8211;+&#8212;&#8211;+ |</font>           <br /><font color="#ff0000">+&#8212;&#8212;-+&#8212;&#8212;-+</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">+&#8212;&#8212;-+&#8212;&#8212;-+</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; |&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br /><font color="#0000ff">+&#8212;&#8212;-+&#8212;&#8212;-+</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br /><font color="#0000ff">|&#160;&#160;&#160;&#160; <b>OUTPUT</b>&#160;&#160;&#160; |</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">+&#8212;&#8212;-+&#8212;&#8212;-+</font>           <br /><font color="#0000ff">| +&#8212;&#8212;&#8212;&#8211;+ |</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">|&#160;&#160;&#160; ipchains&#160;&#160; |</font>           <br /><font color="#0000ff">| | conntrack | |</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">|&#160;&#160;&#160; <b>forward</b>&#160;&#160;&#160; |</font>           <br /><font color="#0000ff">| +&#8212;&#8211;+&#8212;&#8211;+ |</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">+&#8212;&#8212;-+&#8212;&#8212;-+</font>           <br /><font color="#0000ff">| |&#160;&#160; mangle&#160; | |</font> &lt;- MARK WRITE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br /><font color="#0000ff">| +&#8212;&#8211;+&#8212;&#8211;+ |</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br /><font color="#0000ff">| |&#160;&#160;&#160; nat&#160;&#160;&#160; | |</font> &lt;-DEST REWRITE&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br /><font color="#0000ff">| +&#8212;&#8211;+&#8212;&#8211;+ |</font>&#160;&#160;&#160;&#160; DNAT or REDIRECT&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br /><font color="#0000ff">| |&#160;&#160; filter&#160; | |</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br /><font color="#0000ff">| +&#8212;&#8211;+&#8212;&#8211;+ |</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br /><font color="#0000ff">+&#8212;&#8212;-+&#8212;&#8212;-+</font>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; |&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; +&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#160;&#160;&#160;&#160;&#160;&#160; +&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |&#160;&#160;&#160;&#160;&#160;&#160; |           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">+&#8211;+&#8212;&#8212;-+&#8211;+</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">|&#160;&#160; ipchains&#160; |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">|&#160;&#160;&#160; <b>output</b>&#160;&#160; |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">+&#8212;&#8212;+&#8212;&#8212;+</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">|&#160;&#160;&#160; <b>POSTROUTING</b>&#160;&#160;&#160; |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| +&#8212;&#8212;-+&#8212;&#8212;-+ |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| |&#160;&#160;&#160; mangle&#160;&#160;&#160;&#160; | |</font> &lt;- MARK WRITE           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| +&#8212;&#8212;-+&#8212;&#8212;-+ |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| |&#160;&#160;&#160;&#160;&#160; nat&#160;&#160;&#160;&#160;&#160; | |</font> &lt;-SOURCE REWRITE           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| +&#8212;&#8212;-+&#8212;&#8212;-+ |</font>&#160;&#160;&#160;&#160; SNAT or MASQUERADE           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| |&#160;&#160; conntrack&#160;&#160; | |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| +&#8212;&#8212;-+&#8212;&#8212;-+ |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| |&#160;&#160;&#160;&#160;&#160; IMQ&#160;&#160;&#160;&#160;&#160; | |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">| +&#8212;&#8212;-+&#8212;&#8212;-+ |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#0000ff">+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#ff0000">+&#8212;&#8212;+&#8212;&#8212;+</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#ff0000">|&#160;&#160;&#160;&#160; QOS&#160;&#160;&#160;&#160; |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#ff0000">|&#160;&#160;&#160; EGRESS&#160;&#160; |</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <font color="#ff0000">+&#8212;&#8212;+&#8212;&#8212;+</font>           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; |           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8211;           <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Network</font></div>
</p></div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.hduo.net/archives/structure-of-iptables.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>nfs快速配置与iptables</title>
		<link>http://www.hduo.net/archives/linux-nfs-iptables.html</link>
		<comments>http://www.hduo.net/archives/linux-nfs-iptables.html#comments</comments>
		<pubDate>Sat, 04 Dec 2010 09:36:38 +0000</pubDate>
		<dc:creator>宁牛</dc:creator>
				<category><![CDATA[Sa]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nfs]]></category>

		<guid isPermaLink="false">http://www.hduo.net/?p=1622</guid>
		<description><![CDATA[大部分linux发行版都安装了NFS，默认可能是没有开机启动的。主配置文件是/etc/exports，格式如下 /opt/src *(ro) /opt/src1   192.168.1.1(rw) /opt/src2 192.168.2.0/24(ro) 192.168.3/255.255.255.0(rw,no_root_squash) /opt/src3 *.hduo.net(rw,all_squash) /opt/src4 www.hduo.net(rw, anonuid,anougid,root_squash) 一般来说，文件中的第一行可分成两个字段，第一字段是要导出的目录，即通过nfs共享的目录，第二个字段是对这个目录的权限控制，包括客户端限制和文件权限限制，客户端可以是单台主机［主机名或者IP地址标识］、网段、通配符网段或主机、网组［@netgroupname］，括号内多为权限设置，常见的有： ro 只读 rw 可读写 root_squash 默认的，NFS会将UID或者GID为0的访问用户映射为anonymous no_root_squash 不启用root_squash all_squash 所有访问用户都做anonymous映射 anonuid, anongid 指定anonymous用户的uid\gid 配置文件编辑好启动服务就可以了 # /etc/init.d/nfs start 更改配置文件后，可用exportfs来重新生成导出目录，可不用重启服务 # exportfs -av # exports -rv 对于开启了iptables的机器，要想提供对外的NFS服务，还必须开启相应的端口，早期版本的NFS服务有关的端口是在配置文件里固定的，新版本的NFS中，相关端口是动态的，当然也可以在配置文件中［/etc/nfsmount.conf］指定，在不指定的情况下可用以下命令来打开端口 # rpcinfo -p localhost &#124; awk &#8216;$3 ~ /tcp/{print $4}&#8217; &#124; uniq &#124; awk &#8216;BEGIN{ORS=&#8221;,&#8221;}{print $0}&#8217; [...]]]></description>
			<content:encoded><![CDATA[<p>大部分linux发行版都安装了NFS，默认可能是没有开机启动的。主配置文件是/etc/exports，格式如下</p>
<p>/opt/src *(ro)<br />
/opt/src1   192.168.1.1(rw)<br />
/opt/src2 192.168.2.0/24(ro) 192.168.3/255.255.255.0(rw,no_root_squash)<br />
/opt/src3 *.hduo.net(rw,all_squash)<br />
/opt/src4 www.hduo.net(rw, anonuid,anougid,root_squash)</p>
<p><span id="more-1622"></span></p>
<p>一般来说，文件中的第一行可分成两个字段，第一字段是要导出的目录，即通过nfs共享的目录，第二个字段是对这个目录的权限控制，包括客户端限制和文件权限限制，客户端可以是单台主机［主机名或者IP地址标识］、网段、通配符网段或主机、网组［@netgroupname］，括号内多为权限设置，常见的有：</p>
<p>ro 只读<br />
rw 可读写<br />
root_squash 默认的，NFS会将UID或者GID为0的访问用户映射为anonymous<br />
no_root_squash 不启用root_squash<br />
all_squash 所有访问用户都做anonymous映射<br />
anonuid, anongid 指定anonymous用户的uid\gid</p>
<p>配置文件编辑好启动服务就可以了</p>
<blockquote><p># /etc/init.d/nfs start</p></blockquote>
<p>更改配置文件后，可用exportfs来重新生成导出目录，可不用重启服务</p>
<blockquote><p># exportfs -av<br />
# exports -rv</p></blockquote>
<p>对于开启了iptables的机器，要想提供对外的NFS服务，还必须开启相应的端口，早期版本的NFS服务有关的端口是在配置文件里固定的，新版本的NFS中，相关端口是动态的，当然也可以在配置文件中［/etc/nfsmount.conf］指定，在不指定的情况下可用以下命令来打开端口</p>
<blockquote><p># rpcinfo -p localhost | awk &#8216;$3 ~ /tcp/{print $4}&#8217; | uniq | awk &#8216;BEGIN{ORS=&#8221;,&#8221;}{print $0}&#8217; | sed -e &#8216;s/,$//g&#8217; | xargs -i iptables -I INPUT -p tcp -m state &#8211;state NEW -m multiport &#8211;dports {} -j ACCEPT<br />
# rpcinfo -p localhost | awk &#8216;$3 ~ /udp/{print $4}&#8217; | uniq | awk &#8216;BEGIN{ORS=&#8221;,&#8221;}{print $0}&#8217; | sed -e &#8216;s/,$//g&#8217; | xargs -i iptables -I INPUT -p udp -m state &#8211;state NEW -m multiport &#8211;dports {} -j ACCEPT</p></blockquote>
<p>注意，iptables的multiport模块最多只支持的端口数为15个，超过时iptables操作会失败</p>
<p>客户端启用nfs服务后，就可以直接访问了</p>
<blockquote><p># /etc/init.d/nfs restart<br />
# showmount -e nfs_server<br />
# mount -t nfs nfs_server:/opt/src1 /mnt</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.hduo.net/archives/linux-nfs-iptables.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress 取消自动转义</title>
		<link>http://www.hduo.net/archives/transformations-in-wordpress.html</link>
		<comments>http://www.hduo.net/archives/transformations-in-wordpress.html#comments</comments>
		<pubDate>Wed, 01 Dec 2010 01:18:00 +0000</pubDate>
		<dc:creator>宁牛</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.hduo.net/archives/transformations-in-wordpress.html</guid>
		<description><![CDATA[wordpress 默认会自动转义一些字符，如将‘&#8211;’转义为‘－’破折号，有些候会导致文章内容显示怪怪的，你可能会认为wordpress读取出来就是这个样子的，但其实数据库里保存的内容是‘&#8211;’，只是在显示时转义了，与保存[进入数据库]前转义有所不同。 为了处理这个问题，wordpress同时也提供一些函数组，如下需的remove_filter()与wptexturize()，实际应用中可以按需求处理 /取消内容转义 remove_filter(&#8216;the_content&#8217;, &#8216;wptexturize&#8217;); //取消摘要转义 remove_filter(&#8216;the_excerpt&#8217;, &#8216;wptexturize&#8217;); //取消评论转义 remove_filter(&#8216;comment_text&#8217;, &#8216;wptexturize&#8217;); 一般将它们放入主题的header.php文件中，就可以在多个页面中禁止wordpress的自动转义了，如：只想取消内容转义，只需要添加‘remove_filter(&#8216;the_content&#8217;, &#8216;wptexturize&#8217;); ’至主题的header.php. 有兴趣的也可以研究下wptexturize()函数是怎么实现的，codex 上有个简单的函数说明，点这里查看]]></description>
			<content:encoded><![CDATA[<p>wordpress 默认会自动转义一些字符，如将‘&#8211;’转义为‘－’破折号，有些候会导致文章内容显示怪怪的，你可能会认为wordpress读取出来就是这个样子的，但其实数据库里保存的内容是‘&#8211;’，只是在显示时转义了，与保存[进入数据库]前转义有所不同。</p>
<p> <span id="more-1641"></span>
<p>为了处理这个问题，wordpress同时也提供一些函数组，如下需的remove_filter()与wptexturize()，实际应用中可以按需求处理</p>
</p>
<blockquote><p>/取消内容转义      <br />remove_filter(&#8216;the_content&#8217;, &#8216;wptexturize&#8217;);       </p>
<p>//取消摘要转义</p>
<p>remove_filter(&#8216;the_excerpt&#8217;, &#8216;wptexturize&#8217;);</p>
<p>//取消评论转义      <br />remove_filter(&#8216;comment_text&#8217;, &#8216;wptexturize&#8217;);</p>
</blockquote>
<p>一般将它们放入主题的header.php文件中，就可以在多个页面中禁止wordpress的自动转义了，如：只想取消内容转义，只需要添加‘remove_filter(&#8216;the_content&#8217;, &#8216;wptexturize&#8217;); ’至主题的header.php.</p>
<p>有兴趣的也可以研究下wptexturize()函数是怎么实现的，<a href="http://codex.wordpress.org/Function_Reference/wptexturize" target="_blank">codex</a> 上有个简单的函数说明，点<a href="http://codex.wordpress.org/Function_Reference/wptexturize" target="_blank">这里</a>查看</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hduo.net/archives/transformations-in-wordpress.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>linux dhcp 配置摘要</title>
		<link>http://www.hduo.net/archives/linux-dhcp-config.html</link>
		<comments>http://www.hduo.net/archives/linux-dhcp-config.html#comments</comments>
		<pubDate>Thu, 16 Sep 2010 02:29:26 +0000</pubDate>
		<dc:creator>宁牛</dc:creator>
				<category><![CDATA[Sa]]></category>
		<category><![CDATA[dhcp]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.hduo.net/?p=1614</guid>
		<description><![CDATA[配置文件，主要有以下两个 /etc/dhcpd.conf #可从/usr/share/doc/dhcp-$version/目录下复制一份模板文件 /var/lib/dhcpd/dhcpd.leases      #可查看当前地址分配情况 基本配置模板[注意每条配置语句末的';']： ddns-update-style interim; ignore client-updates; subnet 192.168.1.0 netmask 255.255.255.0 { option routers            192.168.1.1; option subnet-mask        255.255.255.0; option domain-name-servers    202.96.128.166,202.96.128.86; range dynamic-bootp 192.168.1.2 192.168.1.151; filename &#8220;linux-install/pxelinux.0&#8243;; next-server 192.168.1.27; default-lease-time 86400; max-lease-time 864000; } 常用配置项 default-lease-time 86400;            默认租赁时间 max-lease-time 864000;               最长租赁时间 option routers 192.168.1.1;           网关 option subnet-mask 255.255.255.0;   子网掩码 [...]]]></description>
			<content:encoded><![CDATA[<p>配置文件，主要有以下两个</p>
<p><em>/etc/dhcpd.conf</em> #可从<em>/usr/share/doc/dhcp-$version/</em>目录下复制一份模板文件<br />
/var/lib/dhcpd/dhcpd.leases      #可查看当前地址分配情况</p>
<p><span id="more-1614"></span>基本配置模板[注意每条配置语句末的'<span style="color: #993300;">;</span>']：</p>
<blockquote><p>ddns-update-style interim;<br />
ignore client-updates;</p>
<p>subnet 192.168.1.0 netmask 255.255.255.0 {</p>
<p>option routers            192.168.1.1;<br />
option subnet-mask        255.255.255.0;</p>
<p>option domain-name-servers    202.96.128.166,202.96.128.86;</p>
<p>range dynamic-bootp 192.168.1.2 192.168.1.151;<br />
filename &#8220;linux-install/pxelinux.0&#8243;;<br />
next-server 192.168.1.27;<br />
default-lease-time 86400;<br />
max-lease-time 864000;<br />
}</p></blockquote>
<p>常用配置项<br />
<strong>default-lease-time</strong> 86400;            默认租赁时间<br />
<strong>max-lease-time</strong> 864000;               最长租赁时间<br />
<strong>option routers</strong> 192.168.1.1;           网关<br />
<strong>option subnet-mask</strong> 255.255.255.0;   子网掩码<br />
<strong>option domain-name-servers</strong> 192.168.1.1;     DNS服务器（可以有多个，以&#8217;,'号分隔）<br />
<strong>lease-file-name</strong> &#8220;/etc/dhcpd.lease&#8221;;     租赁记录文件<br />
<strong>pid-file-name </strong> &#8220;/etc/dhcpd.pid&#8221; ;     DHCP服务器pid文件<br />
<strong>authoritative; </strong> 授权服务器</p>
<p>无盘或者PXE启动<br />
<strong>filename</strong> &#8220;bootfile&#8221;;            启动文件<br />
<strong>next-server </strong>&#8220;192.168.1.25&#8243;;        TFTP服务器<br />
<strong>server-name</strong> &#8220;vhost&#8221;;            服务器名<br />
<strong>option</strong> <strong>root-path</strong> &#8220;/root&#8221;;        TFTP服务根目录<br />
<strong>option</strong> <strong>host-name</strong> &#8220;host1&#8243;;        主机名</p>
<p>MAC绑定IP<strong><br />
host</strong> host1 {<br />
<strong>hardware ethernet</strong> FE:3s:de:e3:e2:43;<br />
<strong>fixed-address</strong> 192.168.1.200;<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hduo.net/archives/linux-dhcp-config.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bogon</title>
		<link>http://www.hduo.net/archives/bogon.html</link>
		<comments>http://www.hduo.net/archives/bogon.html#comments</comments>
		<pubDate>Tue, 14 Sep 2010 14:14:08 +0000</pubDate>
		<dc:creator>宁牛</dc:creator>
				<category><![CDATA[Sa]]></category>

		<guid isPermaLink="false">http://www.hduo.net/?p=1612</guid>
		<description><![CDATA[http://www.team-cymru.org/Services/Bogons/ http://www.team-cymru.org/Services/Bogons/fullbogons-ipv4.txt]]></description>
			<content:encoded><![CDATA[<p>http://www.team-cymru.org/Services/Bogons/</p>
<p>http://www.team-cymru.org/Services/Bogons/fullbogons-ipv4.txt</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hduo.net/archives/bogon.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python SimpleHTTPServer 快速共享文件</title>
		<link>http://www.hduo.net/archives/python-simplehttpserver.html</link>
		<comments>http://www.hduo.net/archives/python-simplehttpserver.html#comments</comments>
		<pubDate>Wed, 01 Sep 2010 06:58:37 +0000</pubDate>
		<dc:creator>宁牛</dc:creator>
				<category><![CDATA[Sa]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.hduo.net/?p=1608</guid>
		<description><![CDATA[文件要从一台机传到另一台机？不想安装配置FTP,APACHE,NFS? linux下除了用scp之类的命令外，还有更简单的方式，那就是使用python有的SimpleHTTPServer模块，大多数linux发行版本中都带用python，所以用起来比较方便。 一个简单的例子，执行下面的命令： #python -m SimpleHTTPServer Serving HTTP on 0.0.0.0 port 8000 &#8230; 如果8000端口没有被占用，python将监听8000端口，如果当前目录下没有index.html文件，python将在客户端请求时返回一个当前目录下的文件列表，选择要传送的文件下载就是了。当然，这里也可以指定其它端口[注意root用户才有权限打开小于1024的端口]，如 #python -m SimplerHTTPServer 80 Serving HTTP on 0.0.0.0 port 8000 &#8230; 文件下完，直接Ctrl+C退出，更高级的功能，就得看模块帮助了]]></description>
			<content:encoded><![CDATA[<p>文件要从一台机传到另一台机？不想安装配置FTP,APACHE,NFS? linux下除了用scp之类的命令外，还有更简单的方式，那就是使用python有的SimpleHTTPServer模块，大多数linux发行版本中都带用python，所以用起来比较方便。<br />
<span id="more-1608"></span><br />
一个简单的例子，执行下面的命令：</p>
<blockquote><p>#python -m SimpleHTTPServer<br />
Serving HTTP on 0.0.0.0 port 8000 &#8230;</p></blockquote>
<p>如果8000端口没有被占用，python将监听8000端口，如果当前目录下没有index.html文件，python将在客户端请求时返回一个当前目录下的文件列表，选择要传送的文件下载就是了。当然，这里也可以指定其它端口[注意root用户才有权限打开小于1024的端口]，如</p>
<blockquote><p>#python -m SimplerHTTPServer 80<br />
Serving HTTP on 0.0.0.0 port 8000 &#8230;</p></blockquote>
<p>文件下完，直接Ctrl+C退出，更高级的功能，就得看模块帮助了</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hduo.net/archives/python-simplehttpserver.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>remi epel yum repo</title>
		<link>http://www.hduo.net/archives/remi-epel-yum-repo.html</link>
		<comments>http://www.hduo.net/archives/remi-epel-yum-repo.html#comments</comments>
		<pubDate>Fri, 13 Aug 2010 01:16:31 +0000</pubDate>
		<dc:creator>宁牛</dc:creator>
				<category><![CDATA[Sa]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://makeastand.cn/?p=1600</guid>
		<description><![CDATA[两个常用的yum源 remi：rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm epel：rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm 记住这两个地址就可以了，http://rpms.famillecollet.com/ 和 http://download.fedora.redhat.com/ 如果不是太旧的版本，点进去总可以找到你要的包。]]></description>
			<content:encoded><![CDATA[<p>两个常用的yum源</p>
<p>remi：rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm</p>
<p>epel：rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm</p>
<p>记住这两个地址就可以了，http://rpms.famillecollet.com/ 和 http://download.fedora.redhat.com/ 如果不是太旧的版本，点进去总可以找到你要的包。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hduo.net/archives/remi-epel-yum-repo.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

