16、基於狀態的iptable+高級路由(重點)


--
 
基於狀態的iptables
 
如果按照tcp/ip來划分連接狀態,有12種之多
iptables里只有4種狀態;ESTABLISHED、NEW、RELATED及INVALID
 
這兩個分類是兩個不相干的定義。例如在TCP/IP標准描述下UDP及ICMP數據包是沒有連接狀態的,但在state模塊的描述下,任何數據包都有連接狀態。
 
 
 
               new(第一次)
|      |-------------------->|      |
|      |   established(回來)  |      |
| 客戶機|<--------------------| 服務器|
|------|                     |------|
|  35  |                     |  32  |
|------|                     |------|
 
 
 
 
 
    1、ESTABLISHED
   
    (1)與TCP數據包的關系:首先在防火牆主機上執行SSH Client,並且對網絡上的SSH服務器提出服務請求,而這時送出的第一個數據包就是服務請求的數據包,如果這個數據包能夠成功的穿越防火牆,那么接下來SSH Server與SSH Client之間的所有SSH數據包的狀態都會是ESTABLISHED。
 
    (2)與UDP數據包的關系:假設我們在防火牆主機上用firefox應用程序來瀏覽網頁(通過域名方式),而瀏覽網頁的動作需要DNS服務器的幫助才能完成,因此firefox會送出一個UDP數據包給DNS Server,以請求名稱解析服務,如果這個數據包能夠成功的穿越防火牆,那么接下來DNS Server與firefox之間的所有數據包的狀態都會是ESTABLISHED。
    (3)與ICMP數據包的關系:假設我們在防火牆主機ping指令來檢測網絡上的其他主機時,ping指令所送出的第一個ICMP數據包如果能夠成功的穿越防火牆,那么接下來剛才ping的那個主機與防火牆主機之間的所有ICMP數據包的狀態都會是ESTABLISHED。
    由以上的解釋可知,只要數據包能夠成功的穿越防火牆,那么之后的所有數據包(包含反向的所有數據包)狀態都會是ESTABLISHED。
 
    2、NEW
   
    首先我們知道,NEW與協議無關,其所指的是每一條連接中的第一個數據包,假如我們使用SSH client連接SSH server時,這條連接中的第一個數據包的狀態就是NEW。
 
    3、RELATED
 
    RELATED狀態的數據包是指被動產生的數據包。而且這個連接是不屬於現在任何連接的。RELATED狀態的數據包與協議無關,只要回應回來的數據包是因為本機送出一個數據包導致另一個連接的產生,而這一條新連接上的所有數據包都是屬於RELATED狀態的數據包。
 
    4、INVALID
 
    INVALID狀態是指狀態不明的數據包,也就是不屬於以上三種狀態的封包。凡是屬於INVALID狀態的數據包都視為惡意的數據包,因此所有INVALID狀態的數據包都應丟棄掉,匹配INVALID狀態的數據包的方法如下:
    iptables -A INPUT -p all -m state INVALID -j DROP
    我們應將INVALID狀態的數據包放在第一條。
 
 
 
 
1:
有下面兩台機
 
172.16.2.35 172.16.2.32
 
35是可以ssh訪問32,也可以elinks訪問32
 
 
1,在32上
iptables -P INPUT DROP
iptables -P OUTPUT DROP
這里就把雙鏈都關掉,35任何訪問都過不來了
 
 
 
2,
按以前的做法
32上允許別人ssh進來
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
32上允許別人elinks進來
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
 
 
state的做法
--進來你可以用下面兩邊搞定
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
--但出去的話你只用下面一條搞定所有
iptables -A OUTPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
 
--上面這條的意思其實就是:只要能進來的tcp訪問,我都能出去找到你(無論他是用哪個隨機端口訪問進來的;因為只要能進來,那么后續的包都屬於ESTABLISHED狀態了)
 
 
 
 
 
 
 
2:
--有些服務器,可能希望不能你ping通他,但是他可以ping你
 
--解決方法:
一種:
修改proc的內核參數,禁ping
 
 
二種:使用狀態iptables
 
有下面兩台機
 
