作者 主題: 關於nat設定卻不能上網的問題  (閱讀 12364 次)

0 會員 與 1 訪客 正在閱讀本文。

john70480

  • 可愛的小學生
  • *
  • 文章數: 12
    • 檢視個人資料
關於nat設定卻不能上網的問題
« 於: 2008-05-31 22:14 »
各位大大您們好
小弟我為了練習linux
在自己家想架個dhcp+nat的環境
我是用ubuntu來架dhcp+nat
我的網路環境是這樣的

          ADSL
     ┌┴┐
     別人   └┐
    電腦      HUB
           ┌┴┐
            XP   UBUNTU


我現在的問題是
我XP上面用VMware模擬redhat無法上網

我ubuntu目前是用一張實體網卡
一張對外
一張對內
我網路是用ppp的

我ubuntu
對外網路介面ppp0
對內網路介面eth1

dhcp的設定檔我全是參考這個網站的
http://blog.aquirede.net/read.php?275

auto eth1
iface eth1 inet static
address 192.168.1.254 #自訂私有IP
netmask 255.255.255.0

/etc/dhcp3/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
   option routers 192.168.1.2;
   option subnet-mask 255.255.255.0;
   option domain-name-servers 168.95.1.1; #中華電信的DNS位址
   option ip-forwarding off;
   range dynamic-bootp 192.168.1.30 192.168.1.50; #自動分配IP的範圍
   default-lease-time 21600;
   max-lease-time 43200;
}

我dhcp成功架成了
可是我nat的不知道哪裡出問題
我的iptables設定檔
#!/bin/bash

/sbin/modprobe iptable_filter
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ipt_state
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_REJECT
/sbin/modprobe ipt_REDIRECT
/sbin/modprobe ipt_LOG

/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -Z -t nat
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT

/sbin/iptables -A INPUT -i lo -j ACCEPT

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

我在xp的vmware下的redhat
能夠成功的分配到ip
192.168.1.47
可以ping 到192.168.1.254
不能ping 168.95.1.1


我redhat的ifcfg-eht0

DEVICE=eth0
ONBOOT=yes
HWADDR=XXXXXXXXXXXX
TYPE=ethernet
BOOTPROTO=dhcp
#network=192.168.0
NETMASK=255.255.255.0
BROADCAST=192.168.1.255
GETWAY=192.168.1.2


我現在不知道是我ubuntu的nat設定錯誤
還是我redhat的clinet設定錯誤

yoww

  • 活潑的大學生
  • ***
  • 文章數: 431
    • 檢視個人資料
    • 唉呦~MIS先生
回覆: 關於nat設定卻不能上網的問題
« 回覆 #1 於: 2008-06-02 11:14 »
192.168.1.2在哪?
XP是接在HUB下?還是接在UBUNTU後?
唉呦~MIS先生 http://i-yow.blogspot.com/
寶貝的天空      http://3-baby.blogspot.com/

pippeng

  • 活潑的大學生
  • ***
  • 文章數: 329
  • 性別: 男
    • 檢視個人資料
    • IT Ranger
回覆: 關於nat設定卻不能上網的問題
« 回覆 #2 於: 2008-06-02 15:33 »

我redhat的ifcfg-eht0

DEVICE=eth0
ONBOOT=yes
HWADDR=XXXXXXXXXXXX
TYPE=ethernet
BOOTPROTO=dhcp
#network=192.168.0
NETMASK=255.255.255.0
BROADCAST=192.168.1.255
GETWAY=192.168.1.2

你明明是用DHCP為什麼還設NETMASK,GETWAY,BROADCAST ?

還有你是透過VMware那你的Vmware網路設定有正確嗎 ?
不要透過DHCP依照你XP上的設定去設可以連上網路嗎 ?
« 上次編輯: 2008-06-02 15:35 由 pippeng »
用心用心再用心

john70480

  • 可愛的小學生
  • *
  • 文章數: 12
    • 檢視個人資料
回覆: 關於nat設定卻不能上網的問題
« 回覆 #3 於: 2008-06-03 18:10 »
to:yoww
192.168.1.2在哪?

那是我的route位址
設定在etc/dhcp3/dhcpd.conf

option routers 192.168.1.2;

