近期接到一個新的任務,要把第三方管理PXE/DHCP/HTTP/DNS的套件Cobbler Setup起來
,起因是美國Team分不清楚Cobbler其實就是Linux原生的PXE
Setup Cobbler的過程,真的蠻肚爛的ㄏㄏ 要來回檢查Cobbler蓋過去的設定檔內容是不是跟我預期的一樣。
Cobbler建DNS檔案有點問題,因為它在正反解檔裡面的網域名稱填入IP,還在看是不是設定不對;暫時先不讓它管理了。
回到正題:
設定的方法,請參考傲笑紅塵路、Benjr兩位大大的文章:
https://www.lijyyh.com/2012/05/ipv6.html
https://benjr.tw/94906
重新建構新測試網段環境的過程,想到會拿到兩組Global動態IPv6的現象
"
3: ens6f1np1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether e4:3d:1a:86:fa:31 brd ff:ff:ff:ff:ff:ff
inet 192.168.22.217/24 brd 192.168.22.255 scope global dynamic noprefixroute ens6f1np1
valid_lft 21442sec preferred_lft 21442sec
inet6 2020:db8:0:1702::b31e/128 scope global dynamic noprefixroute
valid_lft 14243sec preferred_lft 8843sec
inet6 2020:db8:0:1702:e63d:1aff:fe86:fa31/64 scope global dynamic noprefixroute
valid_lft 86398sec preferred_lft 14398sec
inet6 fe80::e63d:1aff:fe86:fa31/64 scope link noprefixroute
valid_lft forever preferred_lft forever
"
,重新拜讀兩位大大的文章,思考了可能的原因
,去翻了很久以前在前公司建構測試環境的備份設定檔
,才想起來以前也遇過這個現象。
Key Point - 1:
"在 IPv6 的環境下,並不一定需要像是 IPV4 使用 DHCP 來讓電腦取得 IPv4 位址"
"IPv6 取得 IP 的另外一種方式是 RA (Router Advertisement) ,這功能通常是由 Router 來提供"
"如果你的環境沒有Router做RA,就可以透過 Linux 下的 radvd (Router Advertisement Daemon) 服務來做."
Key Point - 2: 什麼是 Stateful Configuration 與 Stateless Configuration?
Stateless Configuration | 對應Linux Automatic, addresses only的設定
當 RA 核發 Prefix ,DNS 之後即不再管理這個位址的使用狀況,所以稱為 stateless.
Stateful Configuration | 對應Linux Automatic, DHCP only的設定
與 Stateless 相反的是 stateful configuration,IPv6 位址的配置包括 Prefix, Host ID 以及 DNS 伺服器位址的狀態維護都還需要透過 DHCPv6 來負責.即是 stateful.
意味著,只需要DHCPv6的時候(Stateful Configuration),只要讓Linux扮演RA,把DHCPv6送出去就好。
# vim /etc/radvd.conf
把prefix這段拿掉/mark成註解,
"
interface eth3 #interface of transmit RA
{
AdvSendAdvert on; #start RA:the public function
MinRtrAdvInterval 30; #every 30~100 sec, transmit RA
MaxRtrAdvInterval 100; #
AdvManagedFlag on; # M bit=1
AdvOtherConfigFlag on; # O bit=1
#prefix 2013:db8:0:f101::/64 #Prefix of transmit # Stateless Configuration
#{
# AdvOnLink on;
# AdvAutonomous on;
# AdvRouterAddr off; #off force radvd send (g.3a83) ,instead of interface
#};
};
"
# systemctl restart radvd.service
重啟完畢,接著到Client端重啟NIC,就會看到剩下Stateful IPv6這組了。
3: ens6f1np1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether e4:3d:1a:86:fa:31 brd ff:ff:ff:ff:ff:ff
inet 192.168.22.217/24 brd 192.168.22.255 scope global dynamic noprefixroute ens6f1np1
valid_lft 19071sec preferred_lft 19071sec
inet6 2020:db8:0:1702::b31e/128 scope global dynamic noprefixroute
valid_lft 11873sec preferred_lft 6473sec
inet6 fe80::e63d:1aff:fe86:fa31/64 scope link noprefixroute
valid_lft forever preferred_lft forever
But Linux-client 拿到的Stateful IPv6 Prefix是128,之前在前公司沒遇到這現象
似乎是Switch的問題,再找時間檢查了