172.16.2.35 172.16.2.32
 
 
32上實現32能ping通35和所有人.但35和所有人不能ping通32
 
 
 
1,在32上
iptables -P INPUT DROP
iptables -P OUTPUT DROP
這里就把雙鏈都關掉,35任何訪問都過不來了
 
 
2,在32上
iptables -A INPUT -p icmp -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED -j ACCEPT
 
--重點是INPUT那條不能允許NEW狀態的;
--注意第二步的第二條(也就是output這條),如果只寫了NEW狀態,那么32ping所有人,都只能通第一個包;加上ESTABLISHED狀態,所有包都能通
 
 
 
 
 
練習:
1,實現我想訪問別人的服務(任何服務),都可以成功;
 
iptables -P INPUT DROP
iptables -P OUTPUT DROP
 
 
iptables -A OUTPUT -m state --state new,established -j ACCEPT
iptables -A INPUT -m state --state established  -j ACCEPT
--這兩句就實現了,服務器想出去訪問的任何服務都OK
 
 
 
 
2,在上面的基礎上加上需求:但別人想訪問我的服務,只允許可以訪問我的80
 
 
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT --這條不需要了
--在沒有做練習1里那條OUTPUT的狀態規則的情況下,我們需要在這里加上OUTPUT的這條;但在練習1的基礎之后,這里只需要INPUT的這一條就可以了
 
 
3,繼續加需求:允許ping任何人,但只允許35ping我
 
 
iptables -A INPUT -p icmp -s 172.16.2.35 -j ACCEPT
 
 
 
把上面的需求合起來,一共需要的規則只有下面6條:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
 
 
iptables -A OUTPUT -m state --state new,established -j ACCEPT
iptables -A INPUT -m state --state established  -j ACCEPT
 
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p icmp -s 172.16.2.35 -j ACCEPT
 
 
 
 
==================================
 
 
 
tcpdump
 
tcpdump - dump traffic on a network
 
 
參數的分類:
協議 tcp udp arp icmp
數據內容 端口,Ip  :  
src port 80 --源
dst port 22 --目標
 
tcpdump tcp dst port 80 -n
tcpdump -i eth1 tcp dst port 80 -n   --小寫i參數指定哪個網卡
tcpdump tcp dst port 80 -n -w tcpdump.txt  --把dump出來的信息保存到tcpdump.txt文件
tcpdump -r tcpdump.txt --然后需要使用tcpdump -r去讀取
 
 
關系參數  !   and   or
 
tcpdump tcp dst port 80 -n and src 10.1.1.35
tcpdump tcp dst port 80 -n and ! src 10.1.1.35
tcpdump tcp dst port 80 -n and  host  10.1.1.35
 
 
-vv <---把數據包的詳細內容都記錄下來
-w <---把數據保存到某個文件
 
 
練習:
捕捉所有訪問本機ftp服務器的連接,並且數據包是來自10.1.1.35
tcpdump tcp dst port 21 and src 10.1.1.35 -n
 
 
捕捉所有來自10.1.1.1的arp協議的數據包,並且捕捉的顯示要求輸出以太網數據幀的信息 -e
tcpdump arp and src 10.1.1.1 -n -e
 
 
捕捉所有本機web服務回應10.1.1.35的數據包
tcpdump tcp src port 80 and dst 10.1.1.35
 
 
 
還有一個圖形的抓包工具:wireshark
 
 
 
 
===================================
 
 
 
mangle表的mark的討論
 
 
MARK用來給包設置特殊的標記。iproute2能識別這些標記,並根據不同的標記(或沒有標記)決定不同的路由。用這些標記我們可以做帶寬限制和基於請求的分類。
 
 
用處一:
lvs集群里,可以對進入的數據包打mark標記,然后針對標記再來進行分發
 
使用到iptables 的 set-mark和ipvsadm -f參數
 
 
--下面這段就是網上的一個例子,學到LVS后,可以對比這個做出來
==========================================
 
例子:LVS的 NAT 模式配置使用-f 選項
OS:   Redhat 9 內核:2.4.20
Load Balancer: eth0: 192.168.1.110/32 (負載服務器對外VIP)
                      eth1: 192.168.3.1/24
