萬盛學電腦網

 萬盛學電腦網 >> 電腦入門 >> iptables/arptables實現單IP一級二級路由 電腦技術吧

iptables/arptables實現單IP一級二級路由 電腦技術吧

iptables/arptables實現單IP一級二級路由   有時候,你僅僅有一個IP地址,然而卻有多台設備,比如公司配發的電腦,自己的筆記本電腦,手機,iPad等,顯然公司配發的電腦將是你的這個IP的第一優先占有者,其它的設備將無法接入。如果你手上有一個帶有WIFI模塊的 BOX,你可能會想到建立二級路由,然而此時你的那台公司配發的機器就會被隱藏在這個BOX後面,如果你的BOX在WAN口做了基於狀態的MASQURADE地址轉換,那麼所有針對你的被隱藏的工作機的主動訪問都將不可能,除非你配置復雜的DNAT規則或者路由規則。           現在,事情不同了,你可以將這個唯一的IP地址配置在你的工作機上的同時,也可以讓所有的其它設備使用。 步驟: 現在假設你的BOX有三個網口,分別是兩個以太口:eth0,eth1以及一個WIFI口:wlan0,下面是一系列的操作: 你擁有的唯一IP及其配套配置: 地址:192.168.10.79/24 網關:192.168.10.1 1.橋接所有這些口 brctl addbf br0 brctl addif br0 eth0 brctl addif br0 eth1 brctl addif br0 wlan0 2.為br0配置一個IP地址供WIFI使用(省略DHCP POOL以及DNS的配置過程) 接入設備數量限制一下: ifconfig br0 172.20.1.1/28 3.可選1:為br0增加一個Secondary IP以便成功增加默認路由 ifconfig br0:0 192.168.10.255/23 注意,以上的prefix 23值得說明一下,原始的子網的掩碼是255.255.255.0,現將prefix減少1位,此時你就可以使用原始網絡中的broadcast地址作為一個IP地址了,這個地址不會和任何地址沖突。 route add default gw 192.168.10.1   4.可選2:使用force-onlink路由直接強制增加路由 ip route add 0.0.0.0/0 via 192.168.10.1 dev br0 onlink 5.增加地址轉換規則,凡是WIFI包的源地址都轉換成你唯一的那個IP地址 iptables -t mangle -A PREROUTING -m physdev --physdev-in wlan0 -j MARK --set-mark 100 iptables -t nat -A POSTROUTING -m mark --mark 100 -j SNAT --to-source 192.168.10.79 6.可選2的情況下增加arp 由於使用了force-onlink路由,意味著你的BOX上沒有和192.168.10.0/24處於同網段的IP地址,那麼當往192.168.10.1這個默認網關發包的時候,ARP請求將可能得不到回復,這涉及到默認網關的arp_filter或者等價配置的配置情況,因為arp請求的源是唯一的172.20.1.1這個地址,請求的是地址和它不在一個網段! 因此需要一條arptables規則: arptables -t mangle -A OUTPUT -d  192.168.10.1  -j mangle --mangle-ip-s 192.168.10.79 事實上在可選1的情況下,你配置了一個192.168.10.255這個地址,對於原始網段來講,它是一個廣播,但是對於BOX來講,它是一個常規IP,因此ARP請求可以發出,封裝的源就是192.168.10.255,也可以正常回來,因為請求中的源是192.168.10.255,到達默認網關192.168.10.1後,與其掩碼255.255.255.0相與得到192.168.10.0/24,顯然屬於同一個網段,檢查通過,REPLY返回! 效果: 整個BOX對於你的工作機就是一個HUB,它的工作毫不受到影響!另外BOX上的WIFI獨自引出了一個子網,可以讓多個設備接入,當這些設備發出的數據包外出時,BOX會將其源IP地址轉換為你那唯一的IP地址,ip_conntrack機制可以保證所有的這些設備相關的流的五元組不會重復。  
    copyright © 萬盛學電腦網 all rights reserved