本文包括理解 DNS 所需的基礎(chǔ)知識(shí)及 Linux DNS 服務(wù)器的安裝,、配置和維護(hù)具體操作相關(guān)知識(shí),。 一、DNS域名結(jié)構(gòu)與域名服務(wù)器域名系統(tǒng)DNS(Domain Name System)是因特網(wǎng)使用的命名系統(tǒng),,用來把便于人們使用的機(jī)器名字轉(zhuǎn)換成為IP地址。域名系統(tǒng)其實(shí)就是名字系統(tǒng),。為什么不叫“名字”而叫“域名”呢,?這是因?yàn)樵谶@種因特網(wǎng)的命名系統(tǒng)中使用了許多的“域(domain)”,因此就出現(xiàn)了“域名”這個(gè)名詞,。“域名系統(tǒng)”明確地指明這種系統(tǒng)是應(yīng)用在因特網(wǎng)中,。1、域名結(jié)構(gòu) 在了解DNS服務(wù)器之前,,需要先了解因特網(wǎng)上的域名空間結(jié)構(gòu),,具體如下圖所示: 頂級(jí)域名是域名的最后一個(gè)部分,即是域名最后一點(diǎn)之后的字母,,例如在http:// 這個(gè)域名中,,頂級(jí)域是.com(或.COM),大小寫視為相同,。 二級(jí)域名是域名的倒數(shù)第二個(gè)部分,,例如在http:// 這個(gè)域名中,二級(jí)域名是example,。以此類推,。 2、域名服務(wù)器 因特網(wǎng)上的DNS服務(wù)器按照層次安排,,根據(jù)不同層次的域名服務(wù)器所起的作用,,可以把域名服務(wù)器分為4種不同的類型。 【根域名服務(wù)器】 最高層次的域名服務(wù)器(就好像國(guó)家總理一樣),,也是最重要的域名服務(wù)器,。全球有13個(gè)根域名服務(wù)器名稱,分別是(它們是按照字母排列命名的):
當(dāng)然,,并不是一個(gè)名字對(duì)應(yīng)一臺(tái)物理服務(wù)器的地址,,一個(gè)根服務(wù)器的名字可以作為入口對(duì)應(yīng)一組服務(wù)器集群來提供域名解析服務(wù),。 【頂級(jí)域名服務(wù)器】 就好像國(guó)家總理下面的各個(gè)省長(zhǎng),管轄省級(jí)單位,。在DNS中,,它們負(fù)責(zé)管理在該頂級(jí)域名服務(wù)器注冊(cè)的下一級(jí)域名(二級(jí)域名)。所有頂級(jí)域名服務(wù)器的名稱和IP地址是在根服務(wù)器注冊(cè)的,,也就是說,,根域名服務(wù)器知道所有的頂級(jí)域名服務(wù)器的名稱和IP地址。 【 權(quán)威域名服務(wù)器】 負(fù)責(zé)一個(gè)區(qū)的域名服務(wù)器,,就好像省長(zhǎng)以下的那些市長(zhǎng),、鎮(zhèn)長(zhǎng)、鄉(xiāng)長(zhǎng)等行政官,。頂級(jí)域名服務(wù)器也可以算作是權(quán)威域名服務(wù)器,,只不過由于其特殊性,我們專門把它劃分為一類,。因此權(quán)威域名服務(wù)器通常是指頂級(jí)域名以下的管理二級(jí),、三級(jí)、四級(jí)等域名的服務(wù)器,。 上面三種服務(wù)器的關(guān)系可以用這張圖表示: 【本地域名服務(wù)器】 這類服務(wù)器不屬于上面的層次結(jié)構(gòu),,當(dāng)一個(gè)主機(jī)(個(gè)人電腦)發(fā)出DNS請(qǐng)求時(shí),查詢請(qǐng)求就被發(fā)送到本地域名服務(wù)器,,本地域名服務(wù)器負(fù)責(zé)回答這個(gè)查詢,,或者代替主機(jī)向域名空間中不同層次的權(quán)威域名服務(wù)器查詢,再把查詢的結(jié)果返回給主機(jī),。 下面的圖示表示了一個(gè)域名的解析過程以及各個(gè)類型的域名服務(wù)器所處的位置,。 3、為什么要使用DNS服務(wù)器 域名服務(wù)器提供了從域名到IP地址的解析服務(wù),,因特網(wǎng)上的域名數(shù)量極大,,不可能所有的域名信息都保存在一個(gè)域名服務(wù)器中,也不能上述每個(gè)節(jié)點(diǎn)都采用一個(gè)域名服務(wù)器,。在實(shí)際的公網(wǎng)DNS系統(tǒng)中,,域名服務(wù)器采用劃分區(qū)的方式來管理。 一個(gè)服務(wù)器所負(fù)責(zé)管轄的范圍叫做區(qū)(zone),,如果我們把域名空間結(jié)構(gòu)中的根比作國(guó)家,,頂級(jí)域名比作省級(jí)行政單位,二級(jí)域名看作是市級(jí)單位,、三級(jí),、四級(jí)看作是鎮(zhèn)和鄉(xiāng),那么自然地,我們會(huì)想到管轄國(guó)家的是總理,,管轄省級(jí)單位的是省長(zhǎng),,下面還有市長(zhǎng)、鎮(zhèn)長(zhǎng)等等,。 假設(shè)一個(gè)域http:// 的層次結(jié)構(gòu)如圖分布,。 如果采用(a)的方式,那么整個(gè)從abc這個(gè)節(jié)點(diǎn)以下的子樹成為一個(gè)區(qū),,它們由一個(gè)(通常是1組)域名服務(wù)器管理,,就好像http:// 是一個(gè)北京市,下面所有事務(wù)都有北京市長(zhǎng)說了算; 如果采用(b)的方式,,那么abc節(jié)點(diǎn)以下的字?jǐn)?shù)分成了兩個(gè)區(qū):x節(jié)點(diǎn)以下的部分的子樹和y節(jié)點(diǎn)以下的子樹,,這兩棵子樹分別有x和y對(duì)應(yīng)的域名服務(wù)器管理,就好像http:// 是一個(gè)福建省,,x是福州市,,y是廈門市,福建省的省長(zhǎng)只管理福州市和廈門市的市長(zhǎng),,但不會(huì)直接管理福州市和廈門市以下的單位,。福州市和廈門市以下的單位分別給福州市市長(zhǎng)和廈門市市長(zhǎng)來管轄。 像這種把一個(gè)域中的一部分子樹分給另一個(gè)域名服務(wù)器管轄,,叫做“授權(quán)委托”,,做了“授權(quán)委托”以后的域名服務(wù)器很顯然管理的范圍就小了,,它的子節(jié)點(diǎn)由被委任的下一級(jí)域名服務(wù)器管理了,。 因特網(wǎng)上的域名結(jié)構(gòu)呈樹狀分布,因此DNS服務(wù)器也是對(duì)應(yīng)的樹形結(jié)構(gòu),,每一個(gè)DNS服務(wù)器能夠提供部分域名(它管轄的域名)到IP地址的解析,。 4、DNS查詢 查詢方式 遞歸查詢:客戶機(jī)向自己的DNS服務(wù)器請(qǐng)求解析的方式 迭代查詢:服務(wù)器向服務(wù)器查詢的方式 主機(jī)向本地域名服務(wù)器的查詢一般都是采用遞歸查詢,。所謂遞歸查詢就是:如果主機(jī)所詢問的本地域名服務(wù)器不知道被查詢的域名的IP地址,,那么本地域名服務(wù)器就以DNS客戶的身份,向其它根域名服務(wù)器繼續(xù)發(fā)出查詢請(qǐng)求報(bào)文(即替主機(jī)繼續(xù)查詢),,而不是讓主機(jī)自己進(jìn)行下一步查詢,。因此,遞歸查詢返回的查詢結(jié)果或者是所要查詢的IP地址,,或者是報(bào)錯(cuò),,表示無法查詢到所需的IP地址。 本地域名服務(wù)器向根域名服務(wù)器的查詢的迭代查詢,。迭代查詢的特點(diǎn):當(dāng)根域名服務(wù)器收到本地域名服務(wù)器發(fā)出的迭代查詢請(qǐng)求報(bào)文時(shí),,要么給出所要查詢的IP地址,要么告訴本地服務(wù)器:“你下一步應(yīng)當(dāng)向哪一個(gè)域名服務(wù)器進(jìn)行查詢”。然后讓本地服務(wù)器進(jìn)行后續(xù)的查詢,。根域名服務(wù)器通常是把自己知道的頂級(jí)域名服務(wù)器的IP地址告訴本地域名服務(wù)器,,讓本地域名服務(wù)器再向頂級(jí)域名服務(wù)器查詢。頂級(jí)域名服務(wù)器在收到本地域名服務(wù)器的查詢請(qǐng)求后,,要么給出所要查詢的IP地址,,要么告訴本地服務(wù)器下一步應(yīng)當(dāng)向哪一個(gè)權(quán)限域名服務(wù)器進(jìn)行查詢。最后,,知道了所要解析的IP地址或報(bào)錯(cuò),,然后把這個(gè)結(jié)果返回給發(fā)起查詢的主機(jī)。 下圖給出了這兩種查詢的差別 DNS解析的順序:(由/etc/nsswitch.conf決定) 1. 本機(jī)緩存 2. 本機(jī)/etc/hosts文件 a) 格式:IP FQDN Alais 3. 指定的DNS服務(wù)器緩存 a) 清空緩存:rhdc flush 4. 指定的DNS服務(wù)器(/etc/resolv.conf) a) 格式: # search # nameserver 202.103.24.68 # nameserver 202.103.149.50 DNS查詢命令 1. gethostip a)是syslinux包的組成部分 b)通過hosts文件和DNS解析主機(jī)名到IP c)把IP計(jì)算成8位的16進(jìn)制在PXE中有特殊用途 2. host a)僅通過DNS查詢 b)查詢主機(jī)名到IP的解析 3. nslookup a)windows的解析工具,linux中通用,,目前較少使用 b)提供簡(jiǎn)單的正反和反向解析查詢 4. dig a)linux中功能強(qiáng)大的查詢工具,,可以查詢更加詳細(xì)的信息,使用最廣泛 b)可以追蹤到非權(quán)威的DNS 5,、DNS 服務(wù)器的類型 一共有三種 DNS 服務(wù)器,。 主 DNS 服務(wù)器 這些服務(wù)器上存放了特定域名的配置文件,并且基于此權(quán)威地規(guī)定了特定域名的地址,。主 DNS 服務(wù)器知道全部在它管轄范圍的主機(jī)和子域名的地址,。 輔助 DNS 服務(wù)器 這些服務(wù)器作為主 DNS 服務(wù)器的備份,也承擔(dān)一定負(fù)載,。主服務(wù)器知道輔助 DNS 服務(wù)器的存在,,并且會(huì)向他們推送更新。 緩存 DNS 服務(wù)器 這些服務(wù)器上不存放特定域名的配置文件,。當(dāng)客戶端請(qǐng)求緩存服務(wù)器來解析域名時(shí),,該服務(wù)器將首先檢查其本地緩存。如果找不到匹配項(xiàng)便會(huì)詢問主服務(wù)器,。接著這條響應(yīng)將被緩存起來,。您也可以輕松地將自己的系統(tǒng)用作緩存服務(wù)器。 二,、Linux DNS 服務(wù)器安裝,、配置和維護(hù) 1、搭建 Linux DNS 服務(wù)器 Linux 下有很多實(shí)現(xiàn)了 DNS 功能的包,,不過我們只關(guān)注 BIND DNS 服務(wù)器,。它用于世界上大多數(shù) DNS 服務(wù)器。 如果你在使用基于 Red Hat 發(fā)行版的 Linux,,比如 CentOS,,可以像這樣安裝:$ dnf -y install bind 如果你使用基于 Debian 的操作系統(tǒng),比如 Ubuntu:$ apt-get install bind9 安裝完成之后就可以啟動(dòng)它并讓它在計(jì)算機(jī)啟動(dòng)的時(shí)候一并啟動(dòng)起來,。 $ systemctl start named $ systemctl enable named 2,、配置 BIND 這個(gè)服務(wù)使用 /etc/named.conf 作為配置文件。 BIND 在那個(gè)文件中使用像下面這樣的一些語(yǔ)句:
在 options 語(yǔ)句中可以看到 BIND 的工作目錄在 /var/named。 zone 語(yǔ)句可用于定義 DNS 區(qū)域,,比如域名 google.com,,它包含子域名 mail.google.com 和 analytics.google.com。 上述三個(gè)域名 (主域名和子域名) 都有一個(gè)由 zone 語(yǔ)句定義的區(qū)域,。 3,、定義一個(gè)主域服務(wù)器 我們知道 DNS 服務(wù)器類型有主域名服務(wù)器、輔助域名服務(wù)器和緩存域名服務(wù)器,。不同于緩存域名服務(wù)器,,主域名服務(wù)器和輔助域名服務(wù)器在應(yīng)答過程中是處于同等地位的。 在 /etc/named.conf 的配置文件中,,你可以使用如下語(yǔ)法定義一個(gè)主域服務(wù)器: zone '' { type master; file .db }; 包含主要區(qū)域信息的文件存放在 /var/named 目錄下,,從 options 可知,這是一個(gè)工作目錄,。 注意:軟件服務(wù)器或者托管面板會(huì)根據(jù)你的域名自動(dòng)為你創(chuàng)建主域服務(wù)器信息的文件名,,因此如果你的域名是 example.org,那么你主域服務(wù)器信息的文件就為 /var/named/example.org.db,。 類型為 master,,也就是說這是一個(gè)主域服務(wù)器。 4,、定義一個(gè)輔助域服務(wù)器 同定義一個(gè)主域服務(wù)器一樣,,輔助域服務(wù)器的定義稍微有些變化: zone '' { type slave; masters IP Address list; ; file .db }; 對(duì)于輔助域服務(wù)器來說,,它的域名和主域服務(wù)器是一樣的,。上述語(yǔ)法里的的 slave 類型表示這是一個(gè)輔助域服務(wù)器,“masters IP Address list” 表示輔助域服務(wù)器中區(qū)域文件內(nèi)的信息都是通過主域服務(wù)器中區(qū)域文件內(nèi)的信息復(fù)制過來的,。 5,、定義一個(gè)緩存服務(wù)器 即使你已經(jīng)配置了主域或者輔助域服務(wù)器,你仍有必要(不是必須)定義一個(gè)緩存服務(wù)器,,因?yàn)檫@樣你可以減少 DNS 服務(wù)器的查詢次數(shù),。 在定義緩存服務(wù)器之前,你需要先定義三個(gè)區(qū)域選擇器,,第一個(gè): zone '.' IN {type hint;file 'root.hint';}; zone '.' IN {type hint;file 'root.hint';}; zone '.' IN {type hint;file 'root.hint';}; zone 'localhost' IN {type master;file 'localhost.db';}; 定義第三個(gè)區(qū)域是為了反向查找到本地主機(jī),。這種反向查找是把本地的 IP 地址指向本地主機(jī)。 zone '0.0.127.in-addr.arpa' IN { type master; file '127.0.0.rev'; }; 把這三個(gè)區(qū)域信息放到 / etc/named.conf 文件里,你的系統(tǒng)就可以以緩存服務(wù)器來工作了,。但是如何引用類似 .db, localhost.db, 和 127.0.0.rev 這些文件中的內(nèi)容呢,? 這些文件包含具有某些選項(xiàng)的每個(gè)區(qū)域的 DNS 記錄類型。那么,,這些 DNS 記錄類型是什么以及它們是如何寫的,? 6、DNS 記錄類型 數(shù)據(jù)庫(kù)文件包含諸如 SOA,、NS,、A、PTR,、MX,、CNAME 和 TXT 在內(nèi)的記錄類型。 我們看看每一種類型都是如何記錄的吧,。 SOA:起始授權(quán)機(jī)構(gòu)記錄 SOA 記錄按如下形式開始描述一個(gè)站點(diǎn)的 DNS 條目: . 86400 IN SOA ns1.. mail.. ( 2017012604 ;serial 86400 ;refresh, seconds 7200 ;retry, seconds 3600000 ;expire, seconds 86400 ;minimum, seconds ) 第一行以域名 開始,,以句號(hào)結(jié)束——該語(yǔ)句和 / etc/named.conf 文件中的區(qū)域定義是一致的。我們要始終記得,,DNS 配置文件是極其挑剔的,。 IN 告訴域名服務(wù)器:這是一條網(wǎng)絡(luò)記錄。 SOA 告訴域名服務(wù)器:這是一條起始授權(quán)機(jī)構(gòu)記錄,。 ns1.. 是該文件所在域的域名服務(wù)器的完全合格域名(FQDN: Fully Qualified Domain Name),。 mail.host.com. 是域管理員的郵箱地址。你會(huì)發(fā)現(xiàn)這個(gè)郵箱地址沒有 “@” 標(biāo)志,,而是被句號(hào)所取代,,并且末尾還有一個(gè)句號(hào)。 第 2 行是一個(gè)序列碼,,它被用來告訴域名服務(wù)器文件是什么時(shí)候升級(jí)的,。因此,如果你對(duì)區(qū)域碼做了變更,,你必須對(duì)這個(gè)序列碼進(jìn)行遞增,。這個(gè)序列碼的格式是 YYYYMMDDxx ,其中的 xx 是從 00 開始的,。 第 3 行是每秒刷新率,。這個(gè)值被用來告訴第二個(gè)域名服務(wù)器查詢主服務(wù)器中的記錄是否已經(jīng)被更新的頻率。 第 4 行是每秒重試的頻率,。如果第二個(gè)服務(wù)器多次嘗試連接主域名服務(wù)器來進(jìn)行更新檢測(cè),,但無法連接上的時(shí)候,第二個(gè)服務(wù)器就會(huì)在每秒內(nèi)重試指定的數(shù)值次數(shù),。 第 5 行是超時(shí)指示,。其目的是為了第二個(gè)服務(wù)器能將區(qū)域數(shù)據(jù)緩存下來,。這個(gè)值告訴這些服務(wù)器如果它們不能連接到主服務(wù)器來進(jìn)行更新,那么它們就會(huì)在這個(gè)指定數(shù)值秒數(shù)之后拋棄這個(gè)值,。 第 6 行告訴緩存服務(wù)器,,如果它們不能連接到主域名服務(wù)器時(shí),它們應(yīng)該在超時(shí)前等待多久,。 NS: Name Server Records(名稱服務(wù)器記錄) NS 記錄用于指定哪個(gè)名稱服務(wù)器維護(hù)該域的記錄,。 你可以這樣編寫的 NS 記錄: IN NS ns1.. IN NS ns2.. 并不需要有 2 個(gè) NS 記錄,但是通常偏好有備份名稱服務(wù)器,。 A 和 AAAA: Address Records(地址記錄) A 記錄用于提供從主機(jī)名到 IP 地址的映射 support IN A 192.168.1.5,。 如果你在地址為 192.168.1.5 上的 support. 上有一個(gè)主機(jī),你可以像上面的例子那樣輸入,。 請(qǐng)注意,,我們所寫的主機(jī)并沒有句號(hào)。 PTR: Pointer Records(指針記錄) PTR 記錄用于執(zhí)行反向名稱解析,,允許某人指定 IP 地址然后找出對(duì)應(yīng)的主機(jī)名,。 這與 A 記錄的功能相反:192.168.1.5 IN PTR support.. 在這里,我們鍵入具有點(diǎn)號(hào)的完整主機(jī)名,。 MX: Mail Exchange Records(郵件交換記錄) MX 記錄告訴其他站點(diǎn)關(guān)于你所在域的郵件服務(wù)器地址:. IN MX 10 mail. 當(dāng)然這個(gè)域以句號(hào)結(jié)束,。數(shù)字 10 是郵件服務(wù)器的重要性標(biāo)志,如果你擁有多個(gè)郵件服務(wù)器,,其中較小的數(shù)字不太重要,。 CNAME: Canonical Name Records(權(quán)威名稱記錄) CNAME 記錄允許你為主機(jī)名創(chuàng)建別名。當(dāng)你想提供一個(gè)易于記住的名稱時(shí),,這很有用,。 假設(shè)某個(gè)站點(diǎn)具有一個(gè)主機(jī)名為 whatever-bignameis. 的 Web 服務(wù)器,并且由于系統(tǒng)是 Web 服務(wù)器,,因此可以為主機(jī)創(chuàng)建一個(gè)名為 www 的 CNAME 記錄或者別名,。 你可以創(chuàng)建名為 www. 的域名創(chuàng)建 CNAME 記錄: whatever-bignameis IN A 192.168.1.5 www IN CNAME whatever-bignameis 第一行通知 DNS 服務(wù)器關(guān)于別名的位置。第二行創(chuàng)建一個(gè)指向 www 的別名,。 TXT 記錄 您可以將任何信息存儲(chǔ)到 TXT 記錄中,,例如你的聯(lián)系方式或者你希望人們?cè)诓樵?DNS 服務(wù)器時(shí)可獲得的任意其他信息。 你可以這樣保存 TXT 記錄:. IN TXT ” YOUR INFO GOES HERE”. 此外,,RP 記錄被創(chuàng)建為對(duì) host 聯(lián)系信息的顯式容器:. IN RP mail.. ,。 7,、DNS TTL 值 在 / etc/named.conf 文件的頂部,,這里有一個(gè) $TTL 條目。 該條目告訴 BIND 每個(gè)單獨(dú)記錄的 TTL 值(time to live,,生存時(shí)間值),。 它是以秒為單位的數(shù)值,,比如 14,400 秒(4 個(gè)小時(shí)),因此 DNS 服務(wù)器最多緩存你的域文件 4 個(gè)小時(shí),,之后就會(huì)向你的 DNS 服務(wù)器重新查詢,。 你可以降低這個(gè)值,但是默認(rèn)值通常是合理的,。除非你知道你正在做什么,。 8、捕獲配置錯(cuò)誤 當(dāng)您寫入域文件時(shí),,也許您忘記了一個(gè)句號(hào)或空格或其他任意錯(cuò)誤,。 你可以從日志診斷 Linux DNS 服務(wù)器錯(cuò)誤。BIND 服務(wù)通過 / var/log/messages 上的錯(cuò)誤,,可以使用 tail 命令來查看實(shí)時(shí)錯(cuò)誤日志,,須使用 - f 選項(xiàng):$ tail -f /var /log/messages。 因此,,當(dāng)你編寫域文件或修改 / etc/named.config 并重新啟動(dòng)服務(wù)時(shí),,顯示錯(cuò)誤之后,你可以從日志中輕松識(shí)別錯(cuò)誤類型,。 9,、Host 命令 在你成功添加或修改記錄后,可以使用 host 命令查看主機(jī)是否正確解析,。 host 命令允許你將主機(jī)名解析為 IP 地址:$ host ,。 此外,你可以執(zhí)行反向查找:$ host 192.168.1.5,。 你可以 this 在此篇文章 https:///linux-network-commands/ 中查看更多關(guān)于 host 和 dig 命令的信息,。 10、Whois 命令 whois 命令用于確定域名的所有權(quán)及其擁有者的 e-mail 地址和聯(lián)系電話:$ whois . 11,、Rndc 命令 rndc 工具可用于安全地管理名稱服務(wù)器,,因?yàn)榕c服務(wù)器的所有通信均通過數(shù)字簽名進(jìn)行身份驗(yàn)證。 此工具用于控制名稱服務(wù)器和調(diào)試問題,。你可以通過以下方式檢查 Linux DNS 服務(wù)器的狀態(tài):$ rndc status,。 此外,如果你更改任何域 (zone) 文件,,您可以重新加載服務(wù),,而無須重啟命名服務(wù):$ rndc reload 。 在這里,,我們重新加載 域文件,。你可以重新加載所有域:$ rndc reload。 或者你可以添加新的域或更改服務(wù)的配置,。你可以重新加載配置,,如下所示:$ rndc reconfig,。 12、Linux DNS 解析器 我們已經(jīng)知道 Linux DNS 服務(wù)器的工作原理以及如何配置它,。另一部分當(dāng)然是與 DNS 服務(wù)器交互的(正在與 DNS 服務(wù)器通信以將主機(jī)名解析為 IP 地址的)客戶端,。 在 Linux 上,解析器位于 DNS 的客戶端,。要配置解析器,,可以檢查 / etc/resolv.conf 這個(gè)配置文件。 在基于 Debian 的發(fā)行版上,,可以查看 / etc/resolvconf/resolv.conf.d / 目錄,。 /etc/resolv.conf 文件中包含客戶端用于獲取其本地 DNS 服務(wù)器地址所需的信息。 第一個(gè)表示默認(rèn)搜索域,,第二個(gè)表示主機(jī)名稱服務(wù)器 (nameserver) 的 IP 地址,。 名稱服務(wù)器行告訴解析器哪個(gè)名稱服務(wù)器可使用。只要你的 BIND 服務(wù)正在運(yùn)行,,你就可以使用自己的 DNS 服務(wù)器,。 |
|