Realserver1: 192.168.3.2 (集群服務器)
                 掩碼: 255.255.255.0
                 網關: 192.168.3.1
Realserver2: 192.168.3.3 (集群服務器)
                 掩碼: 255.255.255.0
                 網關: 192.168.3.1
 
實驗目的:在負載服務器上,配置LVS(NAT模式),做遠程登陸服務器的集群。
實現最終用戶訪問負載服務器的對外VIP,負載服務器,將請求分發到集群下的服務器,
由集群服務器輪流提供ssh和telnet服務。
 
Load Balancer上設置:
#echo "1" > /proc/sys/net/ipv4/ip_forward        #確保轉發功能已打開
# iptables -t mangle -A PREROUTING -p tcp -d 192.168.1.110/32 --dport 22 -j MARK --set-mark 2
# iptables -t mangle -A PREROUTING -p tcp -d 192.168.1.110/32 --dport 23 -j MARK --set-mark 2
# iptables -t mangle -L PREROUTING         #查看上述兩條規則是否加入到mangle表的PREROUTING鏈中
# ipvsadm -A -f 2 -s rr    #添加一個LVS服務,數據類型為fwmark為2的數據包,使用輪詢策略
# ipvsadm -a -f 2 -r 192.168.3.2 -m -w 1    #添加真實服務器192.168.3.2到LVS(NAT模式)
                                                                         #數據類型為fwmark為2的服務中
# ipvsadm -a -f 2 -r 192.168.3.3 -m -w 1    #添加真實服務器192.168.3.3到LVS(NAT模式)
                                                                        #數據類型為fwmark為2的服務中
 
 
 
==========================================================
 
 
 
 
用處二:
可以和策略路由結合使用,進行路由的標記分發
 
參考:
http://bbs.chinaunix.net/thread-2228370-1-1.html
http://bbs.chinaunix.net/thread-2251893-1-1.html
 
 
 
 
用處三:
單服務器多個網卡同網段,想進行從哪個網卡來的數據就從哪個網卡出去
 
--一般來說,單服務器多網卡不要使用同一個網段的IP
 
 
用一個虛擬機兩個host-only網卡,同網段
 
用真實機ping這兩個網卡,然后在真實機上查看
 
[root@li ~]# arp -a |grep 212
bogon (192.168.212.146) at 00:0C:29:55:CC:D7 [ether] on vmnet1
bogon (192.168.212.147) at 00:0C:29:55:CC:D7 [ether] on vmnet1
--結果是兩個網卡都是對應eth0的MAC
 
 
關掉eth1 147,然后arp -d 192.168.212.147清除,ping 192.168.212.147還是可以ping通
 
 
 
 
解決辦法:
默認,linux所有的網卡都會回應arp,
 
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/eth1/arp_ignore
--這樣修改后,如果本網卡沒有這個IP,則不回應arp
 
--這個參數,在LVS集群里也有應用
 
 
 
ping146和147測試,得到的結果就是自己的IP對應自己的MAC地址
[root@li ~]# arp -a |grep 212
bogon (192.168.212.146) at 00:0C:29:55:CC:D7 [ether] on vmnet1
bogon (192.168.212.147) at 00:0C:29:55:CC:E1 [ether] on vmnet1
 
===============================================================
 
 
 
 
 
================================================================
 
 
 
 
linux 高級路由
 
 
 
lartc.org
 
 
 
# ip rule list
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
 
 
 
 
# cat /etc/iproute2/rt_tables
--上面的local對應數字255,在rhel5.7里ip rule list看到的不是local,而是255;這只是對應的兩種名稱而已
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
 
 
 
# ip route list table local/255
# ip route list table main/254
# ip route list table default/253
 
 
 
============================================================
 
 
應用實例1:
    ----------》快線路
    |
    |
  內網用戶  ----linux路由
    
    
     ---------》慢線路
 
 
linux路由器有兩條上網線路,一個快,一個慢
有這樣的需求:內網用戶需要給錢共享上網,有人給錢多,需要快線路,有人給錢少,需要快線路,這樣的話,我們就可以使用策略路由了
 
 
 
