IPv6环境下路由器支持域名登录
問題描述:
在IPv6 的環(huán)境下,路由器設(shè)備默認(rèn)為橋接模式,域名登錄存在訪問不了的情況。
分析:
原來的IPv4環(huán)境:
瀏覽器進(jìn)行IPv4+DNS解析 -----》 符合特定的域名,進(jìn)行攔截回復(fù)----》DNS解析出地址,進(jìn)行頁面訪問
?
現(xiàn)在IPv6+IPv4的環(huán)境:
瀏覽器進(jìn)行DNS解析,則會分成如下4類
| 序號 | IP | DNS協(xié)議 | ? |
| 1 | IPv4 | A(請求IPv4地址) | ? |
| 2 | IPv4 | AAAA(請求IPv6地址) | ? |
| 3 | IPv6 | A(請求IPv4地址) | ? |
| 4 | IPv6 | AAAA(請求IPv6地址) | ? |
?
如下為一個典型的訪問過程,此臺PC采用無線連接路由器,瀏覽器先是發(fā)出了3,再發(fā)出4,最后發(fā)出了2;純IPv4的1,未發(fā)出。
針對每一種情況的處理策略上方案可不同,由于當(dāng)前設(shè)備橋接模式下對IPv6的支持度一般,因此按如下進(jìn)行:
| 序號 | IP | DNS協(xié)議 | 處理策略 |
| 1 | IPv4 | A(請求IPv4地址) | 攔截回復(fù) |
| 2 | IPv4 | AAAA(請求IPv6地址) | 丟棄 |
| 3 | IPv6 | A(請求IPv4地址) | 攔截回復(fù) |
| 4 | IPv6 | AAAA(請求IPv6地址) | 丟棄 |
?
按上面3-》4-》2的處理方式,這個完整的過程,仍需求12秒,雖然情況3已經(jīng)做了優(yōu)先的回復(fù)處理。具體報(bào)文如附件:
?
?
?
如果對于情況4,采用IPv6+A的回復(fù)方式,這種情況在有的設(shè)備會認(rèn)為回復(fù)不合法,不斷的進(jìn)行請求,導(dǎo)致解析不了域名,因此選擇丟棄是比較合理的。
參考報(bào)文如附件:
?
對于情況2,如果采用IPv4+A進(jìn)行回復(fù),可能會出現(xiàn)同上面情況4回復(fù)IPv6+A一樣的結(jié)果:個別特殊的設(shè)備認(rèn)為DNS回復(fù)不合法,一直進(jìn)行請求,導(dǎo)致阻塞。
?
如下情況,瀏覽器一直沒有發(fā)A的請求,但最終也能訪問頁面,大概率是因?yàn)闆]有回復(fù),所以就采用了緩存中的地址,進(jìn)行了登錄。
參考報(bào)文如下:
?
?
代碼處理過程
有線eth865x.c
interrupt_isr->interrupt_dsr_rx->is_skb_dns_packet 做判斷
?
無線8192cd_rx.c
rtl_netif_rx->gothrough_brsrc->is_skb_dns_packet 做判斷
?
再到統(tǒng)一的封裝層wrapper.c
wrapper_que_retrieve->wrapper_up->is_dns_packet做判斷
?
ether_input->bridge_input->apclient_dns_redirct做處理
?
DNS報(bào)文攔截
無線連接:這種情況比較好處理,由無線驅(qū)動轉(zhuǎn)發(fā)至有線驅(qū)動報(bào)文出去,中間會經(jīng)過bridge
有線連接:
橋接模式下:
? ? 所有的網(wǎng)口都被劃到同一vlan中,以加速數(shù)據(jù)的轉(zhuǎn)發(fā)
? ? 情況1:IPv4的報(bào)文,通過配置SW的ACL規(guī)則,可以導(dǎo)入到CPU進(jìn)行處理
? ? 情況2:IPv6的報(bào)文,目前沒有可行的配置方案進(jìn)行處理。
路由模式下:
? ? 由于存在路由轉(zhuǎn)發(fā),所有報(bào)文都會進(jìn)行處理。
?
修改后的結(jié)果
IPv6的環(huán)境下,AP模式下:
無線登錄域名進(jìn)行訪問, 延遲在10秒左右,時(shí)間如上分析,取決于手機(jī)的瀏覽器、系統(tǒng)返回的具體時(shí)間。
有線登錄域名進(jìn)行訪問,可能存在訪問不了情況(大概率),因?yàn)閞outer.cmdc.com的域名會被解析為公網(wǎng)的IP,可能是IPv4,也可能是IPv6。
?
IPv6的環(huán)境下,路由模式下:
略
?
后續(xù)的優(yōu)化方案
?
WEB服務(wù)器支持IPv6,無論是在有線橋接模式下,或是AP模式下,下面客戶端是通過有線或無線連接,都滿足如下處理策略:
| 序號 | IP | DNS協(xié)議 | 處理策略 |
| 1 | IPv4 | A(請求IPv4地址) | 攔截回復(fù):ipv4+A |
| 2 | IPv4 | AAAA(請求IPv6地址) | 攔截回復(fù):ipv4+AAAA |
| 3 | IPv6 | A(請求IPv4地址) | 攔截回復(fù):ipv6+A |
| 4 | IPv6 | AAAA(請求IPv6地址) | 攔截回復(fù):IPv6+AAAA |
?
?
?
總結(jié)
以上是生活随笔為你收集整理的IPv6环境下路由器支持域名登录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。