藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 網絡通訊


    

藍森林 http://www.lslnet.com 2006年7月26日 13:28

【轉】CISCO路由器上實現在內網用公網IP訪問內網服務器完美解決方案(建議置頂)!!!


一直以來,大家都認為cisco路由器上無法實現在內網用公網IP訪問內網服務器,現在給大家一個完美的解決方案,此方案在cisco2611XM ios12.3(c2600-ik9o3s3-mz.123-15) 路由器上通過
方案一:首先,在要用公網ip訪問的服務器上增設在路由器上做了映射的公網IP地址如:202.55.55.55,該服務器至少還有一個內網IP地址:192.168.0.100,然後在路由器上加一條路由,ip route 202.55.55.55 255.255.255.254 192.168.0.100 就可以了,現在就可以在內網用202.55.55.55這個地址訪問內網的192.168.0.100服務器了,至此這個難題就解決了。
http://bbs.net130.com/attachment.php?attachmentid=32606&stc=1

但只適合於有多個固定公網IP的網絡,如果只有一個IP,那再加一台路由器,這個問題就徹底解決了.
方案二:在邊界路器後面再加一台路由器,並在上面將發往被映射的公網地址202.55.55.55的包路由到內網中192.168.0.100服務器,就可以了,也就是說在包還未到達邊界路由器前就被另一台路由器路由到內網的服務器上去了,這樣問題就徹底解決了(即使使用出口IP做的服務器IP也沒有問題),但這樣成本有點高,當然這台額外的路由器可用帶路由功能的防火牆代替,因為現在的網絡中帶路由功能的防火牆還是比較普遍的(我用的就是帶路由功能的天網防火牆),所以實現起來也比較容易、經濟。

http://bbs.net130.com/attachment.php?attachmentid=32605&stc=1

至於用動態IP的也就沒必要做映射了,我們就不討論.(完)



!!!此貼未經本人同意不得轉載!!!

嘿嘿,這種方法早就用過了

只是這種方法不具備通用性,如果不是固定ip地址的,路由沒法加,因為ip地址每次都是變的,而pppoe撥號之後的,一般接口地址都是32位的,你手工加路由也沒有用,如果你只有一個地址,用的接口地址做的nat,加的路由也是沒用的

你這種方式只適合有固定地址的,而且還是有不止一個地址用別的地址做nat的情況

嘿嘿,這種方法早就用過了

只是這種方法不具備通用性,如果不是固定ip地址的,路由沒法加,因為ip地址每次都是變的,而pppoe撥號之後的,一般接口地址都是32位的,你手工加路由也沒有用,如果你只有一個地址,用的接口地址做的nat,加的路由也是沒用的

你這種方式只適合有固定地址的,而且還是有不止一個地址用別的地址...

說的好啊!!

不過至少提供了一種方法啊!!

樓主果真做過試驗?

服務器是可以收到包,回包呢?
回包服務器用內網地址做源地址,可是客戶使用公網地址做目的地址,通信的源和目的不對應,我強烈質疑樓主做過試驗,或者路由器上還有額外配置樓主沒說出來。

作者:冬瓜頭
回包服務器用內網地址做源地址,可是客戶使用公網地址做目的地址,通信的源和目的不對應,我強烈質疑樓主做過試驗,或者路由器上還有額外配置樓主沒說出來。
回包服務器怎麼會用內網地址做源地址呢?它收到的包目標地址是自己的公網地址,自然用自己的公網地址做源地址的,你不用懷疑,我現在的網絡就是這麼用的.

回包服務器怎麼會用內網地址做源地址呢?它收到的包目標地址是自己的公網地址,自然用自己的公網址做源地址的,你不用懷疑,我現在的網絡就是這麼用的.

自然?呵呵,哥們太想當然了,沒有這一說,你是第一人了!

還有你這個解決方案是不錯,但不能順口就說啊,考慮充分再說。



不過哥們你倒是提醒了我,服務器上直接不用設置內網地址了,設置一個公網地址,路由器上加路由,指向內網接口即可,不用做靜態映射了。這樣,內網外網都可以用公網地址訪問服務器,但是再也不能用內網地址訪問了。