模擬的話使用下面的圖:
 
 
172.16.2.20
    ----------》VM2(bridge)
    |
81.1.1.128     | 172.16.2.35  eth0
  VM1(hostonly)----linux路由81.1.1.1   vmnet1    公網
     71.1.1.1   vmnet8    
    
     ---------》VM3 (nat)
71.1.1.128
 
 
上圖架構中:
1.把VM1網關指向81.1.1.1
2,把linux路由器的網關指向172.16.2.20
3.linux路由打開ip_forward
 
 
先測試:在VM1上ping一個外網IP(如 ping 8.8.8.8),這個時候只能在VM2上抓到相關的包,表示數據包從VM2出去
 
 
 
下面就是在linux路由上進行操作來實現:
 
 
操作命令:
echo 200 t1 >> /etc/iproute2/rt_tables
ip rule add from 81.1.1.128  table t1
ip route add default via 71.1.1.128 dev vmnet8 table t1
ip route flush cache
 
 
 
操作完后,測試
1,在內網ping 8.8.8.8
2,在兩個模擬外網路由器的機器上抓包
# tcpdump -i eth0 -p icmp
3,結果這次只能在VM3上抓到包,OK
 
 
 
應用實例2:
 
 
 
 
172.16.2.20
    ----------》VM2(bridge)
    |
81.1.1.128     | 172.16.2.35 eth0
  VM1(hostonly)----linux路由81.1.1.1   vmnet1
     71.1.1.1   vmnet8
    
     ---------》VM3 (nat)
71.1.1.128
 
 
 
 
要實現不同類型的包走不同的線路:如80的訪問走一條線,其它的走另外一條線路
實現不同類型的包的策略路由,就要借助於iptables的mangle鏈的set mark功能
 
 
1,在linux路由器上使用策略路由實現
 
 
# iptables -t mangle -A PREROUTING -i vmnet1 -p tcp --dport 80 -j MARK --set-mark 1 --把從內網進來要出去的80的包打標記為1
 
 
# echo 100 http.out >> /etc/iproute2/rt_tables --建一張叫http.out的表,表編號100
 
# ip rule add fwmark 1 table http.out pref 20000  --指定打了標記為1的所有包都走http.out這張路由表,並指定優先級為20000(這里優先級可以不指,因為只有這一條策略)
# ip route add default via 71.1.1.128 dev vmnet8 table http.out  --指定http.out表從vmnet8出去找71.1.1.128
# ip route flush cache --刷新路由緩存
 
 
 
2,測試
測試一:在內網81.1.1.128客戶端上
elinks 172.16.2.20
 
172.16.2.20和71.1.1.128上都執行下面的命令
tcpdump -i eth0 tcp port 80
--只有71.1.1.128上能抓到包,OK
 
 
測試二:在內網81.1.1.128客戶端上
ping 172.16.2.20
 
172.16.2.20和71.1.1.128上都執行下面的命令
tcpdump -i eth0 -p icmp
--只有172.16.2.20上能抓到包,OK
 
 
--從上面就可以看到出去的80端口的包和其它的包走的路線不一致
 
 
 
 
=============================================================
 
 
 
應用實例3:
 
172.16.2.51      bridge  客戶端 hostonly2 91.1.1.129
    
    
       
172.16.2.41 bridge hostonly2 91.1.1.128
     電信路由器1 網通路由器2
81.1.1.130 hostonly1  nat 71.1.1.131
    
    
81.1.1.136 hostonly1 服務器 nat 71.1.1.132
 
 
 