我XP是在hub後面
我也試過ubuntu>hub>xp的狀況
不過那個情況我也是連不出去
現在的網路狀況是

狀況1
HUB┬─  ubuntu
     │
     XP

我也用過

狀況2
ubuntu ─ HUB ─ XP

不過我看書他也有寫狀況1的網路狀況


to: pippeng

我redhat的ifcfg-eht0
原本也只設定

DEVICE=eth0
ONBOOT=yes
HWADDR=XXXXXXXXXXXX
TYPE=ethernet
BOOTPROTO=dhcp

這樣而已
可是因為連不出去
我就又加了那些上去

我寫那樣也是抓的到ip的阿


還有你是透過VMware那你的Vmware網路設定有正確嗎 ?

       vmware的網路設定是指什麼?
       我只知道我vmware用的是bridged

不要透過DHCP依照你XP上的設定去設可以連上網路嗎 ?

我xp都是用adsl連線程式連網路的
也可以靠DHCP抓到內部IP


我個人猜測應該主要的問題是在nat的問題吧
我比較想知道的是
我ubuntu的nat有設定錯?
還是我
redhat的設定有錯

或是整個網路環境設定錯誤
« 上次編輯: 2008-06-03 18:14 由 john70480 »

yoww

  • 活潑的大學生
  • ***
  • 文章數: 431
    • 檢視個人資料
    • 唉呦~MIS先生
回覆: 關於nat設定卻不能上網的問題
« 回覆 #4 於: 2008-06-03 18:30 »
我覺得是整個網路環境的問題吧?
有沒有試過 HUB ─ ubuntu ─ XP(Redhat)
192.168.1.2是"route" ?
你指的"route"在哪裡?

你在DHCP裡設定的"option routers 192.168.1.2;"
指的是DHCP用戶端的Gateway
應該是設在ubuntu上面eth1的IP
也就是說
DHCP的用戶端要連去Internet時,要到192.168.1.2
再由192.168.1.2那台主機幫他做NAT轉發出去

你的DHCP用戶端連的到192.168.1.2嗎?
你真的了解NAT是在做甚麼嗎?
你把自己的環境搞太複雜了.....
要用VM的話,還不如全部都在VM裡測試
不然混著真實主機,出問題會不好除錯

建議你把每台主機的連接方式跟上面的IP和Gateway畫張圖標示出來
這樣你就能知道封包出去時 他有沒有傳送到正確的地方

唉呦~MIS先生 http://i-yow.blogspot.com/
寶貝的天空      http://3-baby.blogspot.com/

john70480

  • 可愛的小學生
  • *
  • 文章數: 12
    • 檢視個人資料
回覆: 關於nat設定卻不能上網的問題
« 回覆 #5 於: 2008-06-03 19:49 »
我覺得是整個網路環境的問題吧?
有沒有試過 HUB ─ ubuntu ─ XP(Redhat)
192.168.1.2是"route" ?
你指的"route"在哪裡?

你在DHCP裡設定的"option routers 192.168.1.2;"
指的是DHCP用戶端的Gateway
應該是設在ubuntu上面eth1的IP
也就是說
DHCP的用戶端要連去Internet時,要到192.168.1.2
再由192.168.1.2那台主機幫他做NAT轉發出去

你的DHCP用戶端連的到192.168.1.2嗎?
你真的了解NAT是在做甚麼嗎?
你把自己的環境搞太複雜了.....
要用VM的話,還不如全部都在VM裡測試
不然混著真實主機,出問題會不好除錯

建議你把每台主機的連接方式跟上面的IP和Gateway畫張圖標示出來
這樣你就能知道封包出去時 他有沒有傳送到正確的地方




HUB ─ ubuntu ─ XP(Redhat)
跟我
狀況2是一樣的網路狀況阿
網路線還要跳線更麻煩

192.168.1.2是"route" ?
你指的"route"在哪裡?

那個部份其實我真不是很懂

http://linux.vbird.org/linux_server/0340dhcp.php#client_linux
不過鳥哥的DHCP 用戶端的設定
步驟1-4的測試我都有成功
我執行route -n
得到的結果
0.0.0.0         192.168.1.254  0.0.0.0        UG     eth0

步驟五我就沒有設定了

我只知道nat的作用就是我redha(192.168.1.47)t的封包傳到ubuntu(192.168.1.254)
之後在用
public ip送出封包

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
這兩行設定
我的封包應該就可以送出去了才對阿
會不會是我這裡設定沒有接收封包

其實我真的不是很懂這些
我接觸linux不過幾個月而已
希望各位高手教一教我
« 上次編輯: 2008-06-05 01:32 由 john70480 »

pippeng

  • 活潑的大學生
  • ***
  • 文章數: 329
  • 性別: 男
    • 檢視個人資料
    • IT Ranger
回覆: 關於nat設定卻不能上網的問題
« 回覆 #6 於: 2008-06-04 09:10 »
HUB ─ ubuntu ─ XP(Redhat)
跟我
狀況2是一樣的網路狀況阿
網路線還要跳線更麻煩

192.168.1.2是"route" ?
你指的"route"在哪裡?

那個部份其實我真不是很懂

http://linux.vbird.org/linux_server/0340dhcp.php#client_linux
不過鳥哥的DHCP 用戶端的設定
步驟1-4的測試我都有成功
我執行route -n
得到的結果
0.0.0.0         192.168.1.254  0.0.0.0        UG     eth0

步驟五我就沒有設定了

我只知道nat的作用就是我redha(192.168.1.47)t的封包傳到ubuntu(192.168.3.254)

阿你的DHCP SERVER -ubuntu是192.168.3.254
怎麼dhcp發出來的會是192.168.1.47

你怎樣有辦法溝通喔 ??
阿鳥哥網有這樣設嗎 ??

阿如果你真的有這需求
請先解決Route
用心用心再用心

john70480

  • 可愛的小學生
  • *
  • 文章數: 12
    • 檢視個人資料
回覆: 關於nat設定卻不能上網的問題
« 回覆 #7 於: 2008-06-04 15:58 »
HUB ─ ubuntu ─ XP(Redhat)
跟我
狀況2是一樣的網路狀況阿
網路線還要跳線更麻煩

192.168.1.2是"route" ?
你指的"route"在哪裡?

那個部份其實我真不是很懂

http://linux.vbird.org/linux_server/0340dhcp.php#client_linux
不過鳥哥的DHCP 用戶端的設定
步驟1-4的測試我都有成功
我執行route -n
得到的結果
0.0.0.0         192.168.1.254  0.0.0.0        UG     eth0

步驟五我就沒有設定了

我只知道nat的作用就是我redha(192.168.1.47)t的封包傳到ubuntu(192.168.3.254)

阿你的DHCP SERVER -ubuntu是192.168.3.254
怎麼dhcp發出來的會是192.168.1.47

你怎樣有辦法溝通喔 ??
阿鳥哥網有這樣設嗎 ??

阿如果你真的有這需求
請先解決Route
那是我打錯了不好意思
我DHCP SERVER -ubuntu是192.168.1.254


yoww

  • 活潑的大學生
  • ***
  • 文章數: 431
    • 檢視個人資料
    • 唉呦~MIS先生
回覆: 關於nat設定卻不能上網的問題
« 回覆 #8 於: 2008-06-04 16:23 »
我看你整個打掉重蓋比較快 ;D
如果不想用跳線的話
試試看把環境改成這樣
ADSL ── ubuntu ──  HUB ── XP(Redhat)
         (eth0)   (eth1)                   (eth0)
         (ppp0)
其中
ubuntu(eth0)設定ppp0連線ADSL
ubuntu(eth1)設定固定IP:192.168.1.254/24,不需設Gateway
Redhat(eth0)設定DHCP發放

再改DHCP的設定
option routers 192.168.1.254;

這樣試試看~
Redhat(eth0)IP應該要分到192.168.1.30~192.168.1.50之間,Gateway應該是192.168.1.254
沒問題的話這樣就可以連出去了

分不到IP的話
請在Redhat(eth0)上設定192.168.1.X的IP,測試能不能PING的到192.168.1.254

IP分配都正確的話
請檢查ubuntu的ADSL是否正常
唉呦~MIS先生 http://i-yow.blogspot.com/
寶貝的天空      http://3-baby.blogspot.com/

john70480

  • 可愛的小學生
  • *
  • 文章數: 12
    • 檢視個人資料
回覆: 關於nat設定卻不能上網的問題
« 回覆 #9 於: 2008-06-04 16:47 »
我看你整個打掉重蓋比較快 ;D
如果不想用跳線的話
試試看把環境改成這樣
ADSL ── ubuntu ──  HUB ── XP(Redhat)
         (eth0)   (eth1)                   (eth0)
         (ppp0)
其中
ubuntu(eth0)設定ppp0連線ADSL
ubuntu(eth1)設定固定IP:192.168.1.254/24,不需設Gateway
Redhat(eth0)設定DHCP發放

再改DHCP的設定
option routers 192.168.1.254;

這樣試試看~
Redhat(eth0)IP應該要分到192.168.1.30~192.168.1.50之間,Gateway應該是192.168.1.254
沒問題的話這樣就可以連出去了

分不到IP的話
請在Redhat(eth0)上設定192.168.1.X的IP,測試能不能PING的到192.168.1.254

IP分配都正確的話
請檢查ubuntu的ADSL是否正常

好的我試看看

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17393
    • 檢視個人資料
    • http://www.study-area.org
回覆: 關於nat設定卻不能上網的問題
« 回覆 #10 於: 2008-06-04 19:14 »
等等,我也覺得 option routers 192.168.1.2; 是個問題。
請問 182.168.1.2 是 ubuntu 上的 IP 嗎?
改為 option routers 192.168.1.254; 看看?

creative1223

  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
回覆: 關於nat設定卻不能上網的問題
« 回覆 #11 於: 2008-06-05 11:58 »
嗯…仔細看…好像option routers不是應該指到ubuntu的eth1嗎
再由ubuntu幫你forward出去…再做NAT…
可以ping到192.168.1.254…這應該是相同網段…就算不是用dhcp派的…
自己設一個同網段也可以ping得到

john70480

  • 可愛的小學生
  • *
  • 文章數: 12
    • 檢視個人資料
回覆: 關於nat設定卻不能上網的問題
« 回覆 #12 於: 2008-06-05 17:29 »
嗯…仔細看…好像option routers不是應該指到ubuntu的eth1嗎
再由ubuntu幫你forward出去…再做NAT…
可以ping到192.168.1.254…這應該是相同網段…就算不是用dhcp派的…
自己設一個同網段也可以ping得到

我解決問題了
眾位大大的回答真是為我解惑阿
最終問題其實是
route設定錯誤
應該指定192.168.1.254才對

原來是教學寫錯了
虧我那麼相信他
http://blog.aquirede.net/read.php?275

我用我狀況一的網路設定也可以連上網了
太感謝了
照著人家的教法做不懂其中的原因才是真正問題的盲點

« 上次編輯: 2008-06-05 17:33 由 john70480 »

yoww

  • 活潑的大學生
  • ***
  • 文章數: 431
    • 檢視個人資料
    • 唉呦~MIS先生
回覆: 關於nat設定卻不能上網的問題
« 回覆 #13 於: 2008-06-05 17:38 »
盡信書不如無書  ;D
唉呦~MIS先生 http://i-yow.blogspot.com/
寶貝的天空      http://3-baby.blogspot.com/

john70480

  • 可愛的小學生
  • *
  • 文章數: 12
    • 檢視個人資料
回覆: 關於nat設定卻不能上網的問題
« 回覆 #14 於: 2008-06-05 19:10 »
盡信書不如無書  ;D
沒辦法阿
第一次接觸這東西
只能選擇相信他

雖然第一次看他設定檔的時候
我也很納悶那192.168.1.2是幹嘛用的
想說是他自訂的route ip勒

yoww

  • 活潑的大學生
  • ***
  • 文章數: 431
    • 檢視個人資料
    • 唉呦~MIS先生
回覆: 關於nat設定卻不能上網的問題
« 回覆 #15 於: 2008-06-06 09:06 »
設定參數的時候最好要先了解那個參數的功能
每個人的環境都不盡相同
所以沒有萬用設定檔這種東西
把參數設定上網搜尋一下就會找到解釋了~
EX.鳥哥的私房菜 http://linux.vbird.org/linux_server/0340dhcp.php#server_dhcpd.conf
當然~你要先了解自己的網路環境
EX.你的路由器在哪?
唉呦~MIS先生 http://i-yow.blogspot.com/
寶貝的天空      http://3-baby.blogspot.com/