真是感謝兄弟了,好人!!

可能各人的網絡環境不同吧,會出現各種不同的狀況

可能各人的網絡環境不同吧,會出現各種不同的狀況

兄弟能否抓個包,讓我見識見識新知識

抓個包????????
有這個必要嗎?

不過如同版主說的,此法只適合映射的公網IP不是出口IP的情況,我的網絡有多個固定公網IP,所以此法沒問題

抓個包????????

是啊,抓個包,回應原地址是公網地址的包,截個圖上來啊

摟主,我按你的方法作了,還是不行啊。我的是cisco2610xm,IOS是 12.3,能把你的鐵上來參考啊

摟主,我按你的方法作了,還是不行啊。我的是cisco2610xm,IOS是 12.3,能把你的鐵上來參考啊

你有多少個固定公網IP?如果只有一個的話,只有加第二個路由器才能實現

自然?呵呵,哥們太想當然了,沒有這一說,你是第一人了!..

說別人想當然,怎麼不先想一下自己是否在想當然?

摟主說的那種做法我是這樣用過

A-------------------------B



A在網卡上同時配置內網和公網地址,B上加一條路由指向這個公網地址,下一跳地址寫A的私網地址,這樣的話呢,在B上ping A上配的那個公網地址不通,但是tcp的訪問都是能通的

其實如果是在B的網關路由器上加一條路由,也一樣是icmp redirect,會在B機上形成一個主機路由,跟我說的情況實質是一樣的

用過樓住類似的方法,不過我的環境是route+firewanll+內網,其中route和firewall的連接地址用的是子網段,比如192.168.0.1 255.255.255.252 (router)192.168.0.2 255.255.255.252(firewall),在路由器上ip route 192.168.0.0 255.255.255.0 192.168.0.2, 一定要防火牆認為是不同的網絡,才會把請求包發到路由器,路由器檢查路由再發送給防火牆,防火牆經過地址轉換,把數據發到內網的服務器,服務器把返回包發到防火牆, 。。。

說別人想當然,怎麼不先想一下自己是否在想當然?

摟主說的那種做法我是這樣用過

A-------------------------B



A在網卡上同時配置內網和公網地址,B上加一條路由指向這個公網地址,下一跳地址寫A的私網地址,這樣的話呢,在B上ping A上配的那個公網地址不通,但是tcp的訪問都是能通的

其實如果是在B的網關路由...


「在B上ping A上配的那個公網地址不通,但是tcp的訪問都是能通的」,這兒不懂

和重定向有關係麼?B生成了主機路由,源地址也不會變啊

說你想當然,你還真是喜歡想當然

果然是想當然! :p

說你想當然,你還真是喜歡想當然

你要麼解釋,要麼別擱這兒廢話

一直以來,大家都認為cisco路由器上無法實現在內網用公網IP訪問內網服務器,現在給大家一個完美的解決方案,此方案在cisco2611XM ios12.3 路由器上通過,首先,在要用公網ip訪問的服務器上增設在路由器上做了映射的公網IP地址如:202.55.55.55,該服務器至少還有一個內網IP地址:192.168.0.100,然後在路由器上加一條路由...

這樣不行啊,路由器提示外網ip地址衝突!!

暈,你用的什麼路由器?我的怎麼不衝突

自己頂一下

暈,你用的什麼路由器?我的怎麼不衝突

我的是2610xm,ios是12.3,我只有一個公網ip,可能是實現不了這個問題了,還有什麼方法能實現

如果只用一個以太網口的話,可能會衝突,你要是用兩個以太口(一個接外網,一個接內網)的話,不會衝突的,再看我的貼,只有一個IP地址就只能用第二個方案了

路過!再頂。

沉得好快啊,聽說死海裡不會沉,嚮往啊...........

樓主提的是有多個固定IP的設置,若只有一個固定IP地址,同時做上網的映射呢?我曾經測試過,沒有成功,有何建議嗎?

那只能用第二方案了,加路由器

好像不用那麼麻煩吧?
我用C2651XM+C2950的網絡裡,在C2651的內網口上做上兩個IP,一個是202.9.100.x一個是192.168.3.100,不在ROUTER上做訪問限制,他們都可以互訪的啊

