Wi-CAT LLC

Wireless Comprehensive Advanced Technology. Build your network now.

Wi-CAT LLC
Навигация Форума
Вы должны войти, чтобы создавать сообщения и темы.

(решено) WAN static DNS + VPN PeerDNS = отсутствие DNS с pppX в /etc/resolv.conf

Собственно где-то закрался "жук", который после инициализации IPv6 перегенерирует resolv.conf с нуля, но при этом не учитывает, что было поднято VPN-соединение и в resolv.conf были добавлены DNS-сервера, полученные с ppp-интерфейса.

На WAN - static + manual DNS 8.8.8.8/77.88.8.8

На VPN включено  PeerDNS

6to4 - включенно IP6 over VPN и radvd+dhcp6

Собственно логи:

Sep 24 00:08:21 vpnhelper-pppoe: ==================START-PPPOE-CLIENT=======================
Sep 24 00:08:21 vpnhelper-pppoe: PPPOE connect over eth2.2 to  rp_pppoe_service ESILNET
Sep 24 00:08:21 usbctrl(3742): TYPE=9/0/0 INTERFACE=9/0/0
Sep 24 00:08:22 pppd[3756]: Plugin /lib/rp-pppoe.so loaded.
Sep 24 00:08:22 pppd[3756]: RP-PPPoE plugin version 3.12 compiled against pppd 2.4.7
Sep 24 00:08:22 pppd[3756]: pppd 2.4.7 started by daemon, uid 0
Sep 24 00:08:22 pppd[3756]: PPP session is 150 (0x96)
Sep 24 00:08:22 pppd[3756]: Connected to 90:e2:ba:4a:9c:e0 via interface eth2.2
Sep 24 00:08:22 pppd[3756]: Using interface ppp0
Sep 24 00:08:22 pppd[3756]: Connect: ppp0 <--> eth2.2
Sep 24 00:08:22 pppd[3756]: PAP authentication succeeded
Sep 24 00:08:22 pppd[3756]: peer from calling number 90:E2:BA:4A:9C:E0 authorized
Sep 24 00:08:22 usbctrl(3744): TYPE=9/0/0 INTERFACE=9/0/0
Sep 24 00:08:22 pppd[3756]: local  IP address 176.108.68.247
Sep 24 00:08:22 pppd[3756]: remote IP address 172.16.189.254
Sep 24 00:08:22 pppd[3756]: primary   DNS address 176.108.64.20
Sep 24 00:08:22 pppd[3756]: secondary DNS address 176.108.64.20
Sep 24 00:08:23 pppd: Store old default route to file. default via 10.4.0.254 dev eth2.2  
Sep 24 00:08:23 pppd: Remove vpnDGW
Sep 24 00:08:23 pppd: Replace default route to ppp0
Sep 24 00:08:23 pppd: Replace DNS from pppd
Sep 24 00:08:23 pppd: Flush route cache
Sep 24 00:08:23 pppd: Restart dns server, dyndns, ntp sync and rebuild shaper and iptables rules
Sep 24 00:08:23 services: Restart needed services and scripts. Mode pppd
Sep 24 00:08:23 kernel: br0: port 1(eth2.1) entered forwarding state
Sep 24 00:08:24 QoS: Stopping SHAPER
Sep 24 00:08:26 kernel: br0: port 2(ra0) entered forwarding state
Sep 24 00:08:26 iptables: Add netfiler rules
Sep 24 00:08:26 iptables: Allow established/related in input
Sep 24 00:08:26 iptables: Drop invalid state connections
Sep 24 00:08:26 iptables: Service limit set
Sep 24 00:08:26 iptables: DHCP server allow
Sep 24 00:08:27 iptables: Dnsproxy allow to connect
Sep 24 00:08:27 iptables: allow local port range 32768:61000 from LAN, need for some local service
Sep 24 00:08:27 iptables: UPNP allow to connect
Sep 24 00:08:27 iptables: Remote managment web limit
Sep 24 00:08:27 iptables: Remote managment ssh limit
Sep 24 00:08:27 iptables: Remote managment telnet limit
Sep 24 00:08:27 iptables: Allow rate limited ping from all interfaces.
Sep 24 00:08:27 iptables: Set forward rules
Sep 24 00:08:27 iptables: Set macipport filter rules
Sep 24 00:08:27 iptables: Allow forward from LAN to any
Sep 24 00:08:27 iptables: Add SNAT from 192.168.74.1/255.255.255.0 to 10.32.5.11 at eth2.2.
Sep 24 00:08:27 iptables: Call to add VPN netfilter rules.
Sep 24 00:08:27 iptables: Add base upnp rules
Sep 24 00:08:27 iptables: Allow established/related in forward
Sep 24 00:08:27 iptables: V6: Add netfiler rules
Sep 24 00:08:27 iptables: V6: Allow established/related in input
Sep 24 00:08:27 iptables: V6: Dnsproxy allow to connect
Sep 24 00:08:27 iptables: V6: allow local port range 32768:61000 from LAN, need for some local service
Sep 24 00:08:27 iptables: V6: Allow ratelimited icmp echo requests to router.
Sep 24 00:08:27 iptables: V6: Allow ratelimited icmp echo requests to clients.
Sep 24 00:08:27 iptables: V6: Add base upnp rules
Sep 24 00:08:27 iptables: V6: UPNP allow to connect
Sep 24 00:08:27 iptables: Allow established/related in forward
Sep 24 00:08:27 ipv6: Stop dhcp6s.
Sep 24 00:08:27 ipv6: Deconfigure ipv6 interfaces/route.
Sep 24 00:08:28 kernel: IPv6 over IPv4 tunneling driver
Sep 24 00:08:28 ipv6: Tunel ipv6 to ipv4 configure and up at sit0 interface
Sep 24 00:08:28 ipv6: Add adress 2002:b06c:44f7::1/16 to sit0
Sep 24 00:08:28 ipv6: MTU WAN: 1492 LAN: 1432
Sep 24 00:08:28 ipv6: Set mtu 1472 to sit0
Sep 24 00:08:28 ipv6: Add route to 2000::/3 via ::192.88.99.1 dev sit0
Sep 24 00:08:28 ipv6: Used tunneled ipv6 mode, disable forward from real wan interfaces (security reason), enable foe sit0.
Sep 24 00:08:28 ipv6: Used tunneled ipv6 mode, not need ipv6 adress and route at wan ifaces - drop it (security reason).
Sep 24 00:08:28 ipv6: Set 2002:b06c:44f7:2000::1/64 to br0
Sep 24 00:08:28 ipv6: Configure and start radvd and dhcpv6 server
Sep 24 00:08:28 ipv6: Use user manual configured DNS 2001:4860:4860::8888 2a02:6b8::feed:0ff
Sep 24 00:08:28 ipv6: Use local DNS server as relay and local ipv6 hosts resolve 2002:b06c:44f7:2000::1
Sep 24 00:08:28 ipv6: MTU WAN: 1492 LAN: 1432
Sep 24 00:08:28 ipv6: Configure radvd
Sep 24 00:08:28 ipv6: Starting radvd
Sep 24 00:08:28 ipv6: Configure dhcp6s
Sep 24 00:08:28 ipv6: Starting dhcp6s
Sep 24 00:08:28 radvd[4376]: version 2.17 started
Sep 24 00:08:28 resolv: Generate resolv DNS1: 8.8.8.8 DNS2: 77.88.8.8
Sep 24 00:08:28 resolv: Add user ipv6 servers 2001:4860:4860::8888 2a02:6b8::feed:0ff for local resolv
Sep 24 00:08:29 dnsserver: Generate /etc/hosts file.
Sep 24 00:08:29 dnsserver: Send HUP to dnsmasq.
Sep 24 00:08:29 dnsmasq[1107]: read /etc/hosts - 51 addresses
Sep 24 00:08:29 dnsmasq[1107]: using nameserver 10.4.0.1#53 for domain esilnet.com 
Sep 24 00:08:29 dnsmasq[1107]: using nameserver 8.8.8.8#53
Sep 24 00:08:29 dnsmasq[1107]: using nameserver 77.88.8.8#53
Sep 24 00:08:29 dnsmasq[1107]: using nameserver 2001:4860:4860::8888#53
Sep 24 00:08:29 dnsmasq[1107]: using nameserver 2a02:6b8::feed:ff#53
Sep 24 00:08:29 ntp: Stopping NTPD
Sep 24 00:08:29 ntp: Starting NTPD
Sep 24 00:08:29 upnpd: Stoping UPNP
Sep 24 00:08:30 miniupnpd[3174]: shutting down MiniUPnPd
Sep 24 00:08:30 upnpd: Starting UPNP at 176.108.68.247
Sep 24 00:08:31 miniupnpd[4641]: version 2.1 started
Sep 24 00:08:31 miniupnpd[4641]: HTTP listening on port 42522
Sep 24 00:08:31 miniupnpd[4641]: HTTP IPv6 address given to control points : [2002:b06c:44f7:2000::1]
Sep 24 00:08:31 miniupnpd[4641]: Listening for NAT-PMP/PCP traffic on port 5351
Sep 24 00:08:31 pppd: Enable forwarding for ppp0 interface
Sep 24 00:09:06 pppd[3756]: System time change detected.

