作者wryyy (我是八拉)
看板FreeBSD
标题[问题] 在同一条dsl线路拨接多个pppoe的问题(都会通)
时间Fri Jun 20 17:09:59 2008
各位先进,小弟最近被迫使用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)