此貼已更新,請注意閱讀

好像不用那麼麻煩吧?
我用C2651XM+C2950的網絡裡,在C2651的內網口上做上兩個IP,一個是202.9.100.x一個是192.168.3.100,不在ROUTER上做訪問限制,他們都可以互訪的啊

你還是要有兩個固定IP吧?

不錯的東東,頂

沉得慌,送上一橡皮伐

1\港灣的路由器行不行?

2\內部服務器需要雙網卡嗎?還是直接在一塊網卡上設兩個地址?

港灣的路由器沒用過,不知道,..一塊網卡都可以的

是啊,抓個包,回應原地址是公網地址的包,截個圖上來啊
呵呵,我本人認為樓主的方法可行,我來分析一下,你看有什麼問題,希望可以得到你的指教,本人沒有SNIFFER, 就用大腦把,呵呵
首先假設
1,soure=192.168.0.5 des=202.55.55.55
2,到路由做了NAT,source=202.55.55.50 des=202.55.55.55
3,路由器尋到路由,把包送回裡面,就做了2次NAT,source=192.168.0.5 des=192.168.0.100 (這裡做了2次NAT,不知你同意嗎?)所以回應原地址應該不是公網地址的包
4,包到了內服務器,服務器回包 source=192.168.0.100 des=192.168.0.5
冬瓜頭同意嗎?

1,soure=192.168.0.5 des=202.55.55.55
2,到路由做了NAT,source=202.55.55.50 des=202.55.55.55
3,路由器尋到路由,把包送回裡面,就做了2次NAT,source=192.168.0.5 des=192....
4,包到了內服務器,服務器回包 source=192.168.0.100 des=192.168.0.5


你錯了,(soure=192.168.0.5 des=202.55.55.55)到達路由器時並沒有做NAT,而是直接被路由到內網服務器的內網地址:192.168.0.100,因為該網卡還有一個公網IP:202.55.55.55,於是該包被接收,去包到達目的IP.而回包呢?(soure=202.55.55.55 des=192.168.0.5 ),回包在返回經過交換機時,就被交換機直接交換到內網的192.168.0.5去了(通過ARP),沒有通過路由器(不知是不是這樣),或者說該回包是經過路由器,也會被路由到內網的192.168.0.5去的,並沒有做NAT,所以回包還是這個(soure=202.55.55.55 des=192.168.0.5 ),這樣的回包才能正常通信,這也許是很多朋友不明白的地方~~~~~~
如果按你說的,
4,包到了內服務器,服務器回包 source=192.168.0.100 des=192.168.0.5

那內網的192.168.0.5會認為這個包是他的回包嗎?該包的源地址都不是自己所發出包的目標地址,自然會被丟棄.那還能通信嗎?所以你這僅僅只是猜測,要聯繫實際環境來分析.

針對這一類問題,到底那個方案能用?(所有品牌)

靜態nat完全可以達到啊!

回包服務器到底以哪個ip回復包,我覺得應該和服務器提供的服務設置有關吧,因為該服務器作為www服務器,而在www服務器的配置中,監聽所有ip,所以,才能對目的地址為公網ip的包通過源地址為公網ip的包答覆,如果在www服務器的配置中不監聽公網ip,則以上通信就會像冬瓜頭所說,無法實現。

另外,如果在路由器上作了nat允許內網ip訪問外網ip,只要再做一個靜態nat將該內網服務器發佈出去,也可以實現上述功能,只不過,這時候要經過兩次nat轉換,先出去再進來的方式實現訪問,此時就不必在內網服務器上設置外網ip了。

回包服務器到底以哪個ip回復包,我覺得應該和服務器提供的服務設置有關吧,因為該服務器作為www服務器,而在www服務器的配置中,監聽所有ip,所以,才能對目的地址為公網ip的包通過源地址為公網ip的包答覆,如果在www服務器的配置中不監聽公網ip,則以上通信就會像冬瓜頭所說,無法實現。

www配置中肯定要把這個公網IP設為監聽啦,如果不設為監聽,內網怎麼可以用這個公網IP來訪問呢?