進來
電信客戶端
SIP:192.168.1.100
DIP:172.16.2.41
被客戶端家里的路由器SNAT
SIP:172.16.2.51
DIP:172.16.2.41
被服務器端的電信路由器DNAT
SIP:172.16.2.51
DIP:81.1.1.136
 
 
我們下面所做的就是回去時,由兩個不同ISP運營商進來的包,從兩個不同的網關回去
 
 
回去:
SIP:81.1.1.136
DIP:172.16.2.51
被服務器端的電信路由器SNAT
SIP:172.16.2.41
DIP:172.16.2.51
被電信客戶端家里的路由器DNAT
SIP:172.16.2.41
DIP:192.168.1.100
 
 
 
 
上圖中:
客戶端用虛擬機(linux或xp都可以,但不能使用真實機,因為真實機可以直接訪問到上圖中的服務器)
eth0 172.16.2.51 bridge
eth1 91.1.1.129 hostonly2
 
 
電信路由器1用虛擬機
eth0 172.16.2.41 bridge
eth1 81.1.1.130 hostonly1
 
 
網通路由器2用虛擬機
eth0 91.1.1.128 hostonly2
eth1 71.1.1.131 nat
 
服務器用虛擬機
eth0 81.1.1.136 hostonly1
eth1 71.1.1.132 nat
 
 
--假設上圖里的客戶端為內網用戶,服務器為公網服務器;
--因為是模擬環境,所以這里兩個路由器打開ip_forward
--我們實現的是當客戶端用電信線路訪問,也只能從電信線路返回;網通線路訪問,也只能從網通線路返回
 
 
 
 
1,在服務器上使用策略路由實現
 
# ip rule
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
 
 
# echo 100 dianxin >> /etc/iproute2/rt_tables
# echo 200 wangtong >> /etc/iproute2/rt_tables
 
# ip route add 81.1.1.0 dev eth0 src 81.1.1.136 table dianxin
# ip route add default via 81.1.1.130 table dianxin
# ip route add 71.1.1.0 dev eth1 src 71.1.1.132 table wangtong
# ip route add default via 71.1.1.131 table wangtong
 
 
 
# ip rule add from 81.1.1.136 table dianxin
# ip rule add from 71.1.1.132 table wangtong
 
 
# ip rule
0: from all lookup local
32764: from 71.1.1.132 lookup wangtong
32765: from 81.1.1.136 lookup dianxin
32766: from all lookup main
32767: from all lookup default
 
 
 
測試:
客戶端模擬電信線路:
把網關指向172.16.2.41
ping 81.1.1.136  可以ping通
traceroute 81.1.1.136  結果為兩跳,第一跳172.16.2.42,第二跳到目地81.1.1.136
 
在服務器上打開兩個終端,去tcpdump icmp的包
tcpdump  -i eth0 -p icmp --這里有包
tcpdump  -i eth1 -p icmp --這里沒包
 
測試OK
 
 
客戶端模擬網通線路:
和上面的一樣
 
 
 
 
 
==============================
 
 
應用實例4:
 
 
有些情況一個服務器多張網卡配置成同一個網段(這種做法是不正確的),
因為同一個網段,那么這多張網卡使用的路由是同一條,無法將他們區分開來
(從不同網卡進來的包,一般都會從eth0出去)
如果你想要實現從哪里進,從哪里去,使用iproute2對多張網卡設定不同的網關就可以(優先級要高於main表,也就是route -n看到的)
 
做法參考實例3
 
 
 
====================================
 
 
 
靜態路由:
 
 
 
真實機A    虛擬機B     虛擬機C   虛擬機D
     eth1   ---->    eth0   eth1
 2.2.2.2    <----   2.2.2.3     4.4.4.4
   
 ip_forward     ip_forward
 
  eth0     eth0             eth1       eth0
1.1.1.1   --->  1.1.1.2    3.3.3.3  <--3.3.3.4
 
 
上圖中,所有IP同網段的網卡在物理上也在一個交換機上
       所有IP不同網段的網卡在物理上不在同一個交換機上
也就是說,上面有四個物理網段
 
 
請問:我在1.1.1.1上,如何能ping通4.4.4.4?
 
 
 
[root@li ~]# ls /share/soft/route/zebra-0.95a.tar.gz
 
 
# tar xvf /zebra-0.95a.tar.gz -C /usr/src/
# cd /usr/src/zebra-0.95a/
# ./configure --enable-irdp --enable-netlink  --enable-tcp-zebra
# make ;make install
 
安裝完后,就可以在下面的路徑找到配置模版
# ls /usr/local/etc/
bgpd.conf.sample   ospf6d.conf.sample  ripd.conf.sample    zebra.conf.sample
bgpd.conf.sample2  ospfd.conf.sample   ripngd.conf.sample
 
