㈠ 如何在linux下打開組播功能
IGMP協議運行於主機和與主機直接相連的組播路由器之間,主機通過此協議告訴本地路由器希望加入並接受某個特定組播組的信息,同時路由器通過此協議周期性地查詢區域網內某個已知組的成員是否處於活動狀態(即該網段是否仍有屬於某個組播組的成員),實現所連網路組成員關系的收集與維護。IGMP有三個版本,IGMPv1由RFC1112定義,目前通用的是IGMPv2,由RFC2236定義。IGMPv3目前仍然是一個草案。IGMPv1中定義了基本的組成員查詢和報告過程,IGMPv2在此基礎上添加了組成員快速離開的機制,IGMPv3中增加的主要功能是成員可以指定接收或指定不接收某些組播源的報文。這里著重介紹IGMPv2協議的功能。
IGMPv2通過查詢器選舉機制為所連網段選舉唯一的查詢器。查詢器周期性的發送普遍組查詢消息進行成員關系查詢;主機發送報告消息來應答查詢。當要加入組播組時,主機不必等待查詢消息,主動發送報告消息。當要離開組播組時,主機發送離開組消息;收到離開組消息後,查詢器發送特定組查詢消息來確定是否所有組成員都已離開。
通過上述IGMP機制,在組播路由器里建立起一張表,其中包含路由器的各個埠以及在埠所對應的子網上都有哪些組的成員。當路由器接收到某個組G的數據報文後,只向那些有G的成員的埠上轉發數據報文。至於數據報文在路由器之間如何轉發則由路由協議決定,IGM
㈡ 怎樣修改linux下的ipv6的link-local地址
IPv6大概可以分為四類
1)單播地址(unicast address)
2)組播地址(Multicast Address)
IPv6 IPv4 說明
~ FF01::1 224.0.0.1 所有-節點地址
~ FF01::2 224.0.0.2 所有-路由器地址
~ FF02::1 224.0.0.1 所有節點地址
~ FF02::2 224.0.0.2 所有路由器地址
~ FF02::5 224.0.0.5 OSPF路由器
~ FF02::6 224.0.0.6 OSPFIGP路由器
~ FF02::9 224.0.0.9 RIP路由器
~ FF02::D 224.0.0.13 所有PIM路由器
~ FF05::2 224.0.0.2 所有路由器地址
~ FF0X::101 224.0.1.1 網路時間協議NTP
3)任播地址(anycast address)
4)特殊地址
~ 環回地址 ::1/128
~ 組播地址 FF00::/8
~ 鏈路本地地址 FF80::/10
~ 站點本地地址 FEC0::/10
~ 未指定的地址 ::0/128
~ 全局單播 其他地址
1. 鏈路本地(Link-Local)地址
* 特點
~ 用在單一鏈路上~ 帶有鏈路-本地源或目的地址的數據包不轉發到其它鏈路~ 如:FE80::20C:76FF:FE0A:9A7C
* 應用范圍:只能在同一個本地鏈路節點之間使用 FE80::/64
* 節點啟用時,會自動配置一個本地鏈路地址
~ 前64位:FE80:0:0:0~ 後64位:EUI-64地址(vista和win7已不採用EUI-64了)
2. 站點本地(Site-Local)地址
* 應用范圍:站點內,與IPv4的私人地址類似,本地站點地址被設計用於永遠不會與全球IPV6網際網路進行通信的設備,比如:列印機、內部網伺服器、網路交換機等
* 前綴:FEC0::/10 其後的54比特用於子網ID,最後64位用於主機ID
* 例如:在本地分配十個子網
1)、FEC0:0:0:0001::/642)、FEC0:0:0:0002::/643)、FEC0:0:0:0003::/6410)、FEC0:0:0:000A::/64
在一個介面可以配置很多IPv6地址,所以學習路由就有可能出現很多下一跳。
所以出現Link Local地址唯一標識一個節點。在本地鏈路看到下一跳都是對端的Link Local地址。
在網路重新編址過程中,節點和路由器的Link Local地址不會發生變化,可以很容易地做一個修改,不用擔心網路不可達。
R1(config-if)#ipv6 address FE80:0:0:0:0123:0456:0789:0abc link-local 手工指定link-local地址
更多信息可參考《Linux就該這么學》
㈢ 區域網怎麼設置linux系統ip
[root@localhost
~]
vi
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0(設置網卡設備名)
BOOTPROTO=static(設置網卡以static或dhcp方式運行)
BROADCAST=192.168.1.255(廣播地址,可以不設)
HWADDR=00:40:D0:13:C3:46(mac地址,默認不需要設置)
IPADDR=192.168.1.100(本機IP地址)
NETMASK=255.255.255.0(子網掩碼)
NETWORK=192.168.1.0(網路地址,可以不設)
GATEWAY=192.168.1.1(默認網關,可以不設)
ONBOOT=yes(設置是否開機啟動,yes為自動啟動)
MTU=1500(設置最大傳輸單元的值,一般很少用到)
以上就是ifcfg-eth0的設置值了。
一般來說,如果設置靜態IP的話,只需要設置以下幾個值:
DEVICE、ONBOOT、BOOTPROTO、IPADDR、NETMASK
如果設置動態IP,只需設置:
DEVICE、ONBOOT、BOOTPROTO
全手工手打,請笑納~
㈣ linux 怎樣加入一個多播組
應用程序通過命令字IP_ADD_MEMBERSHIP把一個socket加入到一個多播組,IP_ADD_MEMBERSHIP是一個IP層的命令字,其調用使用的參數是結構體struct ip_mreq,其定義如下:
struct ip_mreq
{
struct in_addr imr_multiaddr;
struct in_addr imr_interface;
};
該結構體的兩個成員分別用於指定所加入的多播組的組IP地址,和所要加入組的那個本地介面的IP地址。該命令字沒有源過濾的功能,它相當於實現IGMPv1的多播加入服務介面。
ip_setsockopt實現了該命令字,它通過調用ip_mc_join_group把socket加入到多播組。
表示socket的結構體struct inet_sock有一個成員mc_list,它是一個結構體struct ip_mc_socklist的指針,實際上一個該結構體的鏈表,該結構體的定義如下:
struct ip_mc_socklist
{
struct ip_mc_socklist *next;
struct ip_mreqn multi;
unsigned int sfmode;
struct ip_sf_socklist *sflist;
};
next指向鏈表的下一個節點;multi表示組信息,即在哪一個本地介面上,加入到哪一個多播組;sfmode是過濾模式,取值為
MCAST_INCLUDE或MCAST_EXCLUDE,分別表示只接收sflist所列出的那些源的多播數據報,和不接收sflist所列出的那些源
的多播數據報;sflist是源列表,結構體struct ip_sf_socklist的定義如下:
struct ip_sf_socklist
{
unsigned int sl_max;
unsigned int sl_count;
__u32 sl_addr[0];
};
sl_addr是源地址列表,sl_count應該是源地址列表中源地址的數量,sl_max應該是當前sl_addr數組的最大可容納量(不確定)。對
於通過調用IP_ADD_MEMBERSHIP加入的多播組,它會在struct inet_sock的mc_list的鏈表頭添加如下一個節點:
struct ip_mc_socklist{
.next = 原來的鏈表頭;
.multi = 所加入的多播組,和介面信息;
.sfmode = MCAST_EXCLUDE;
.sflist = NULL; 即不排除任何源地址,也就是不存在源過濾。
}
另外,一個socket所允許加入的多播組的最大數量也是有限制的,mc_list中節點的數量不允許超過sysctl_igmp_max_memberships(預設為20)。
ip_mc_join_group還需要通過ip_mreq.imr_interface的指定值找到要加入多播組的那個介面,並為介面設置狀態(即該接
口要加入哪個多播組,過濾哪些源,也就是為該介面增加一個組,如果要增加的組已存在,則增加該組的引用計數)。代表網路設備介面的結構體struct
in_device有一個成員mc_list,這是一個結構體struct ip_mc_list的鏈表,該結構體的定義如下:
struct ip_mc_list
{
struct in_device *interface;
unsigned long multiaddr;
struct ip_sf_list *sources;
struct ip_sf_list *tomb;
unsigned int sfmode;
unsigned long sfcount[2];
struct ip_mc_list *next;
struct timer_list timer;
int users;
atomic_t refcnt;
spinlock_t lock;
char tm_running;
char reporter;
char unsolicit_count;
char loaded;
unsigned char gsquery;
unsigned char crcount;
};
interface指向網路設備介面,multicast即為加入的組的多播地址,users記錄當前有幾個socket在該介面上加入了該多播組。
sfcount是一個有兩個元素的數組,分別記錄在該介面上加入多播組的socket的過濾模式為EXCLUDE和INCLUDE的數量,sfmode為
該介面本身的過濾模式。sources為源地址列表,該結構體具體內容稍後再分析。timer為主動報告定時器,當一個介面(注意:不是socket)新
加入到一個多播組,需要向多播路由器發送一個igmp報告,以通知多播路由器需要向本地網路轉發該組的數據報。tm_running是一個標志,如果
timer當前正在運行,則置1,否則置0。reporter也是一個標志,如果當前正要開始發送igmp報告,則置該標志為1,否則為0。
unsolicit_count是當一個介面新加入到一個多播組時,發送主動報告的次數,值賦為
IGMP_Unsolicited_Report_Count(預設值為2)。loaded也是一個標志,當該介面上的該多播組被加入時,需要通知硬體過
濾器,通知完成即置該標志為1,否則為0。
該結構體比較復雜,先看通過IP_ADD_MEMBERSHIP命令字把一個socket加入到一個新的多播組,會使struct in_device的mc_list中增加一個什麼樣的節點。下面是生成的節點的情況:
struct ip_mc_list{
.interface = in_dev;
.multiaddr = 多播組地址;
.source = NULL; //源過濾列表為空。
.tomb = NULL;
.sfmode = MCAST_EXCLUDE; //EXCLUDE模式,即不過濾任何源。
.sfcount[MCAST_EXCLUDE] = 1;
.sfcount[MCAST_INCLUDE] = 0;//即該節點上該多播組有一個socket加入,過濾模式為EXCLUDE。
.users = 1; //有一個用戶。
.refcnt = 1; //引用計數為1
.tm_running = 0;
.unsolicit_count = 2;
... ...
}
新生成的節點加入到mc_list鏈表中後,要通知網路設備介面的硬體,以使它的過濾機制可以接收進該多播組的數據報,同時也要通知多播路由器。
首先要把多播地址映射成乙太網地址,映射規則是把多播IP地址的低23位放到乙太網多播地址01-00-5E-00-00-00(16進制)的低23位。
因為一個IP組地址有28位有效位(除去高位的1110),所以有可能出現多個組地址被映射成同一個乙太網多播地址,具體實現見
ip_eth_mc_map。然後把這個mac地址加到硬體的過濾機制中。
具體的實現在函數dev_mc_add中。代表網路設備介面的結構體struct net_device也有一個成員mc_list,它是一個結構體struct dev_mc_list的鏈表,該結構體的定義如下:
struct dev_mc_list
{
struct dev_mc_list *next;
__u8 dmi_addr[MAX_ADDR_LEN];
unsigned char dmi_addrlen;
int dmi_users;
int dmi_gusers;
};
next指向鏈表下一個節點,dmi_addr是多播mac地址,dmi_addrlen為多播mac地址的長度,dmi_users是在節點被重復到加
入到設備上的次數,struct
net_device還有一個成員mc_count,用於記錄鏈表中節點的數量。dev_mc_add創建一個新的struct
dev_mc_list節點,加入到鏈表中,並通過調用網路設備介面的成員函數set_multicast_list來啟用設備的過濾機制。
最後一步發送主動成員報告,這里,首先忽略IGMPv1和IGMPv2存在的情況。如果要加入的多播組是
IGMP_ALL_HOSTS(224.0.0.1),則不需要發送成員報告。否則啟用定時器struct
in_device->mr_ifc_timer(介面狀態改變定時器),該定時器在設備初始化的時候被建立,其超時處理函數是
igmp_ifc_timer_expire,它發送一個IGMPv3的報告,然後再次啟用定時器。也就是說,第一個主動成員報告立即發出,然後在一個0
到IGMP_Unsolicited_Report_Interval(預設為10秒)之間的一個時間後,發出第二個主動成員報告,連續發出
IGMP_Unsolicited_Report_Count(預設值為2)個。
測試環境中要加入的多播組是224.0.1.1,發出的IGMPv3報告如下:
數據 含義
22 第3版成員關系報告
00 8bit保留,必須為0
f8 fc 校驗和
00 00 16bit保留,必須為0
00 01 組記錄的數量,為1
下面為一條組記錄:
04 類型為CHANGE_TO_EXCLUDE_MODE,改變到EXCLUDE過濾模式
00 輔助數據長度
00 00 源地址的數量
e0 00 01 01 組地址224.0.1.1
㈤ Linux怎麼設置IP,子網掩碼和網關
linux一般使用ifconfig命令修改linux主機的ip、網關或子網掩碼。 1.命令格式: ifconfig [網路設備] [參數] 2.命令功能: ifconfig 命令用來查看和配置網路設備。當網路環境發生改變時可通過此命令對網路進行相應的配置。 3.命令參數: up 啟動指定網路設備/網卡。 down 關閉指定網路設備/網卡。該參數可以有效地阻止通過指定介面的IP信息流,如果想永久地關閉一個介面,我們還需要從核心路由表中將該介面的路由信息全部刪除。 arp 設置指定網卡是否支持ARP協議。 -promisc 設置是否支持網卡的promiscuous模式,如果選擇此參數,網卡將接收網路中發給它所有的數據包 -allmulti 設置是否支持多播模式,如果選擇此參數,網卡將接收網路中所有的多播數據包 -a 顯示全部介面信息 -s 顯示摘要信息(類似於 netstat -i) add 給指定網卡配置IPv6地址 del 刪除指定網卡的IPv6地址 <硬體地址> 配置網卡最大的傳輸單元 mtu<位元組數> 設置網卡的最大傳輸單元 (bytes) netmask<子網掩碼> 設置網卡的子網掩碼。掩碼可以是有前綴0x的32位十六進制數,也可以是用點分開的4個十進制數。如果不打算將網路分成子網,可以不管這一選項;如果要使用子網,那麼請記住,網路中每一個系統必須有相同子網掩碼。 tunel 建立隧道 dstaddr 設定一個遠端地址,建立點對點通信 -broadcast<地址> 為指定網卡設置廣播協議 -pointtopoint<地址> 為網卡設置點對點通訊協議 multicast 為網卡設置組播標志 address 為網卡設置IPv4地址 txqueuelen<長度> 為網卡設置傳輸列隊的長度 4.使用實例: 實例1:顯示網路設備信息(激活狀態的) 命令: ifconfig 輸出: [root@localhost ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:50:56:BF:26:20 inet addr:192.168.120.204 Bcast:192.168.120.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8700857 errors:0 dropped:0 overruns:0 frame:0 TX packets:31533 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:596390239 (568.7 MiB) TX bytes:2886956 (2.7 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:68 errors:0 dropped:0 overruns:0 frame:0 TX packets:68 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2856 (2.7 KiB) TX bytes:2856 (2.7 KiB) 說明: eth0 表示第一塊網卡, 其中 HWaddr 表示網卡的物理地址,可以看到目前這個網卡的物理地址(MAC地址)是 00:50:56:BF:26:20 inet addr 用來表示網卡的IP地址,此網卡的 IP地址是 192.168.120.204,廣播地址, Bcast:192.168.120.255,掩碼地址Mask:255.255.255.0 lo 是表示主機的回壞地址,這個一般是用來測試一個網路程序,但又不想讓區域網或外網的用戶能夠查看,只能在此台主機上運行和查看所用的網路介面。比如把 HTTPD伺服器的指定到回壞地址,在瀏覽器輸入 127.0.0.1 就能看到你所架WEB網站了。但只是您能看得到,區域網的其它主機或用戶無從知道。 第一行:連接類型:Ethernet(乙太網)HWaddr(硬體mac地址) 第二行:網卡的IP地址、子網、掩碼 第三行:UP(代表網卡開啟狀態)RUNNING(代表網卡的網線被接上)MULTICAST(支持組播)MTU:1500(最大傳輸單元):1500位元組 第四、五行:接收、發送數據包情況統計 第七行:接收、發送數據位元組數統計信息。 實例2:啟動關閉指定網卡 命令: ifconfig eth0 up ifconfig eth0 down 輸出: 說明: ifconfig eth0 up 為啟動網卡eth0 ;ifconfig eth0 down 為關閉網卡eth0。ssh登陸linux伺服器操作要小心,關閉了就不能開啟了,除非你有多網卡。 實例3:為網卡配置和刪除IPv6地址 命令: ifconfig eth0 add 33ffe:3240:800:1005::2/64 ifconfig eth0 del 33ffe:3240:800:1005::2/64 輸出: 說明: ifconfig eth0 add 33ffe:3240:800:1005::2/64 為網卡eth0配置IPv6地址; ifconfig eth0 add 33ffe:3240:800:1005::2/64 為網卡eth0刪除IPv6地址; 練習的時候,ssh登陸linux伺服器操作要小心,關閉了就不能開啟了,除非你有多網卡。 實例4:用ifconfig修改MAC地址 命令: ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE 輸出: [root@localhost ~]# ifconfig eth0 down //關閉網卡 [root@localhost ~]# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址 [root@localhost ~]# ifconfig eth0 up //啟動網卡 [root@localhost ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:AA:BB:CC:DD:EE inet addr:192.168.120.204 Bcast:192.168.120.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8700857 errors:0 dropped:0 overruns:0 frame:0 TX packets:31533 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:596390239 (568.7 MiB) TX bytes:2886956 (2.7 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:68 errors:0 dropped:0 overruns:0 frame:0 TX packets:68 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2856 (2.7 KiB) TX bytes:2856 (2.7 KiB) [root@localhost ~]# ifconfig eth0 hw ether 00:50:56:BF:26:20 //關閉網卡並修改MAC地址 [root@localhost ~]# ifconfig eth0 up //啟動網卡 [root@localhost ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:50:56:BF:26:20 inet addr:192.168.120.204 Bcast:192.168.120.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8700857 errors:0 dropped:0 overruns:0 frame:0 TX packets:31533 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:596390239 (568.7 MiB) TX bytes:2886956 (2.7 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:68 errors:0 dropped:0 overruns:0 frame:0 TX packets:68 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2856 (2.7 KiB) TX bytes:2856 (2.7 KiB) 說明: 實例5:配置IP地址 命令: 輸出: [root@localhost ~]# ifconfig eth0 192.168.120.56 [root@localhost ~]# ifconfig eth0 192.168.120.56 netmask 255.255.255.0 [root@localhost ~]# ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255 說明: ifconfig eth0 192.168.120.56 給eth0網卡配置IP地:192.168.120.56 ifconfig eth0 192.168.120.56 netmask 255.255.255.0 給eth0網卡配置IP地址:192.168.120.56 ,並加上子掩碼:255.255.255.0 ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255 /給eth0網卡配置IP地址:192.168.120.56,加上子掩碼:255.255.255.0,加上個廣播地址: 192.168.120.255 實例6:啟用和關閉ARP協議 命令: ifconfig eth0 arp ifconfig eth0 -arp 輸出: [root@localhost ~]# ifconfig eth0 arp [root@localhost ~]# ifconfig eth0 -arp 說明: ifconfig eth0 arp 開啟網卡eth0 的arp協議; ifconfig eth0 -arp 關閉網卡eth0 的arp協議; 實例7:設置最大傳輸單元 命令: ifconfig eth0 mtu 1500 輸出: [root@localhost ~]# ifconfig eth0 mtu 1480 [root@localhost ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:50:56:BF:26:1F inet addr:192.168.120.203 Bcast:192.168.120.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1480 Metric:1 RX packets:8712395 errors:0 dropped:0 overruns:0 frame:0 TX packets:36631 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:597062089 (569.4 MiB) TX bytes:2643973 (2.5 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:9973 errors:0 dropped:0 overruns:0 frame:0 TX packets:9973 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:518096 (505.9 KiB) TX bytes:518096 (505.9 KiB) [root@localhost ~]# ifconfig eth0 mtu 1500 [root@localhost ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:50:56:BF:26:1F inet addr:192.168.120.203 Bcast:192.168.120.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8712548 errors:0 dropped:0 overruns:0 frame:0 TX packets:36685 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:597072333 (569.4 MiB) TX bytes:2650581 (2.5 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:9973 errors:0 dropped:0 overruns:0 frame:0 TX packets:9973 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:518096 (505.9 KiB) TX bytes:518096 (505.9 KiB) [root@localhost ~]# 說明: 設置能通過的最大數據包大小為 1500 bytes 備註:用ifconfig命令配置的網卡信息,在網卡重啟後機器重啟後,配置就不存在。要想將上述的配置信息永遠的存的電腦里,那就要修改網卡的配置文件了。
㈥ Linux廣播地址怎麼設
linux下的廣播地址可以在網路配置文件中修改,一般廣播地址指的是內網中的第一台機器 ,通常用類似下面的語法來進行修改。
BROADCAST=172.16.255.255
IP地址的廣播地址,對應即可
㈦ linux netlink socket 怎樣設置組播
Multicast Programming Sample
The following sample code illustrates how to include multicast functionality to a Windows Sockets application using socket options.
int /* OUT: whatever setsockopt() returns */
join_source_group(int sd, u_int32 grpaddr,
u_int32 srcaddr, u_int32 iaddr)
{
struct ip_mreq_source imr;
imr.imr_multiaddr.s_addr = grpaddr;
imr.imr_sourceaddr.s_addr = srcaddr;
imr.imr_interface.s_addr = iaddr;
return setsockopt(sd, IPPROTO_IP, IP_ADD_SOURCE_MEMBERSHIP, &imr, sizeof(imr));
}
int
leave_source_group(int sd, u_int32 grpaddr,
u_int32 srcaddr, u_int32 iaddr)
{
struct ip_mreq_source imr;
imr.imr_multiaddr.s_addr = grpaddr;
imr.imr_sourceaddr.s_addr = srcaddr;
imr.imr_interface.s_addr = iaddr;
return setsockopt(sd, IPPROTO_IP, IP_DROP_SOURCE_MEMBERSHIP, &imr, sizeof(imr));
}
Send comments about this topic to Microsoft
㈧ linux下配置多網卡組播地址,能正常使用,但重啟後顯示「no such device」,是什麼原因該怎麼解決
因為你用route命令添加的路由表不會保存到一次重啟,雖然你查看得到,你可以寫到啟動腳本里去。
編輯/etc/init.d/network,在未尾加上下面幾行:
# Add non interface-specific static-routes.
if [ -f /etc/sysconfig/static-routes ]; then
grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
/sbin/route add -$args
done
fi
編輯/etc/sysconfig/static-routes:
any net 224.0.0.101 netmask 255.255.255.255 dev eth0
any net 224.0.0.110 netmask 255.255.255.255 dev eth1
any net 244.0.0.111 netmask 255.255.255.255 dev eth3
any net 244.14.0.112 netmask 255.255.255.255 dev eth2
㈨ Linux里設置廣播地址怎麼設
設置廣播地址和設置IP地址是在同一個配置文件中進行修改設置的,因為不知道你是哪種類型的Linux發行版,不同類型的Linux發行版的IP地址設置的配置文件是不一樣的,你可以根據你的Linux發行版網路一下「IP地址設置」教程,有些IP地址設置文章會順帶說明廣播地址的,因為它們都是在一個文件中設置嘛。