嗯,有道理,這個我沒有考慮清楚,pc到底以哪個ip答覆,應該和源包以哪個目的ip來判斷吧,這點確實可能像樓主所說。

另外,如果在路由器上作了nat允許內網ip訪問外網ip,只要再做一個靜態nat將該內網服務器發佈出去,也可以實現上述功能,只不過,這時候要經過兩次nat轉換,先出去再進來的方式實現訪問,此時就不必在內網服務器上設置外網ip了。
你所說的那種,只可以用域名訪問,不可以用公網IP訪問.因為cisco的路由器加了靜態NAT後,會把DNS查詢回包中的公網IP換成內網相應的內網IP.實際上還是用內網IP訪問.

呵呵,你的意思是要在路由器到服務器這段也要以公網ip傳輸包麼,那只能給服務器設置公網ip了,否則肯定不能訪問了,可是這樣子做又有什麼意義呢??

呵呵,你的意思是要在路由器到服務器這段也要以公網ip傳輸包麼,那只能給服務器設置公網ip了,否則肯定不能訪問了,可是這樣子做又有什麼意義呢??
有什麼意義????現在不是正在討論如何在內網用公網IP訪問內網服務器嗎?暈~~~~~~
請大家緊扣題子主題討論,無關的將申請版主刪除.................

呵呵,樓主既然說用公網ip訪問,又說什麼dns查詢的回包怎麼怎麼樣,這我就不明白了,都直接用ip訪問了,還有什麼dns查詢,又怎麼會用域名可以,用ip不可以,呵呵

呵呵,樓主既然說用公網ip訪問,又說什麼dns查詢的回包怎麼怎麼樣,這我就不明白了,都直接用ip訪問了,還有什麼dns查詢,又怎麼會用域名可以,用ip不可以,呵呵
你認為用IP和用域名訪問是一樣嗎?在CISCO的路由器(較新版本IOS)上如果你加了靜態NAT,你用nslookup查詢一下,看看你的域名解析的地址是不是你的公網IP,絕對不是,而是你的內網IP.

做一對一的NAT就可以了吧

真是說的不行,

越說越離譜~~

請緊扣主題,解決實際問題!

你認為用IP和用域名訪問是一樣嗎?在CISCO的路由器(較新版本IOS)上如果你加了靜態NAT,你用nslookup查詢一下,看看你的域名解析的地址是不是你的公網IP,絕對不是,而是你的內網IP.
可是你到說說為什麼用公網ip就不能訪問,此時直接用ip訪問,不會進行dns解析,假設發包地址192.168.0.10,路由器出口地址59.59.59.50,服務器外網地址59.59.59.59,服務器內網地址192.168.0.1
則包源地址192.168.0.10,目的地址59.59.59.59,然後在出口上,進行動態nat轉換,包源地址轉換為59.59.59.50,目的地址59.59.59.59,然後進行靜態nat轉換,包源地址為59.59.59.50,目的地址轉換為192.168.0.1,回復包的過程則是此過程的反過程,請問是這樣子吧。為什麼說不能通信呢?

只有從inside 到outside的包才會被NAT,而59.59.59.59這個IP並沒有在outside,而就是在這台路器IP所在的子網中,所以不會被NAT,就算包是按你說的發出去了,那憑什麼說回包就按這個過程反回來呢?當192.168.0.1收到包後,發現發來的包源地址是59.59.59.50,它只有將該地址做目標地址進行回包,這時,192.168.0.10會收到包嗎?包是被回到59.59.59.50去了,還能通信嗎?所以不要亂猜測,要聯繫實際進行分析.

可是你到說說為什麼用公網ip就不能訪問,此時直接用ip訪問,不會進行dns解析,假設發包地址192.168.0.10,路由器出口地址59.59.59.50,服務器外網地址59.59.59.59,服務器內網地址192.168.0.1
則包源地址192.168.0.10,目的地址59.59.59.59,然後在出口上,進行動態nat轉換,包源地址轉換為59.59.59.50,目的地址59.59.59....

不是我們說說不能訪問,

而是事實不能訪問,

大家都碰到這個問題了


Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com