# cd /usr/local/etc/
# cp zebra.conf.sample zebra.conf
 
# vim zebra.conf --主配置文件,修改下面三行
hostname Router1 --路由器前的提示符
password 123 --密碼
enable password 123 --enable模式的密碼
 
 
# zebra -d --啟動zebra,-d表示以daemon形式啟動
 
# netstat -ntlup |grep 2601 --2601端口
tcp        0      0 :::2601                     :::*                        LISTEN      10979/zebra     
 
# telnet localhost 2601
Password: --密碼為zebra.conf里password后的密碼
Router1> --這是view only 模式
 
Router1> show ip route --可以查看路由
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
       B - BGP, > - selected route, * - FIB route
 
K>* 0.0.0.0/0 via 1.1.1.2, eth1
C>* 1.1.1.0/24 is directly connected, eth1
C>* 10.1.1.0/24 is directly connected, eth0
C>* 127.0.0.0/8 is directly connected, lo
 
Router1> enable --進入管理模式
Password: --密碼為zebra.conf里的enable password后的密碼
Router1#
 
Router1# configure terminal --進入配置模式
Router1(config)# interface eth0 --進入eth0端口的子配置模式
Router1(config-if)# ip address 10.1.1.214/24
Router1(config-if)# exit
Router1(config)# interface eth1
Router1(config-if)# ip address 1.1.1.1/24  
 
 
配置路由協議:rip
 
# cp ripd.conf.sample ripd.conf
 
# vim ripd.conf
hostname ripd
password 123
 
# ripd -d
 
# netstat -ntlup |grep 2602
tcp        0      0 :::2602                     :::*                        LISTEN      11005/ripd         
 
# telnet localhost 2602
 
Password:
ripd> enable
ripd# configure terminal
ripd(config)# router rip
ripd(config-router)# network eth0
ripd(config-router)# network 10.1.1.0/24
ripd(config-router)# network eth1
ripd(config-router)# network 1.1.1.0/24
ripd(config-router)# version 2
 
 
# cp ospfd.conf.sample ospfd.conf
 
# vim ospfd.conf
 
hostname ospfd
password 123
enable password 123
 
 
# netstat -ntlup |grep 2604
tcp        0      0 :::2604                     :::*                        LISTEN      11024/ospfd         
 
 
# telnet localhost 2604
Password:
ospfd> enable
Password:
ospfd# configure terminal
ospfd(config)# router ospf
ospfd(config-router)# network 10.1.1.0/24 area 0
ospfd(config-router)# network 1.1.1.0/24 area 0
 
 
 
 
===================================
 
 
 
 
IP  tunnel
 
 
 
    172.16.2.35    172.16.2.80    
1 2
    81.1.1.1     10.1.1.1
 
 
 
1 2
81.1.1.128  10.1.1.133
 
 
 
 
建立外1和外2之間的tunnel
 
1,外1上面操作
# modprobe ip_gre --tunnel協議
# lsmod |grep gre
ip_gre                 15341  0
 
 
ip tunnel add tun0 mode gre  remote 172.16.2.80 local 172.16.2.35
ip link set tun0 up
ip addr add 1.1.1.1 peer 1.1.1.2 dev tun0
ip route add 10.1.1.0/24 dev tun0
 
 
 
2,外2上的操作
# modprobe ip_gre
# lsmod |grep gre
ip_gre                 15341  0
 
 
ip tunnel add tun0 mode gre  remote 172.16.2.35 local 172.16.2.80
ip link set tun0 up
ip addr add 1.1.1.2 peer 1.1.1.1 dev tun0
ip route add 81.1.1.0/24 dev tun0
 
 
3,內1上的操作
把網關指向外1的內網IP
route add default gw 81.1.1.1
 
 
 
4,內2上的操作
把網關指向外2的內網IP
route add default gw 10.1.1.1
 
 
 
5,測試,內1和內2兩個內網可以互相ping通,並且可以使用traceroute 命令接IP,查看確實走了tunnel
 
測試完后,刪除tunnel的方法  ip tunnel del tun0
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM