看板 FreeBSD 關於我們 聯絡資訊
各位先進,小弟最近被迫使用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.211/24 -> \ 211.123.234.254): File exists 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 ※ 編輯: wryyy 來自: 118.160.235.209 (06/20 17:54) ※ 編輯: wryyy 來自: 118.160.235.209 (06/20 18:07)