1. iptable masquerade中源地址選擇問題
在iptable/ip6table上可以在nat table上完成SNAT和DNAT操作。SNAT指將匹配ip包的源地址進行修改,DNAT指將匹配ip包的目的地址進行修改。
在iptables命令上,SNAT書寫規則需要寫下SNAT轉換的目標地址,這里必須明確寫出自己需要轉換成的地址
iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j snat –to-source 192.168.5.3-192.168.5.5
但是在某些場合,iptable規則編寫的時候源ip地址並不固定或可獲取。那麼此時Linux引入了masquerade動作,這個規則的意思就是Ip包從哪個interface出去,那麼src ip就轉換為此interface的ip地址。
那麼當一個interface上有多個ip地址的時候怎麼辦呢?例如下面的介面eth0有兩個相同網段的ip地址,那麼masquerade會選擇哪一個ip作為源ip地址呢?例如下面的情況
總體上來講,masquerade在選擇源ip地址時刻的選擇規則其實和路由選擇的源地址選擇是一致的。最簡單的獲取masquerade源地址的方法是通過下面命令:
ip route get <dstip>
這在Linux源碼上看得更清楚,下面是ipv4場景下masquerade選源路由的方法
上表中inet_select_addr(out,nh,RT_SCOPE_UNIVERSE)就是根據out,路由,選擇源ip地址的過程。
在ipv4場景上,masquerade 源地址選擇和路由源地址選擇是也就是一致的,但是在ipv6場合就有一定的區別了。
ipv6場景下masquerade動作的執行函數為:
可見它的核心函數為ipv6_dev_get_saddr(),此函數執行的就是ipv6地址協議規定的源地址選擇邏輯。而ipv6路由選擇源地址函數實現為:
可以看到在ipv6 路由選擇源地址中,並不是第一選擇ipv6_dev_get_saddr()函數的。而是先選擇ipv6 route 表中選路結果是否設置了prefsrc。上述函數中入參rt表示的是ipv6 route 路由表選擇的entry。ipv6路由選擇具體由ip6_route_output()—>fib6_fule_lookup查詢而來。
是否設置了ipv6路由的prefer src可以通過ip -6 route list 命令查看到,例如:
可以看到針對2001::/64網段的dest ip,選路是eth0,prefer src為 2001::dbc:71
設置路由entry的prefer src命令為:ip -6 route add 2001::/64 dev eth0 scope link src 2001::dbc:71 metric 15
ipv6協議中規定了嚴格源地址/目標地址選擇機制,主要涉及到RFC 3484.也就是說當ipv6源地址尚未確定時刻,按照RFC3484規定的 8條規則 選擇一個源ip地址。這8條規則(rules)是有優先順序的,從優先順序從高到低排列如下:
所謂ipv6地址的scope(作用域)分為下面幾類:
ipv6在選擇地址時刻,還會進行目的地址和源地址的Label匹配,當匹配到固定的一對label時刻,匹配完成:
1.匹配時刻是按照目標地址最長前綴匹配方式,就是前綴匹配長度最長的label獲勝,如此選出一個目標label;
2.按照源地址最長前綴匹配方式,找到一個label,這就是源label;
下面命令可以查看lpv6 address label
ip addrlabel list
單介面上有多個ip地址的時刻,masquerade源地址選擇方式如下:
blog.csdn.net/dog250/article/details/87815123
2. hostname-i出現ipv6
hostname-i出現ipv6?1、首先在hostname-i顯示的ip不對時,點擊查看hostname-i的源代碼,找到IP的所在位置。
2、其次右擊該頁面,找到配置文件的位置。
3、最後選擇重新添加IP地址即可
3. 播放器排行榜前十名
播放器排行榜前十名:
1、PotPlayer
視頻播放器排行榜上PotPlayer基本都會上榜,是無數人心中最好用的播放器,它是一款多格式視頻播放工具,擁有強大的內置解碼器用於解碼播放,支持幀定位,幾乎可以播放所有格式的視頻,解碼功能很出色,啟動速度和播放速度都非常快,並且無需額外的轉碼和設置,同時還可以載入直播源,支持自定義皮膚。它還支持BD和MKV等大視頻流暢播放,看高清大片無任何問題。
2、VLC
好用的視頻播放器有哪些堪稱萬能?小編提名VLC。VLC多媒體播放器是一款免費開源的視頻播放器,支持眾多音頻與視頻解碼器及文件格式,並支持DVD影音光碟,VCD影音光碟及各類流式協議。它也能作為unicast或multicast的流式伺服器在IPv4或IPv6的高速網路連接下使用。
不僅佔用電腦資源低,而且支持的文件格式也很全,並且基本上Windows、Mac、Linux、Android、iOS各大平台都有對應都設備。幾乎兼容所有的音頻和視頻格式,並且還有多音軌、多字幕軌管理,還支持360度視頻和3D環繞音效,功能相當齊全。
3、KMPlayer
十大視頻播放器之一的KMPlayer也非常受歡迎,這是一款全能視頻播放器軟體,頁面設計比較簡潔,功能上支持多種格式視頻的直接播放,而且它還支持4K、8K視頻的播放,播放視頻的時候還有VR模式可以選擇,無須注冊表支持直接調用Directshow濾鏡。能夠播放DVD與VCD、匯入多種格式的外掛字幕檔、使用普及率最高的WinAMP音效外掛與支援超多種影片效果調整選項等。
4、MPC-HC
MPC-HC的全稱是「Media Player Classic Home Cinema」,是Windows平台上一個非常輕量級的開源媒體播放器,體積及資源佔用很小,響應迅速,能播放網上幾乎全部主流的音頻視頻格式,兼容性非常好,軟體對硬體配置要求也很低,低配置老電腦上也可以正常運行,可以一邊看視頻一邊工作也非常穩定,而且100%免費,沒有任何廣告或後門。
5、MPV播放器
MPV播放器是一個基於MPlayer和mplayer2的開源極簡全能播放器,它的界面非常簡單,幾乎沒有完整的UI,只有簡單的視頻播放按鈕,但是功能卻很強大,支持播放各種格式的視頻文件,對字幕的支持的也很不錯,同時MPV還支持windows、Linux和OSX,真正的跨平台,啟動迅速,並且穩定不閃退。
6、mx player
如果你在尋找安卓手機視頻播放器,那小編最推薦的就是mx player,它能夠播放幾乎每一個影片檔案,並且具備多核心的解碼能力來處理你的影片檔案和字幕。MX Video Player是Android平台上的第一款能夠支持多核解碼功能額的媒體播放器軟體,有多核解碼功能,根據在雙核Android裝置上的測試結果表明,它能夠取得比單核解碼播放器高達70%的效能。
7、nPlayer
可在iPhone、iPad和安卓上流暢播放幾乎所有主流格式的視頻,可以直接在手機上播放各種MKV、MP4、MOV、AVI、WMV、ASF、FLV、OGV、RMVB等幾乎所有視頻格式。nPlayer還可以支持DTS/DTS-HD/DTS DTS Headphone:X、Dolby AC3/E-AC3音頻編碼以及Dolby移動環繞立體聲,字幕管理系統也很好用,可以切換多聲道字幕,支持多種字幕格式。
8、Kodi
可用於多種操作系統和硬體平台,配有軟體10英尺用戶界面,可用於電視機和遙控器。它允許用戶播放和查看大多數流媒體,如來自網上的視頻、音樂、播客和視頻,以及來自本地和網路存儲媒體的所有常見數字媒體文件。對字幕的支持更是堪稱一絕,能夠兼容特效字幕,支持在線字幕匹配,看外語片無需自己找字幕,全球無數開發者為Kodi製作了大量實用的插件。
9、MPC-be
MPC-be是從MPC衍生來的播放器,這款免費開源的軟體同樣非常實用,低內存佔用+高速打開播放,並且在界面外觀上更勝一籌。由於Media Player Classic是開源軟體,所以任何人都可以基於它的源代碼進行修改,自由設置切換主題顏色,還可以隱藏掉整個界面邊框和各種圖標UI。具有播放控制,可以播放DVD,其他功能還包括的可能性在一個在線資料庫中進行搜索字幕。
10、Avplayer
蘋果手機視頻播放器Avplayer也是款很強大的app,它可以播放任何格式的全功能影音播放器,適應於iPhone、iPod、iPad,大多數視頻不需要另外的轉換格式過程就可以直接從iPhone里看。用戶還可以通過itunes或者WiFi傳輸文件到播放器內,也可以通過內置的下載客戶端直接從Ftp/Samba/UPnP等伺服器中打開影音文件,或者下載文件,還做了內置的相片瀏覽器。