И с консоли:

[Wive-MT@/]# cat /etc/resolv.conf
domain Wive-MT.lo
nameserver 8.8.8.8
nameserver 77.88.8.8
nameserver 2001:4860:4860::8888
nameserver 2a02:6b8::feed:0ff

[Wive-MT@/]# cat /tmp/resolv.ppp0
nameserver 176.108.64.20
nameserver 176.108.64.20
domain Wive-MT.lo
nameserver 8.8.8.8
nameserver 77.88.8.8
nameserver 2001:4860:4860::8888
nameserver 2a02:6b8::feed:0ff

PS. Есть подозрение, что это из-за статик WAN.

 

Конфиг прилепите (или лучше на мыло что бы адреса и прочее не затирать т.е. один в один проверить). Освобожусь чутка гляну. Скорее всего да, при статик wan+6t04 что-то не учёл.

Ну а вообще 6to4 deprecated и связность при доступе через него у того же ТТК сломана давно. И думаю не только у ТТК, половина ресурсов ведёт вникуда + проблемы с гуглкэшем и т.д. Так что если ваш оператор не предоставляет нативного ipv6 то не стоит наверное и заморачиваться. К проблеме отношения не имеет, но вот такой вот факт.

Конфиг (пароли и явки потёр)

Немного поискал причину и наткнулся, что такое поведение у логики при Static WAN + IPv6 (любое!!!), т.е. не зависит от типа IPv6.

