看板 FreeBSD 關於我們 聯絡資訊
※ 引述《wryyy (我是八拉)》之銘言: : 各位先進,小弟最近被迫使用FreeBSD架設NAT,問題都已解決,但是非常怪異,請撥冗檢 : 視一下,謝謝。 : 1. 環境如下: : OS: FreeBSD 7.0 Release AMD64 : 網路介面:Intel 82559 -> fxp0 這是對外的裝置 : Realtek 8139 -> rl0 這是對lan1的裝置 : Nvidia onboard ethernet -> nfe0 這是對lan2的裝置 : 連線環境:Hinet光世代 10m/2m fix address x 1 + dynamic address x 7 : 2. 需求: : 在fxp0上撥接取得兩個浮動位址(tun0與tun1兩個介面),lan1對外由tun0而lan2由 : tun1出去 : 3. 遭遇的逆境: : 最早以FreeBSD Handbook為範例: : http://www.freebsd.org/doc/en/books/handbook/pppoe.html : 將/etc/ppp/ppp.conf作如下設定: : default: : set log Phase tun command : set ifaddr 10.0.0.1/0 10.0.0.2/0 : dyn1: : set device PPPoE:fxp0 : set authname YOURLOGINNAME : set authkey YOURPASSWORD : set dial : set login : add default HISADDR : dyn2: : set device PPPoE:fxp0 : set authname YOURLOGINNAME : set authkey YOURPASSWORD : set dial : set login : add default HISADDR : 設定完後,以指令: : ppp -ddial dyn1 : ppp -ddial dyn2 : 撥接後,得到兩個介面tun0與tun1,但是tun1卻未能成功取得ip組態 : 檢視/var/log/messages,有如下的錯誤訊息: : tun1: Warning: iface add: ioctl(SIOCAIFADDR, 211.123.234.321/24 -> \ : 211.123.234.254): File exists 不好意思,上一篇發文時沒注意到,把最開頭的tun1打成tun0。 已修改 : tun1: Error: ipcp_InterfaceUp: unable to set ip address : (由tun0的組態可得知,gateway的ip address為:211.123.234.254) : 4. 解決: : a. 修改/etc/ppp/ppp.conf成: : default: : set log Phase tun command : set device PPPoE:fxp0 : set dial : set login : enable dns : nat enable yes : nat same_ports yes : nat use_sockets yes : set reconnect 15 10000 : enable dns : dyn1: : set ifaddr 0/0 1.1.1.1/32 : set authname YOURLOGINNAME : set authkey YOURPASSWORD : add default HISADDR : dyn2: : set ifaddr 0/0 1.1.1.2/32 : set authname YOURLOGINNAME : set authkey YOURPASSWORD : b. 撥接 : ppp -ddial dyn1 : ppp -ddial dyn2 : c. 以ifconfig 檢視結果: : tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492 : inet 211.123.234.231 --> 1.1.1.1 netmask 0xffffffff : Opened by PID 91340 : tun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492 : inet 211.123.234.211 --> 1.1.1.2 netmask 0xffffffff : Opened by PID 79523 : d. 測試狀況:分別用ping -S 指定兩個source address去 ping 168.95.1.1都可以通; : routing table如下: : Internet: : Destination Gateway Flags Refs Use Netif Expire : default 1.1.1.1 UGS 0 750922 tun0 : 1.1.1.1 211.123.234.231 UGH 1 0 tun0 : 1.1.1.2 211.123.234.211 UGH 0 0 tun1 : 10.0.0.0 link#3 UC 0 0 fxp0 : 10.0.0.2 link#3 UHLW 1 0 fxp0 : 10.250.4.3 link#3 UHLW 1 1 fxp0 : localhost localhost UH 0 898 lo0 : 192.168.1.0 link#4 UC 0 0 nfe0 : 192.168.2.0 link#5 UC 0 0 rl0 : 5. 真正的問題: : 目前已經用pf做好source routing及nat了,從內部網路的windows以tracert測試到 : 168.95.1.1所經過的路由也很明確的顯示由此FreeBSD NAT box出去所經過的第一個節點 : 的確是 : 211.123.234.254 : 這個gateway,但是為何在routing table裡default gateway及ifconfig的顯示會是如此 : 的怪異呢? : 雖然目的已經都達成,但這樣的設定有沒有可能造成一些其他未知的不良影響呢? : 如果這不是一個好的解決方式,還有更好的辦法嗎? : 請各位先進不吝指教,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.235.209