Конфиг  /etc/resolv.conf после инициализации ipv6 генерируется с нуля.

 

PS. Попутно выяснилось, что radvd не хочет работать с Prefix Length отличным от /64. Чудесато, с учётом того, что для 6to4 маска должна быть вроде как /48.

Да оно и должно перегенериться. Проблема то не в факте перегенерирования. Тут проблема в том, что резол для ppp генериться в ip-up и там же комбинируется с основным.

Вот это надо будет наверное переделать совсем по другому. Сейчас пока некогда.

Переписывается оно потому что в services_restart.sh вызывается service resolv restart  а в S30resolv нет обработки ppp dns.

И это не всё. ipv4+dhcp генериться резолв из dhcp скрипта.

Это всё исторически сложившаяся логика которую пора переделать но всё руки не дойдут.

По 6to4 традиционно схема такая, выделяется /48 при этом юзверь может нарезать её на несколько сетей /64. Так уж сложилось и radvd именно этой схемы придерживается.

 

В вашем случае для решения первой проблемы скорее всего хватит в services_restart.sh блок

if [ "$wan_static_dns" = "on" ]; then
    service resolv restart
fi

привести к виду

if [ "$wan_static_dns" = "on" ] && [ "$MODE" != "pppd" ]; then
    service resolv restart
fi

На досуге почешу репу как лучше сделать.

Придумал как сделать безопаснее. См последний коммит в гит. Ну и подвинул в туду это дело на рефакторинг. Уже откровенно пора это дело привести в человеческий вид, а не таскать за собой когда-то 300 лет назад рождённый код.

Плз проверить и сразу соберу версию с фиксом в паблик.

К сожалению, смогу проверить только ближе к выходным. Отпуск закончился, пошла рутина.... :(

Я локально проверил и опубликовал уже. Как сможете подтвердить - отпишитесь.

Руки дошли немного раньше до проверки, отписываюсь.

В таком варианте как опубликовали не работает, потому что забыли  переменную vpnEnabled из nvram "подтянуть", если подправить get_param, то да, теперь все dns-сервера подтягиваются и от прова, и из  статики.

Блин, как забадали 100500 песочниц.... Не на ту ветку наложил вторую часть патча с чисткой переменных и инклудом global.sh. Поправил пасиб.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: